XXIIVV Webring Feed

Oatmeal

2019-08-22

🙌 Liked: Reinventing the Small Wind Turbine - LOW-TECH MAGAZINE

Oatmeal

2019-08-22

I look at the state of politics and what we’ve done to our planet and I am utterly paralyzed and terrified. I want to spring to action, but what can one person do?

I look to my son and wonder how different his life will look from mine — having grown up in the 90s and 00s.

What is the John Green quote about love: slowly, then all at once?

Oatmeal

2019-08-21

In reply to: Smoke Has Blotted Out the Sun in São Paulo as the Amazon Burns

What began as a day of fire” a week and a half ago has now turned daytime skies in São Paulo an inky black. The Amazon has been in deep, deep trouble ever since far-right president Jair Bolsnaro took over running Brazil. Advocates feared his regime would commit ecological genocide” in the Amazon and with each passing month, those fears are becoming reality.

Posts on phse.net

August Update

2019-08-21

Here’s an update about what’s been going on with me the past couples months: I traveled to Costa Rica last month and learned how to surf. That was a total blast! I would love to go again and catch more waves. This month I locked myself out of my house for the second time. This time I had remembered to lock all the windows, but I was lucky enough to be eating lunch with a friend who is an amateur lock-picker.

Oatmeal

2019-08-21

A black and white dog snoozing with paws on a stuffed monkey with no arms and legs.

Snoozing with the limbless monkey.

Oatmeal

2019-08-20

Today was relatively laid back at work so, I thought it would be interesting to spend the day in Acme, Plan9s text editor.

While I absolutely love emacs, I’m absolutely blown away by Acme. The interface is unlike anything else that I’ve ever used, but, at the same time, wicked quick to pick-up. There are a few niceties that other text editors offer that Acme doesn’t…but it is so easily extensible that I bet I could bake in what I want with an afternoon of fiddling.

I am excited to continue exploring Plan9 and Acme, and think I’m going to spend another day in it tomorrow!

Oatmeal

2019-08-20

🙌 Liked: The 1619 Project - The New York Times

electricgecko

Web Design as architecture

2019-08-19

undefined

Oatmeal

2019-08-19

🙌 Liked: The Great Pacific Garbage Patch is the only wonder our world has produced | The Outline

Oatmeal

2019-08-18

🙌 Liked: Art Spiegelman: golden age superheroes were shaped by the rise of fascism | Books | The Guardian

serocell - media feed

the permanent business

2019-08-18

Oatmeal

2019-08-17

In reply to: Why did we wait so long for the bicycle?

The key insight was to stop trying to build a mechanical carriage, and instead build something more like a mechanical horse.

Oatmeal

2019-08-17

A very large beetle held gently between two fingers.

Big bug

Oatmeal

2019-08-17

Yo politician-types: move to higher ground” is not a valid way of addressing the climate crisis.

Oatmeal

2019-08-16

🙌 Liked: Deep links to opt-out of data sharing by 60+ companies – Simple Opt Out

雨山

(雨山) Link Dump 007

2019-08-16

Books, Articles, Threads, Short Stories

  • The Dark Mountain Project: The Manifesto is easily the best thing I've read on the internet in recent memory. If you don't read anything else on this list, please read this.
  • This thread is about to-do list debt. I'd heard the idea before, but it was good to hear it again.
  • Ray Bradbury's short story "The Fog Horn" is beautifully written, like most of his stuff.
  • "How To See Things As They Are": "We have a habit of looking at what surrounds us through a self-referential lens. We don't just see a thing, we see the way that thing fits, or doesn't fit, into our lives ... Even a short glimpse of something as it is — of any scene free from entanglement with our stories — comes with relief."
  • "How Social Media Shapes Our Identity": I haven't actually read this article, but the tagline ("The Internet constantly confronts us with evidence of our past. Are we losing the chance to remake ourselves?") reminded me of a desire I once had to constantly prune my social media accounts down to only the posts I'd made in the last 30 days or so. The point, I suppose, is to avoid the sunk-cost fallacy of "I've been this way for so long, and I can't change now or I'll lose my identity and/or people will think I'm stupid for changing." I still want to figure out how to do this. I've considered doing it on this blog, and I've even deleted old or badly written posts every once in a while. But I suppose it's all about attitude, since it's entirely possible to keep old posts around for the very purpose of appreciating how one has changed.
  • "What Does a Coder Do If They Can't Type?": Naomi Saphra explains how she overcame a disability in which she could no longer use her hands in order to keep pursuing her career in programming.
  • Basic Machines and How They Work: I haven't read this yet, but it seems cool!
  • "Rituals of Childhood" broke my heart, but it's exactly true.
  • Sign language of protesters in Hong Kong: It's fascinating and terrifying and heartbreaking. Good luck, HK. We're rooting for you.
  • "Who supports animal rights? Here's what we found": Pretty much unsurprisingly, people who support animal rights also tend to support stronger and more expansive human rights, like LGBTQ+ rights, women's rights, disability rights, racial equality, etc. Does this show that the right's main problem is a failure of empathy?
  • "New frontiers: re-establishing System 1 / System 2 truths": If you haven't read Kahneman's book, this is a good primer.
  • "Toward an Information Operations Kill Chain": "Cyberattacks don't magically happen; they involve a series of steps. And far from being helpless, defenders can disrupt the attack at any of those steps. This framing has led to something called the "cybersecurity kill chain": a way of thinking about cyber defense in terms of disrupting the attacker's process. On a similar note, it's time to conceptualize the "information operations kill chain." Information attacks against democracies, whether they're attempts to polarize political processes or to increase mistrust in social institutions, also involve a series of steps. And enumerating those steps will clarify possibilities for defense."
  • "A Buttplug Hacker Talks Security, Consent, and Why He Hacked a Buttplug": The first sentence got me: "Voting machines weren't the only thing getting penetrated at DEF CON this year."
  • "The Eternal Lie of the Pools That Turn Blue If You Pee in Them": I believed this lie too! It's amazing how ideas like this get perpetuated!
  • "Archive shows medieval nun faked her own death to escape convent": "Archbishop's register reveals how Joan of Leeds crafted a dummy of her body that was buried, while she pursued 'the way of carnal lust.'" Sounds like a cool lady.

Tech

Music

  • I've been on a vaporwave / synthwave / outrun / whatever other '80s-'90s genre kick this past week. These websites are so fun!
  • SALES: forever & ever is very chill.
  • Squaring Circles: Motion is an interesting experimental album.
  • W O L F C L U B: Frontiers has been on repeat for me all week. Favorite track: "Symmetry"
  • Makeup and Vanity Set: 88:88: This review summed it up: "Let's pretend the year is 2106 and you're a private detective in Neo Miami. You've just solved the murder of your sister and you're visiting her grave site to tell her the news. It starts to rain as you return to your car. You pop a Zyme capsule into your mouth, put this album on and start the drive to apprehend the killer ... "
  • Every Noise at Once isn't an album; it's an attempt to map out all music genres.

Games

Miscellaneous

Funny

Oatmeal

2019-08-16

🙌 Liked: What Tumblr Taught Me About Accessibility - Nic Chan – Hong Kong Web Developer

Oatmeal

2019-08-16

🙌 Liked: Game accessibility guidelines | A straightforward reference for inclusive game design

Oatmeal

2019-08-16

🙌 Liked: Alicia Elliott and Arielle Twist Interview: 'Indigenous Writing Is Going to Continue to Set the Bar for Literary Excellence' - Pacific Standard

Oatmeal

2019-08-16

🙌 Liked: The Passionate, Progressive Politics of Julia Child | The New Yorker

Oatmeal

2019-08-16

🙌 Liked: Zooming user interface - Wikipedia

Oatmeal

2019-08-16

🙌 Liked: 'Science', 'Magic' and 'Religion' in the Middle Ages | Forbidden Histories

Oatmeal

2019-08-16

🙌 Liked: America Needs More Transit-Friendly Beaches - CityLab

Oatmeal

2019-08-15

🙌 Liked: Tokyo subway’s humble duct-tape typographer - Chris Gaul - Medium

Oatmeal

2019-08-14

🙌 Liked: Hack in the box: Hacking into companies with “warshipping” | Ars Technica

Oatmeal

2019-08-14

🙌 Liked: QuickJS Javascript Engine

Oatmeal

2019-08-13

🙌 Liked: Children who say hand dryers ‘hurt my ears’ are correct: A real-world study examining the loudness of automated hand dryers in public places | Paediatrics and Child Health | Oxford Academic

electricgecko

Vanity

2019-08-12

undefined

Oatmeal

2019-08-12

A red cargo bike with a giant blue bucket on the back.

FTW, minivan dad! I’m a bucket bike dad.

Oatmeal

2019-08-12

🙌 Liked: WordPress owner Automattic to acquire Tumblr - 9to5Mac

Oatmeal

2019-08-11

🙌 Liked: Compiling ClojureScript Projects Without the JVM · anmonteiro

Oatmeal

2019-08-11

I’ve been playing with Wisp all week.

I like it a lot. I don’t think I’m going to use it for anything other than toy and personal projects, but I am 100% going to use it.

It is a lot like ClojureScript—just as ClojureScript’s heritage in the JVM is very strong and noticeable, Wisp’s birth from JavaScript is right on the surface.

A previous version of wisp’s README suggested that you think of it as

markdown for JavaScript programming

That seems 100% true. Wisp is less a new language, and more a different way of writing plain old JavaScript.

I really enjoy writing a Lisp, and am excited to do it more. I’ve been fascinated by Lisps for a while now, and have been playing with them more and more. I’ve sunk a lot of time into Common Lisp over the last 2 years, but I am finding myself drawn more to ClojureScript and little things like Wisp.

While I really like Common Lisp I’ve struggled to find my footing with its tooling. A major advantage of Wisp is that it is just JavaScript, so I’m able to use all the packages and tools that I’m already used to, but in a new way.

Even when I’m not writing a Lisp, I think getting into Lisps has made me a better programmer (at least a better functional programmer). I love the granularity of functional programming. When I’m doing it, it feels more like preparing a meal than it does orchestrating a machine that I’m only able to look at sideways. Ingredients, prepared and combined in different ways, leading to different results.

serocell - media feed

the means of production

2019-08-11

Oatmeal

2019-08-10

Despite having gone to work as normal everyday this week, it felt sort of vacation-y, which has been really nice.

I did a lot of biking, wrote a bunch of lisp, and actually started and finished a personal project all this week.

Oatmeal

2019-08-10

🙌 Liked: The Screenless Office

Oatmeal

2019-08-10

🙌 Liked: Pruned: Gardens as Crypto-Water-Computers

雨山

(雨山) Link Dump 006

2019-08-09

Articles & Threads

Tech

  • Joplin is "an open source note taking and to-do application with synchronisation capabilities." I like that I can choose where to sync it to!
  • NixOS is "a Linux distribution with a unique approach to package and configuration management. Built on top of the Nix package manager, it is completely declarative, makes upgrading systems reliable, and has many other advantages." I'm intrigued but haven't had the spare time or mental space to try it out yet. Have any of you tried it yet?

Miscellaneous

  • From now on, I will be wearing hooded capes everywhere I go.
  • Ladies, here's a bonnet that'll make you blush. Literally.

Funny

Oatmeal

2019-08-09

In reply to: Hypercritical: Top Gun

It taught me the power of well-chosen words to shake people out of their daily routines and patterns of thought. It showed me that all jobs, no matter how seemingly dull, can be an outlet for self-expression and excellence. And it reminds me, to this day, that each work of art can be—deserves to be—considered from multiple points of view, not all of which will be comfortable.

XXIIVV — Journal

Lain — Lain Lisp

2019-08-06


Lain is a LISP dialect.

serocell - media feed

adequate images

2019-08-04

雨山

(雨山) Chocolate Rage and Self-Efficacy

2019-08-04

I've half-jokingly said before that I experience "chocolate rage." That is, when I eat too much chocolate, I become extremely irritable and even aggressive. I also feel an unusually high amount of fear and an overwhelming desire to be alone and to hide in a corner. I mean that literally, by the way. Like, if I could climb into a very tiny closet in the most remote part of the house and shut the door and turn off the lights while I'm in a chocolate rage, I'd gladly do so. I told my students about this problem once, and they laughed at me. They apparently had a hard time believing that mild-mannered Mr. Castle could ever get angry about anything. So, my "aggressive" may not look like someone else's ... but my wife and daughter can surely attest to the fact that I really do become a quite different animal after consuming chocolate. And I'm not alone: chocolate rage is apparently a real phenomenon, though of course not everyone has that reaction.

Anyway, I'm really writing this post to document a feature of anxiety and/or depression that I've noticed lately. Side note: isn't it interesting how we become more attuned to ourselves as we age, even well into adulthood? Several decades (and maybe even our entire lives) are spent learning to recognize our bodies' signals. My daughter, for example, doesn't recognize that she has to go to the bathroom until she's about to burst. But I find that I can notice that particular urge long before I hit critical mass, and I also have a pretty good sense for how long I can hold it. Similarly, we probably spend decades (and maybe even our entire lives) getting to know our own minds. I'm of the opinion that the mind is what the brain does, and that, because the brain is an organ and can get sick or break down like any other body part, the contents of our thoughts and feelings can become quite strange, terrifying, and alienating (though they may not always be perceived that way by the person entertaining them). It annoys me a little to have to defend this point, but I still know too many people who treat the mind as connected to or even perhaps synonymous with an immaterial soul and who therefore believe that minds are somehow unaffected by bodies. This view seems utterly untenable to me, since we've surely all known people whose minds were changed by mental illness, stroke, or head injury. I don't believe in souls; but even if I did, I'm sure I'd still believe that minds are completely disconnected from the soul and completely connected to the body because of how I've seen people's minds change as their brains change. But I say all that to say that introspection — the mind getting to know the mind — is a strange phenomenon, isn't it? Does your liver get to know itself? And to make introspection even more difficult, so much of what happens in our brains is inaccessible to us; i.e., a lot of it is subconscious. But maybe that's not so different from getting to know the rest of the body, you know? After all, it happily carries out its functions without our conscious regulation, and it's probably usually the case that we only become aware of its inner workings when something starts malfunctioning. So, maybe that's the best way of thinking about what prompts us to take stock of our mental states: when something starts malfunctioning, we start scrounging around for the owner's manual.

I wasn't aware for years that I struggled with anxiety until a doctor suggested it to me. I had come in to get checked out for chest pains and heart palpitations. She ran an EKG, and everything came back normal there. But I had high blood pressure, and she probably also noticed that I was breathing fast and looking generally very scared. She recommended that I cut caffeine out of my diet for a while. I did, and I noticed a drastic change in my mental state over the course of several weeks as my adrenaline levels and blood pressure and heart rate dropped back to normal. That was the very first time that I became aware (but only dimly then) that my mind wasn't a good guide to the state of the world, that there was a difference between the raw sense data and the responses my mind generated to those data, and that the mind could perform its own powerful positive feedback loops without external input. (I use "positive" here to mean amplification as opposed to attenuation, not to denote something happy or good.) I could've derived the same conclusion from the fact that dreams can be so horrifying and yet utterly disconnected from sense data, but somehow it never occurred to me. But anyway, that was only the beginning of self-awareness for me. Years later, after wondering why I kept finding myself in such violent moods, I finally noticed the correlation between eating chocolate and wanting to tear people's heads off. And there have been other discoveries along the way, including recognizing many symptoms that at times could probably have been diagnosed as clinical depression.

As I said, I really just want to focus this post on a single feature of my mental furniture of which I've become aware recently: self-efficacy. Wikipedia says that self-efficacy is "an individual's belief in their innate ability to achieve goals." I've struggled for years to start good habits but have honestly never yet succeeded. I used to blame and shame myself for this failure a lot. I used to believe that my lack of ability to create good habits was caused by a lack of good character traits, that I was lazy or cowardly or undesirous of change at some deep or subconscious level. It may be the case, of course, that such a diagnosis is accurate; but I've also come to believe that at least a huge part of my ability to make good decisions boils down to whether or not I believe that success is possible. And to be honest, most of the time I don't believe that it's possible. Yes, I'm aware that such a disbelief is a self-fulfilling prophecy. At the moment, though, I'm not interested in how our beliefs shape our actions or inactions; I'm interested in how we arrive at those beliefs in the first place. I've wanted for years to get into the habit of exercising regularly and maybe fasting intermittently, and I have mostly been unable to do those things for any extended period of time. But two discoveries this summer have at least given me insight into what may be preventing me from creating good habits. First, I noticed that consuming caffeine — usually by drinking regular coffee — makes me feel superhuman for a while. I feel like anything is possible. I can focus for hours on a project without feeling bored or tired, I want to get out and exercise, and everything about the world — even the mundane stuff — seems wonderful and interesting. (Too much caffeine also has the negative side effect, though, of making me extremely anxious, as I described above.) Second, I was able to run three or four times a week regularly for about a month this summer, which is a huge achievement for me. I was becoming increasingly aware of how sensitive my motivation was to things like lack of sleep, stress, and chocolate, so I was specifically trying to take care of myself on those fronts as a way of improving my chances for success in running. And it worked for a while!

Before my wife had post-partum depression, I'd never thought much about depression in general, and to be honest, I don't think I really believed that depression was a real thing. I think I just thought that it was people being sad a lot. But I've seen and experienced so many facets of it now that I cringe to think about how naive I was. Anyway, one facet of depression that in my opinion doesn't get enough press is the fact that depression makes it hard to do things. It makes getting out of bed hard. It makes getting out of the house hard. It makes spending time around people hard. It makes adulting especially hard. I'm no psychologist, but my guess is that depression makes things so hard to do because it deflates a person's feelings of self-efficacy. Everything seems impossibly hard, seems to require an infinite amount of energy, seems unlikely to succeed, seems unlikely to matter even if it does succeed.

So, I think I can draw a few conclusions from these findings. (1) My inability to create good habits for myself seems directly related to my poor sense of self-efficacy. (2) My poor sense of self-efficacy is mostly not rooted in reality. In reality, I actually have a working physical body and a mostly-working mind, with the ability to learn and apply new skills. But I feel that things are impossibly hard, that they require amounts of energy that I've never possessed and never will possess. And (3) it's possible to improve my sense of self-efficacy at least a little bit — even in the face of depression or anxiety — by changing my sleep habits, my diet (by avoiding chocolate especially), my physical activity, my physical location (by being out of the house more), and my contact with others. As I heard someone say recently: practicing self-care won't guarantee victory over the symptoms of depression, but not practicing self-care will guarantee defeat at their hands.

I haven't discovered anything here that psychologists don't already know. But the interesting thing to me, I suppose, is that I've discovered these things about myself. I'm apparently a moron, too, because I've heard all that stuff about self-care before, but somehow its significance and the reasoning behind it just never registered with me. Anyway, I put this all down mainly so I could remember and reference it later. But I hope you've found something worthwhile in it for yourself!

雨山

(雨山) Link Dump 005

2019-08-02

I promise I'll write a real post soon, but this week has been so busy! This is the first chance I've gotten to work on personal stuff this week! Anyway, please enjoy these links!

Articles, Posts, Papers, & Threads

  • This "thread" from Robin Sloan is fantastic. (I put "thread" in scare quotes because it's not actually on any real social medium; it's just a plain old HTML page.) It's a critique of the way social media amplifies anything and everything in a bad way, like a negative feedback loop. "Maybe ... the same algorithms that presently identify popular messages and promote them could have the opposite effect, like those circuit breakers in stock exchanges. They could be wired to the brakes instead of the gas."
  • "Oh God, It's Raining Newsletters" is a case for owning your social media content via newsletter rather than putting it all in a big, corporate, social media silo. And, in case you haven't noticed, this kind of message strongly resonates with me. I'm all the way here for RSS, email, and other decentralized / federated solutions to these problems.
  • "Mental Models": "Mental models do two things: they help you assess how systems work and they help you make better decisions. These two concepts underlie everything you do." I haven't finished reading this yet, but I'm fascinated.
  • Here is a fun (and potentially devious) way to find random PDFs to read!
  • "Why I Have a Website and You Should Too": "Having a website and/or blog is not about being a web developer, nor about being a celebrity of sorts, but is about being a citizen of the Web."
  • "The Crane Wife" is a beautiful, melancholy meditation on cranes, the aftermath of an almost-marriage, and knowing one's needs from one's partners.
  • "Deconstructing Brian Eno's 'Music for Airports'" is exactly what it sounds like. I really like that particular Eno piece, so this article just makes it that much better.
  • "Metaphors we believe by: the pantheon of 2019": "I've started to realize that the God vs. science situation is a bit more complicated than Sam Harris led me to believe. The more I learn, the more I suspect that rationalists only managed to kill a very narrow and anthropomorphic conception of God. People who study complex systems started using new words to talk about god-like phenomena — metaphors that are more palatable to secular minds. I believe these new words can help scientifically-minded people better understand what it actually felt like to believe in God before science became a Thing. Let's take a tour through the pantheon of 2019 and explore what these seven 'gods' might teach us in our era of ecological crisis and post-truth confusion."
  • "Can Everyone Be Excellent?" is a critique of the way we use standards in American public education. For example, if most students pass a test, we say that the standards were probably too low. So, we ratchet the standards higher and higher until most students fail. But then we complain that our standards are clearly not high enough because too many students are falling through the cracks! It's a never-ending cycle of stupid, apparently.
  • "Facebook: Mark Zuckerberg's Fake Accounts Ponzi Scheme" is Aaron Greenspan's case that Facebook is making an increasing amount of its ad revenue from fake accounts.
  • "Beware the ethical car": "By co-opting the language of climate change, companies are going to try and make cars ethical." Yup. It's already here.
  • Here is a list of what all humans have in common; i.e., "features of culture, society, language, behavior, and psyche for which there are no known exception."
  • awesome-clean-tech is a curated list of clean tech companies.
  • "How to Drop Out" — Favorite quote so far: "You might start projects that seem like the kind of thing you're supposed to love doing, music or writing or art, and not finish because nobody is forcing you to finish and it's not really what you want to do. It could take months, if you're lucky, or more likely years, before you can build up the life inside you to an intensity where it can drive projects that you actually enjoy and finish, and then it will take more time before you build up enough skill that other people recognize your actions as valuable."
  • "The Evolutionary Roots of Human Decision Making" describes how scientists measured cognitive biases in non-human primates and (pretty much unsurprisingly) found that their styles of thinking are very similar to ours. For example: "In one study, monkeys had a choice between one experimenter (the gains experimenter) who started by showing the monkey one piece of apple and sometimes added an extra piece of apple, and a second experimenter (the losses experimenter) who started by showing the monkey two pieces of apple and sometimes removed one. Monkeys showed an overwhelming preference for the gains experimenter over the losses experimenter — even though they received the same payoff from both. In this way, capuchins appear to avoid options that are framed as a loss, just as humans do."
  • "Pro-Environmental Behavior: Herd Mentality Motivates, Money Does Not": "According to this study, people can be motivated and persuaded to adopt environmentally conscious lifestyle choices by leveraging normative influence & herd mentality instead of speaking of financial & moral implications."
  • "Stop Confusing Habits for Routines: What You Need To Know": Please don't go to this person's website. It throws up a horrible, stupid pop-up after you've been there for 30 seconds or so, which makes me very angry because this person apparently spends his time working on "user experience, behavioral economics, and a dash of neuroscience," only to commit a cardinal web sin that suggests he's either ignoring those principles or using them maliciously to push his mailing list. But, unethical website practices aside, his point in this post is that we need to understand the difference between habits and routines if we want to change our behavior effectively. In short: "A habit is an impulse to do a behavior with little or no conscious thought. Not doing a habit feels uncomfortable, like not washing your hands after using the toilet or not flossing your teeth before bed. A routine is a behavior frequently repeated. Unlike a habit, skipping a routine doesn't feel bad and without proper forethought, can be easily skipped or forgotten. Some routines can become habits but only if it's a behavior that can be done with little conscious thought. Trying to turn a behavior that requires a lot of effort (like writing or breaking a physical fitness goal) into a habit will backfire if you expect it to become effortless. Forming a habit requires first sticking to a routine. To do that, make time in your schedule, expect and learn to cope with discomfort, and find ways to pre-commit to the task."

Videos

  • Worlds of Ursula K. Le Guin is a PBS documentary that's airing today! You can watch the full hour-long documentary via this link! (She's one of my very favorite authors, by the way. I love the Earthsea series.)
  • Simulating the Evolution of Aggression is a fun and educational video primer into game theory and evolutionary trade-offs.

Games

  • Quantum TiqTaqToe: "In Quantum TiqTaqToe, the board collapses to a single classical state as soon as it is full (i.e. every square is non-empty). The resulting state is randomly chosen from all the possible outcomes, with a probability that is equal to the (square of the) wave-function amplitude (basic quantum mechanics)."
  • Atma
  • A Short Hike
  • Forgotten Anne

Tech

  • Nodes: "What if programming was about ideas not semicolons? Compose, abstract, generalise. Start from top down or bottom up and refine as you go. With Nodes programming feels like sketching on canvas. Zoom in and out of problems, experiment on the side and easily re-use parts of other projects."
  • Ethical alternatives to Google Fonts
  • Host yo self

Miscellaneous

  • The Eye is "a non-profit, community driven site dedicated towards archiving and long-term preservation of any and all data including but by no means limited to ... websites, books, games, software, video, sound, other digital-obscura and ideas." There's some incredible stuff here! Looking around in the books section, for example, I see a lot of stuff on Buddhism, some Goosebumps books, and various and sundry occult books!
  • Full of Plants is a vegan recipe site. They look good; I think I'll try some soon!

Funny

electro·pizza

defMON, VICE, and the Pocket CHIP

2019-07-30

This post details the process I went through to setup and configure VICE (the VersatIle Commodore Emulator) on the Pocket CHIP to run defMON. While my end goal here is to be able to run defMON from the homepage launcher of the Pocket CHIP, you can follow this setup process (ignoring the defMON stuff) to have a working Commodore emulator. This will allow you to run any number of C64 games, applications, or wild demo packages on the Pocket CHIP.

雨山

(雨山) Compendium

2019-07-28

So, as you may know, I'm part of a webring. But a fun fact about the webring is that some people in that little community have wikis. And an even more fun fact is that we've agreed to start using a common data format, Indental, for our wikis. This means that it's now possible and even easy to parse and compile those wikis into a single larger wiki — which is what I've done with a new tool I've made called Compendium! Compendium is an offline-first compilation of the webring's wikis, and it's browsable via the command line! Have a look at the docs to get started!

Also note that the webring's founder, @neauoire, made a similar tool here for use in the web browser.

Enjoy!

serocell - media feed

tidepools

2019-07-28

Nicola Pisanti's Journal

framescan

2019-07-27





just coded a tool for importing all my doodles frame by frame by using webcam

maybe it's too raw to be called "animation", but i like that the movement of the frames comes out of imperfection, if i would be able to perfectly draw the same thing over and over and to import it without error the result would have been still and lifeless

if you want to build it yourself, the code is in my utilities

XXIIVV — Journal

Tools — The Family

2019-07-27


The Tools collection is an ecosystem of open-source software to create audio and visual works, released as Hundred Rabbits.

Posts on phse.net

Naive Sudoku

2019-07-27

Recently I helped my brother rewrite a sudoku solver he had been hacking on. His original implementation did some smart look-ahead to determine quickly which cells of the puzzle could be inferred from surrounding columns, rows, and regions. We were curious, though, to see how this would compare to a naive solver. Our naive solver can only decide what number to put in a cell based on its own row, column, and region (3x3 square).

Nicola Pisanti's Journal

musicians

2019-07-25




i was uninspired by generative graphics lately so i started to draw lots of little musicians with my brush pen

XXIIVV — Journal

Ronin — Ronin Spiral

2019-07-24


Ronin is an procedural graphics tool.

Nicola Pisanti's Journal

pixelscript

2019-07-23



built myself a little lua graphics scripting sandbox (running as oF addon), supporting 2d primitives, cyclic modulations and spritesheet loading

the script is reloaded on the fly so it's possible to livecode it

--- code ---

雨山

(雨山) Link Dump 004

2019-07-21

Whew! There's a lot in this one! People were just sharing so much good stuff this week! Enjoy!

Articles, Essays, Books, Short Stories, & Tweet Threads

  • Death to Bullshit: Yes, please! Make sure you click the "Turn bullshit on?" link just for fun before you go.
  • "Various things in MetaPost" and "Fancy Euclid's 'Elements' in TeX" showcase @jemmybutton's incredible mastery of art in LaTeX. It's truly incredible!
  • "A Good Scent from a Strange Mountain" is a short story by Robert Olen Butler. I've read it, and though I'm still not sure I know what it was about, it was definitely a beautiful, mysterious experience — which could perhaps have been guessed from the title. I liked this bit: "This was near the end of our time together, for I was visiting daily with a Buddhist monk and he was drawing me back to the religion of my father. I had run from my father, gone to sea, and that was where I had met Nguyen Ai Quoc and we had gone to London and to Paris and now my father was calling me back, through a Vietnamese monk I met in the Tuileries. Quoc, on the other hand, was being called not from his past but from his future." Nguyen Ai Quoc, by the way, was another name of Ho Chi Minh's. Butler, the author, has also apparently released a course on short story writing, though I haven't gone through it yet.
  • "The Octopus" by Nathan Goldman is a sad, sweet story published in the journal Protocols. I hadn't heard of Protocols before finding this article. From their "About" page: "PROTOCOLS is a cultural journal with an ambitious mission: to curate and publish provocative writing and art from across the global Jewish diaspora with attention to progressive and leftist politics. PROTOCOLS seeks to amplify the voices of Jewish writers and artists marginalized and excluded from mainstream platforms, to provide a vibrant and enriching gateway into Jewish life, and to serve as a home for collective engagement, dialogue, and cultural organizing toward a democratic and liberated future."
  • "Which?" is a cool short story by Joseph Hall. It's so short and concise that I had to read it several times to make sense of it. It's a bit like reading a Borges short story — though it's much shorter than most of his — in the sense that each re-reading yielded new revelations.
  • "The '3.5% rule': How a small minority can change the world": "Nonviolent protests are twice as likely to succeed as armed conflicts — and those engaging a threshold of 3.5% of the population have never failed to bring about change." This is encouraging news, but can we find that many people to agree on something in America? I sure hope so.
  • "Why did we wait so long for the bicycle?": "The bicycle, as we know it today, was not invented until the late 1800s. Yet it was a simple mechanical invention. It would seem to require no brilliant inventive insight, and certainly no scientific background. Why, then, wasn’t it invented much earlier?" This post provides a really fascinating look into the history of the bicycle. The key insight, it seems, turned out to be: stop trying to copy the carriage and start trying to copy the horse.
  • The Conservative Sensibility is a new book by George Will. Mr. Will is a conservative, and this book is his attempt to articulate what conservatism ought to be. I haven't read the book, and I'm not a conservative, but I've heard Mr. Will recently on a few different podcasts, and he's very articulate and thoughtful, at least when speaking. He's also been a prolific column writer for several major US news outlets, but I must confess that I've never read any of his columns. Anyway, I don't think he makes any attempt to explain the insanity taking place on the US conservative scene right now; I think he mostly just wants to stake out a philosophical position, regardless of whether modern "conservatives" hold that position or not. (In fact, he said on one podcast that he'd left the Republican party because (and I'm paraphrasing) political parties are tools: you use them as long as they're useful, and then drop them when they're not.) I want to read it soon because he seemed to be a careful and thoughtful person, and although I'm very socially liberal, I'm at least open to hearing from those who worry about large government and over-regulation because I understand that different kinds of tyranny can emerge from either extreme.
  • "How to Be Unhappy" is a tweet thread that hit me a little too hard.
  • "It's Okay to Be Good and Not Great" is something I've been learning but needed to hear again. The article is a little fluffy, but I think it makes good points overall.

Music

  • A Blessed Unrest has been a creepy favorite of mine for a while. Where else (besides in horror movie soundtracks) can you find music that sounds like a haunted house? But this album is more sad than scary. Favorite track: "Half Sick of Shadows"
  • "Spiegel im Spiegel" by Arvo Pärt is so beautiful. When we listened to Pärt in college, I didn't think much of him. But this is really quite wonderful.
  • "Get started making sounds" is a series of tutorials from Ableton about how to use synths. It's weird: I have a music degree, but I understand virtually nothing about synths and other digital music tools. So, I'm definitely going to be working my way through this soon. I don't know how in-depth it goes, but the first few pages are definitely designed for people with zero experience in digital music. I'd eventually like to use this knowledge to build something fun with the web audio API.

Podcasts

  • Sleep With Me is a family favorite, and my wife and I are Patreon supporters. This podcast got me through some of the most difficult times in my life: it helped me to sleep at night, and it even helped me calm down during the day. I mentioned it in a previous blog post, but I'm mentioning it again because it's so good!
  • The Report is a podcast in which Lawfare and others attempt to give voice and character to Robert Mueller's report. It's not a dramatization; it's a weaving together of interviews, press conferences, rallies, witness testimonies, readings of sections of the Mueller report, etc., to help make the report more accessible to the average American. On a related note, Insider commissioned Mark Bowden (the author of Black Hawk Down) and Chad Hurd (art director at the cartoon Archer) to write and illustrate the Mueller report as yet another attempt to encourage the average American to consume the contents of the report. Their finished product is here.

Tech

  • apg-js2-exp "is a regex-like pattern-matching engine that uses a superset of the ABNF syntax for the pattern definitions and APG to create and apply the pattern-matching parser." In other words, you can replace regex patterns with something significantly more human-readable.
  • pandoc converts between document formats. Who knew?
  • Neuralink = Ghost in the Shell is coming our way soon! I'm still not sure whether or not I actually like Elon Musk, but at least he's getting cool shit done.
  • "I was wrong about spreadsheets and I'm sorry": "I ridiculed the spreadsheet jockey. I dismissed their power. I was an asshole about spreadsheets. I just didn’t get it. I asked why people didn’t 'learn to program,' and all the while, I was using tools which were clearly less sophisticated than Excel."

Miscellaneous

  • The NASA Clean Air Study encouraged me to buy a houseplant the other day: I bought a peace lily at Walmart. I also found this nice infographic that summarizes the study.
  • Project Wren "lets you go beyond reduce, reuse, recycle, so you can reverse your footprint and have a bigger impact in stopping climate change." It looks like you pay some kind of monthly subscription that funds carbon footprint offset projects, like "tech-enabled rainforest protection" or "clean briquettes for refugees." I have no idea if this is a scam or not, but it might be worth looking into for folks with disposable income who feel like they're not doing enough to solve climate problems.
  • The Open Syllabus Project "collects and analyzes millions of syllabi to support educational research and novel teaching and learning applications." In other words, they combine all of the syllabi they can find on a given subject to help identify the most-used learning resources for that subject. For example, here's the list for English literature.

Funny

serocell - media feed

agape

2019-07-21

electricgecko

Psychological Bar Reviews (6)

2019-07-19

undefined

XXIIVV — Journal

Macro — Caterpillar

2019-07-16


The Macro album contains various shots from up close.

serocell - media feed

élan

2019-07-15

electricgecko

Es fehlen die Beweise

2019-07-15

undefined

XXIIVV — Journal

Minamiise — After the Rain

2019-07-15


We sailed to Minamiise in the spring of 2019, from Shizuoka.

XXIIVV — Journal

Ronin — Ronin Recursion

2019-07-13


Ronin is an procedural graphics tool.

XXIIVV — Journal

Monome — Rack Monome

2019-07-12


The Monome is an open-source controller, each of its 128 keys can light up between 16 levels of brightness.

XXIIVV — Journal

Plan9 — Plan9 Rio

2019-07-10


Notes and links related to the Plan9 operating system.

XXIIVV — Journal

Ronin — Ronin Splash

2019-07-09


Ronin is an procedural graphics tool.

XXIIVV — Journal

Plan9 — Catclock

2019-07-08


Notes and links related to the Plan9 operating system.

serocell - media feed

taijitu

2019-07-07

electricgecko

Architecture Modernity Death Love

2019-07-07

undefined

XXIIVV — Journal

Plan9 — Glenda

2019-07-07


Notes and links related to the Plan9 operating system.

雨山

(雨山) Link Dump 003

2019-07-06

Articles, Posts, & Essays

  • In "Successful habits through smoothly ratcheting targets", Andy Matuschak (who wrote the "Why books don't work" article I shared in a previous link dump) describes how he developed a strategy for adopting new habits using "smoothly ratcheted targets, in moving weekly windows, with teeth."
  • "Agnotology and Epistemological Fragmentation" is a transcript of a speech given by Danah Boyd at the Digital Public Library of America conference in April, 2019. The core ideas: "Many people who are steeped in history and committed to evidence-based decision-making are experiencing a collective sense of being gaslit — the concept that emerges from a film on domestic violence to explain how someone's sense of reality can be intentionally destabilized by an abuser." And: "What's at stake right now is not simply about hate speech vs. free speech or the role of state-sponsored bots in political activity. It's much more basic. It's about purposefully and intentionally seeding doubt to fragment society. To fragment epistemologies." And: "Journalists often get caught up in telling 'both sides,' but the creation of sides is a political project." On the one hand, this is a very good articulation of the problem. On the other hand, I wish that she had hinted towards some solutions.
  • "The Petrie Multiplier: Why an Attack on Sexism in Tech is NOT an Attack on Men" was written in 2013. I don't know how I've managed to not read it for six years, but here we are. Anyway, in this post, Ian Gent shows how differences in gender representation in tech can suffice to create climates of extreme sexism, even if men and women are equally sexist. He doesn't argue for or against that last conditional; he merely points out that even if it's true, it's still possible to end up with extreme misogyny if women are outnumbered in the workplace. The core concept is the Petrie Multiplier, which is the idea that the ratio of attacks between majority and minority are the square of the ratio of the majority to the minority. In other words, if the ratio of men to women in a workplace is 4:1, then the ratio of the number of sexist incidents caused by men to the number of sexist incidents caused by women will be 16:1. It's a fascinating read!
  • "The Most Radical and Rebellious Choice You Can Make Is to Be Optimistic" is a short, sweet, quotable article by Guillermo del Toro.
  • "Socks" is Gwern's analysis of why we occasionally run out of socks. From the abstract: "Anecdotally and in 3 online surveys, people report often not having enough socks, a problem which correlates with rarity of sock purchases and demographic variables, consistent with a neglect/procrastination interpretation: because there is no specific time or triggering factor to replenish a shrinking sock stockpile, it is easy to run out."
  • "Money and School Performance: Lessons from the Kansas City Desegregation Experiment" is a paper by Paul Ciotti. At least in the case of Kansas City, throwing money at the segregation problem accomplished virtually nothing. It's interesting if true.
  • "Monkey Island": "I'm sure I'm a monkey, but I can't figure out how. Which is the problem with being on Monkey Island."

Books & Short Stories

  • IndieBound helps you find books to buy at local bookstores (in the US only?).
  • These stationery notebooks from A Good Company seem cool. The "paper" is made from stone, not wood, and the company claims to have eco-friendly production processes, about which you can read more here. The notebooks are expensive (~$30 for a single 144-page notebook) and the website is frustratingly immune to trackpad scrolling, but it might be worth the cost if you're interested in saving trees.
  • "A Solar Labyrinth" is a mysterious short story by Gene Wolfe.
  • "Book Review: The Secret of Our Success" is Scott Alexander's analysis of a book by anthropologist Joseph Henrich. Henrich's claim is that mere intelligence alone doesn't account for humanity's evolutionary success; culture does. One way to see why mere intelligence isn't enough is to think about how many European colonists arrived in the Americas and died in the midst of relative plenty while the neighboring native peoples thrived. If intelligence was sufficient for survival, then these new transplants probably would've figured out how to survive by developing the necessary tools and food production processes. But those things aren't usually figured out by a single individual; they're honed over many, many generations through trial and error, and the successful methods are passed down from parents to children — and that's what culture is! Anyway, I haven't read the book yet, but this review was super fascinating and made me want to read it!

Music

  • I heard the hip-hop music of Doomtree Records on a podcast a few weeks ago, and I really liked it.

Tech

  • Delta Chat allows users to send end-to-end encrypted messages using their existing email accounts (I think)! I haven't tried it yet, but it seems like a pretty cool idea.
  • Endlessh: an SSH Tarpit is a tool to help protect your server. It acts like a real SSH server and "ties up SSH clients with false promises indefinitely — or at least until the client eventually gives up."
  • "An Exercise Program for the Fat Web" is Jeff Atwood's guide to setting up a Pi-hole.

Videos

  • "1,500 Slot Machines Walk into a Bar" is a very funny talk given by Alex Schwartz and Ziba Scott at GDC in March, 2019, about their adventures in automated game production. They completely automated the process of generating low-quality slot machine games and uploading them to the Google Play store. In this talk, they shared the goals of the project, the ethics they employed, the amounts of money they made, and the lessons they learned.

Miscellaneous

  • Powered by gravity and GravityLight are tools that use the force of gravity to generate power. Basically, you lift some weights that are attached to a chain, and as the weights fall, they pull the chain, which turns some gears and powers a fan or a light bulb. You're not getting power for free, of course; you have to do the work of lifting the weight in the first place. But they're such cool solutions for places where electricity is inconsistent or nonexistent!
  • Why shouldn't we all have moss lawns?
  • I don't know why I liked Mazes so much, but I did.
  • Moving Target

Funny

雨山

(雨山) Notes Update

2019-07-03

I updated the Notes app, and you can see the live version here. I went away from that project for a long time and tried to use other note-taking apps. In the end, they all still rubbed me the wrong way. So, I rebuilt my Notes app again, this time using Direbase and ensuring that the notes were end-to-end encrypted. I'm not a crypto expert, and some of the functionality is still under construction — so use with caution. The source is here if you want to dig through it or host your own instance!

XXIIVV — Journal

Monome — Linn Monome

2019-07-01


The Monome is an open-source controller, each of its 128 keys can light up between 16 levels of brightness.

Szymon Kaliski

Nótt — standalone looper and granular instrument

2019-07-01

Nótt contains six independent loops, up to 8 seconds long, including speed control, sublooping, reverse playing, and custom granular mode. It combines my previous hardware looper experiment and my diy monome research.

serocell - media feed

the shock of photography

2019-06-30

Szymon Kaliski

volume-brush — painting in 3d space

2019-06-25

volume-brush is a volumetric brush implementation, inspired and adapted from toxiclibs.

XXIIVV — Journal

Skate — Minami Ise beach

2019-06-25


The Skate specs.

XXIIVV — Journal

Skate — Minami Ise beach 2

2019-06-24


The Skate specs.

雨山

(雨山) Link Dump 002

2019-06-23

Books & Articles

  • Leonardo da Vinci's notebooks have now been digitized and made available online!
  • Gitanjali by Rabindranath Tagore is one of my new favorite books. The prose is just achingly beautiful. I often read this at night when I can't sleep; it really calms me down and makes the world feel safe and lovely and wondrous.
  • "Five Lessons from History" is an article in which Morgan Housel describes (as you might've guessed) five lessons from history — but they're probably not the lessons you'd expect.
  • Borges' Essays: the Good Parts is a list of Borges' best essays, curated by Gwern.
  • This is an unspooled Twitter thread about how to grow moss indoors. The pictures are pretty. I'm thinking about trying it.

Miscellaneous

  • Jon Stewart's gave a speech before Congress in another one of his lobbying efforts for relief funds for 9/11 first responders' medical bills. I miss that guy so fucking hard.
  • WiWi? Spreadsheet is Disasterpeace's method for evaluating whether or not a freelance project was worth his time and energy.

Tech

Music

  • Room 25 by Noname is a fantastic, low-key hip-hop album.
  • MyNoise is a great place to find ambient soundscapes for focusing, relaxing, or meditating.

Funny

serocell - media feed

meds

2019-06-23

electricgecko

Unity and Measure

2019-06-23

undefined

serocell - media feed

mornings

2019-06-16

雨山

(雨山) Link Dump 001

2019-06-12

I don't know why it took me this long to think of doing link dump posts. I love link dump posts! Anyway, without further ado, here are some of the things I've been consuming lately.

Articles / Poems

  • "Why books don't work" - The author, Andy Matuschak, takes a look at the ways in which media can fail to achieve their stated objectives. For example, non-fiction books purport to teach the reader something; but how often does the reader actually learn the desired material? We often get distracted while we read, we filter the book's information through the lenses of our experiences and worldviews, and we're not required to demonstrate mastery in order to "finish" the book. Given all that, is it any wonder that retention can be so low? But it's not just books he's after: he dwells for a while on why lectures and other media fail for similar reasons, and he takes a look at what criteria might define a successful instructive medium.
  • "I work in the environmental movement. I don’t care if you recycle." - "Stop obsessing over your environmental 'sins.' Fight the oil and gas industry instead."
  • "You've Heard of the 36 Questions That Lead to Love. Now Scientists Have Developed 32 Questions to Change Your Life" - I helped to design the tarot-sized cards that are the physical version of the survey mentioned in the article. You can buy them here, if you want.
  • "Did James make the right Final Jeopardy bet?" - If you've been following James Holzhauer's success on Jeopardy recently, you might be interested in Tim Urban's breakdown of whether or not James made the right wager in the final round of his last game.
  • "Success Story" - I liked this poem by A.R. Ammons.

Videos

Podcasts

  • "Understanding Humans in the Wild" - Adam Grant visited Sam Harris' Making Sense podcast to talk about a variety of topics. There was so much good stuff in this episode! They talked about Grant's work on organizational psychology, parenting, power, and many other topics. Grant seems to be very knowledgeable, with ready statitistics and simple wisdom.
  • "Jenny Odell and the art of attention" - Jenny Odell visited Ezra Klein's podcast to talk about the role of modern artists, how to escape the attention economy, the difficulties of meditation, and other topics. I found a lot of things in this episode that spoke to where I am right now.
  • "Everything is Meaningless: The Book of Ecclesiastes" - Although I consider myself to be agnostic about religion, I do appreciate any time someone reads religious texts fairly and honestly and gives them a steel-man treatment. That's what Tamler Sommers and David Pizarro do for the book of Ecclesiastes in the Jewish bible. Honestly, this analysis was head and shoulders and torso above the watered-down treatment offered by most preachers.
  • "Episode 38: The Music Episode" - I love the Kitchen Table Cult podcast. You don't have to listen to this episode or to the podcast in general, but I'm mentioning it because I felt so seen every time I listen to it. The podcast is hosted by "two Quiverfull escapees," and many of their childhood experiences match my own. Honestly, I don't know if you'll get much out of the podcast if you didn't grow up in conservative Christianity, but for those who did, the show is a cathartic combination of cringing reminiscence of and irreverent contempt for the ignorance and cultishness of various conservative Christian movements. In this episode in particular, I had memorized the music of much every CCM artist they mentioned — and like Kieryn, I hadn't heard of Prince until way too recently.
  • Start With This - This is a podcast about how to get started on whatever creative endeavor you've been wanting to start but haven't figured out where or how or when. Don't know where to start? Start with this.

Music

  • Chillhop - This lo-fi, instrumental hip-hop and jazz music is really good for focusing when I need to get work done.
  • Music for Programming - Here's more good instrumental music for focusing, though this has a much more electronic and experimental flavor to it.
  • SomaFM - SomaFM has a lot of good stations. There are several noticeably missing genres, but the stations that they do have are pretty good. I find myself listening to "Lush" a lot.
  • Apollo 11 (Original Motion Picture Soundtrack) - My family and I went to see the Apollo 11 movie at an IMAX theatre recently. It was fantastic. There was no commentary or narration; it was all just real footage from the Apollo 11 mission with occasional diagrams to help explain what was going on. One thing that stood out in particular was Matt Morton's score; it was really, really good.

Miscellaneous

  • Playdate - It's a new handheld gaming system like Gameboy, but slick and modern and very, very sexy.
  • The Feynman Lectures on Physics - Physicist Richard Feynman explains physics concepts in ways that are accessible to the uninitiated. These have been up for a while, I think, but I'm just mentioning them in case you hadn't heard about them.

Thanks for tuning in! I'll probably have another link dump for you in a couple weeks!

serocell - media feed

princess

2019-06-09

Posts on phse.net

How I organize project notes

2019-06-08

Either I’ve been distracted by a particularly resonant book or article, or I’ve had too much coffee, but either way I sometimes find it hard to concentrate on the task at hand. My strategy is to use a template which I keep in my project folders in order to pick up where I left off. I find it helps me be productive when my mind is elsewhere. It could be compared to Getting Things Done or Org mode, but I won’t compare it to them myself since I am not familiar with them beyond their names and purpose.

Posts on phse.net

Choose people, not projects

2019-06-05

It’s normal for people to want to be fulfilled by the activities which they spend the most time doing. Fulfillment is a tricky thing to gauge because it’s highly dependent on the individual, and it can change over time. What is fulfilling to you today might be boring or irrelevant tomorrow. There may also be levels of fulfillment, each level needing to be met in order to feel overall satisfied with work or play.

Gokberk Yaltirakli

Gopher Server in Rust

2019-06-02

I find Gopher really cool. I think it’s a really nice way to organize information into trees and hierarchies, and as we all know programmers can’t resist trees. So recently I took an interest in Gopher and started writing my own server. Gopher, like HTTP, is a network protocol for retrieving information over the internet. One crucial difference is, it hasn’t been commercialized by adtech companies. This is probably because it doesn’t provide many opportunities for tracking, and it doesn’t have a significantly large user base.

serocell - media feed

sublimated

2019-06-01

雨山

(雨山) Site Update

2019-05-31

UPDATE #2: Well, in the end, I didn't like this new build system very much. I mean, parts of it were nice, but it ended up feeling overly complicated. Also, I just like JS-free sites so damn much. So, we're back to Jekyll again!

UPDATE: So, I went ahead and implemented my last suggestion. So, now, instead of downloading one giant-ass JSON file for the whole site, you only download a ~17KB JSON file! Then, when you request a particular blog post, the relevant Markdown file is downloaded client-side. Hooray!

So, I've made a major update to this site. Where it was previously a bunch of JS-free static files, it's now a single-page web app. Why the change? Well, I've basically been wanting for a while to make the site more flexible and adaptable. Liquid templates were holding me back; I could only do so much data-wise with them. I wanted, for example, to have a page that organized the blog posts by tag. That was technically possible with Liquid but agonizingly tedious to work out in practice in that system. Now, however, I can import all of the site data with JS and do whatever I want with it.

So, the new system works like this: I write my pages and posts in Markdown with front-matter (just like Jekyll / Liquid), but then I parse and compile them on the back end into a single, giant JSON file and an RSS / XML file. Then, on the front end, I fetch the JSON file and display the pages and posts in components using Vue.

I went back and forth about making this change for a long time because I really like JS-free sites. The web has become so bloated that the vast majority of sites are a pain to use. The old version of this site didn't have JS at all, and it was super fast, and I loved that about it. But I also decided eventually that it wasn't necessary to throw the baby out with the bath water and that I could still have a relatively fast site that incorporated JS. There are probably lighter frameworks than Vue out there that would've made things even faster, but Vue is the one I know best, so it made the most sense for me right now. And perhaps there's a trade-off between speed and flexibility, but in this case, I was willing to trade what I saw as a massive increase in flexibility for a negligible (or maybe even non-existent) decrease in speed. I also see this as an experiment, and I'll be keeping a close eye on it for the next few weeks and months to see if it was worth it. Obviously, as the number of posts becomes increasingly large, the whole-site JSON file will grow proportionally, and the time to download will grow proportionally. In that sense, static files would win easily in a speed contest. So, maybe it'll make sense eventually to do something else, like compiling only an index for the posts and downloading only that index on the front end initially — until a user requests a particular page, at which time I'd download and parse the Markdown file client-side. In fact, I may start working on something like that next.

Anyway, if you're interested in looking through the source, it's here. Later!

serocell - media feed

introverted

2019-05-26

serocell - media feed

2019-05-19_16h26m57

2019-05-20

雨山

(雨山) Hope

2019-05-17

When I was in high school (a private, Christian high school), we sang a song in choir that I loved called "Oh, How Can I Keep From Singing?" by Robert A. Harris. I could only find about two recordings of it on YouTube, and here's the better one. And here are the lyrics:

My life flows on in endless song
    above earth's lamentation.
I hear the real though far-off hymn
    that hails a new creation.
No storm can shake my inmost calm;
    I hear the music ringing:
It sounds and echoes in my soul—
    oh, how can I keep from singing?
What, though the tempest 'round me roars?
    I know the truth; it liveth!
What, though the darkness 'round me falls?
    Songs in the night it giveth.
No storm can shake my inmost calm;
    I hear the music ringing:
Since Love is Lord of heav'n and earth,
    oh, how can I keep from singing?

I still think it's a beautiful song; some of the harmonies are quite haunting, and I'm a sucker for Picardy thirds approached step-wise. 😀

It actually took me a while to hunt down this recording; I couldn't remember who the composer was, and there are many different settings of the original text and many arrangements of the original hymn. As I was trawling through a billion YouTube recordings of the other settings, I noticed that they were all, well ... shallow and irritating, to be honest. Most of them were in major keys with moderate or fast tempos. There was even some syncopation! (*clutches pearls*) Admittedly, the Harris version was the first setting of the text I ever encountered, so it's quite natural that my opinion of what an "appropriate" setting of the text should sound like was inevitably shaped by him. However, I found even in my last few years in Christianity that "happy" songs rarely fit my experience. Life, as the Buddhists say, is suffering. If you believe that there's an all-powerful, all-knowing, all-good God out there who has your best interests at heart, who'll lift up the oppressed and punish the oppressors, and who'll save you from death by whisking you off to eternity in paradise with him after you die, then of course you have something to be happy about. But that doesn't negate the fact that our experiences while we're living can be quite close to the popular image of hell: eternal conscious torment. And, as C.S. Lewis said, sometimes loss is real; sometimes, things get lost in such a way that even God can't or won't bring them back, and they're simply gone forever. Harris' minor setting of the song captures some of that suffering and loss in a way that other settings don't. I'm not saying that all happy songs need to be minor, but I do think that songs that purport to examine the totality of experience shouldn't be flippant or blasé about the actual state of things.

Well, anyway, you know that I'm agnostic about religion, so I'm no longer able to share in the Christian feeling of hope, a hope built on "the real though far-off hymn that hails a new creation" and "the truth" that "liveth" and the fact that "Love is Lord of heav'n and earth" — which sucks because it's nevertheless still the case that "the tempest 'round me roars" and "the darkness 'round me falls." I don't really want to dive into the details right now lest my blood boil out my ears, but I'm quite convinced that the world is on the brink of a handful of catastrophes. Between climate destabilization, Trump and other aspiring fascists, the upcoming American constitutional crisis and possible civil war, Brexit and other populist movements around the globe, the breakdown of nuclear arms treaties, antibiotic resistance and potential pandemics, etc., we seem to be barrelling towards a variety of existential crises as quickly as we possibly can. I would love to have some hope right now of the kind Christians feel, the kind of hope not based in circumstances but based on something fixed and eternal. I've talked to some friends about my fears, and they've said things like, "Well, we have to hope that Republicans will eventually do the right thing," or "Well, the 2020 election is coming up soon; maybe we'll vote them out of office." But what happens if Republicans continue forever down their current path of treason, corruption, and authoritarianism? What happens if we lose all the 2020 elections? "Well, at least we'll have another shot in 2024 ... " No! That's not good enough for me! I need a hope that's not conditional! If my hope, and therefore my sanity, is contingent upon what's going on right now, then I might as well go ahead and embrace despair and madness. Robert Wadsworth Lowry, the man who wrote the original hymn, seemed to feel that he had hope regardless of what was going on around him, that even though darkness was falling and a storm was roaring around him, he felt a calm and a joy and an assurance that nothing could ultimately harm him. Christians often quote from the apostle Paul's letter to the Christians in Rome, which expresses a similar sentiment:

"Who will separate us from the love of Christ? Will hardship, or distress, or persecution, or famine, or nakedness, or peril, or sword? As it is written, 'For your sake we are being killed all day long; we are accounted as sheep to be slaughtered.' No, in all these things we are more than conquerors through him who loved us. For I am convinced that neither death, nor life, nor angels, nor rulers, nor things present, nor things to come, nor powers, nor height, nor depth, nor anything else in all creation, will be able to separate us from the love of God in Christ Jesus our Lord." — Romans 8:35-39 (NRSV)

It would be wonderful if there was a secular version of this. The closest thing I've yet found is Martin Luther King, Jr.'s famous quote (which was a paraphrasing of a snippet from a sermon by Theodore Parker [source]), "The arc of the moral universe is long, but it bends toward justice." But even that can't really bear the weight that I want it to bear. For King and Parker, that claim was true because it was a principle derived from the Bible. But because I can't perform the same derivation, I have to view the claim as being empirical. And because it's an empirical claim and because we haven't seen the entirety of history yet, we can't know with any kind of certainty that the claim is true. The best we can say is that, in some cases, goodness wins over badness; in some cases, justice is done.

But here's the closest I can get to hope right now: humans are the cause of an absolutely unbelievable amount of suffering in the world — but they're also the cause of a good amount of the joy in the world. Whether one amount is greater than the other either now or in the future, I don't know. I tend to be a pessimist on that point, but I'm also skeptical that my perception of the world is accurate. I wish I could have certainty that humans would, in the end, cause greater amounts of joy than of pain, but I simply have no way of being certain. But that's it. That's all I've got to cling to at the moment. It's not much, and it's not fixed and eternal, but I've got to find some source of hope or I'll lose my everloving mind.

What about you? Do you have any sources of hope that feel sturdy and reliable to you irrespective of circumstances? If so, then I'd like to hear about them. Feel free to email me if you'd like to pass along some comments or questions. Thanks for reading!

serocell - media feed

2019-05-13_23h35m40

2019-05-14

Gokberk Yaltirakli

Evolving Neural Net classifiers

2019-05-12

As a research interest, I play with evolutionary algorithms a lot. Recently I’ve been messing around with Neural Nets that are evolved rather than trained with backpropagation. Because this is a blog post, and to further demonstrate that literally anything can result in evolution, I’m going to be using a hill climbing algorithm. Here’s the gist of it. Initially, we will start with a Neural Network with random weights. We’re going to clone the network, pick a weight and change it to a random number.

electricgecko

Psychological Travel Notes, Marseille

2019-05-04

undefined

electricgecko

6750 Regen Projects

2019-05-01

undefined

Nicola Pisanti's Journal

time crystal

2019-04-26



ORCΛ Time Crystal
(based on this structure by Devine Lu Linvega)

electricgecko

The Worn City

2019-04-26

undefined

Szymon Kaliski

modeler — CSG modeling with React

2019-04-19

modeler is a CSG modeling library for React, and a cli helper tool.

serocell - media feed

2019-04-14_22h08m50

2019-04-14

serocell - media feed

foundry

2019-04-11

Nicola Pisanti's Journal

shiftguard

2019-04-10




"as shifting became more frequent, better and better shifguards were developed for traveling through the unstable archipelagos"

--- code ---

Gokberk Yaltirakli

Plaintext budgeting

2019-04-03

For the past ~6 months, I’ve been using an Android application to keep track of my daily spending. To my annoyance, I found out that the app doesn’t have an export functionality. I didn’t want to invest more time in a platform that I couldn’t get my data out of, so I started looking for another solution. I’ve looked into budgeting systems before, and I’ve seen both command-line (ledger) and GUI systems (GNUCash).

electricgecko

Psychological Bar Reviews (5)

2019-04-02

undefined

雨山

(雨山) Goodbye, Niamelle

2019-03-30

So, a few months ago, I built a set of tools called Niamelle. But I've decided to shutter the project because I just wasn't using it any more. I'm a believer in using your own tools, and I realized that the fact that I wasn't using it must mean that it wasn't very useful. It was a good learning experience, but it just had too many flaws, and I wanted it to be too many things. In the future, I think I'll try harder to build tools that only do one thing well.

In the meantime, I'll be looking for a place to take notes, a (perhaps separate) place to keep to-do lists, and a place to keep links. I know that there are already plenty of tools that do those things, but I want to find good, cross-platform, privacy-focused FOSS tools, if possible.

I'm still proud of the work I did on Direbase and FileDB; those are probably tools that I'll continue to use in the future. Anyway, that's all for now. Later!

Posts on phse.net

Curiosity & Focus

2019-03-30

There are two sentiments I come across frequently when talking with creative people: “I should really learn how to do X” where X is some technology or skill. “I don’t feel productive enough” or “I wish I were more organized” or “I’m rewriting my website because…” or one of the other various permutations on the same idea: “I should get my shit together.” I have felt these sentiments often, too.

Gokberk Yaltirakli

Phone Location Logger

2019-03-23

If you are using Google Play Services on your Android phone, Google receives and keeps track of your location history. This includes your GPS coordinates and timestamps. Because of the privacy implications, I have revoked pretty much all permissions from Google Play Services and disabled my Location History on my Google settings (as if they would respect that). But while it might be creepy if a random company has this data, it would be useful if I still have it.

Posts on phse.net

A Commonplace Repository

2019-03-23

I keep a repository of various things I have learned but can’t possibly remember in totality (or recall quickly). This is useful for computer things because the repository can be cloned and fuzzy-searched (I prefer vim + fzf). If you find yourself frequently searching for the answer to the same problem or reading the same man page, this might be a good method for you as well. My commonplace repo

Posts on phse.net

Recently

2019-03-21

Currently, I’m: Practicing photography and drawing Working at thoughtbot Singing to my 2 cats Obsessing over color Playing the ukulele (poorly)

Nicola Pisanti's Journal

morphing

2019-03-21


when you get better at warping the pixelspace and then you never loose a chance to morph yourself into a six winged bird of light

serocell - media feed

vibrant

2019-03-16

雨山

(雨山) Not-So-Great Expectations

2019-03-13

Sometimes, we learn lessons in life, but then either forget them or fail to apply them in new situations. I recently noticed that I had done that very thing.

One several occasions over the past year, my wife and I had spent time with some of our closest friends. Each time, a strange thing happened: I came away feeling irritated or even upset. The first time or two it happened, I chalked it up to sleepiness or to a particularly potent bout of introversion. But it kept happening and kept happening. In fact, it was infecting my marriage as well. My wife and I had always gotten along really well, but I began to notice that I was getting more and more irritated with her, too.

Well, I quickly felt that this was just too much to bear. If I couldn't enjoy spending time with close friends and loved ones, then there probably wouldn't be too many more happy times left in life for me; and I didn't want to die a lonely, angry, old man. So, I spent some time sifting through my thoughts and feelings, trying to pinpoint the source of the problem. I've struggled with anxiety and depression for years, and I'm also an extreme introvert, so society is naturally a struggle for me. But I'd also had good, enjoyable friendships before, so I knew that this problem was something new and worse than whatever I'd struggled with in the past. And, after much introspection, I think I finally diagnosed the problem: I was trying too hard to control other people and my interactions with them. To be clear, I'm not a manipulative person, so I wasn't trying to force people to act a certain way; but I definitely experienced frustration when people didn't act as I expected them to act or feel as I expected them to feel.

I'm agnostic and mostly skeptical about religion, but I do think that religions have accrued kernels of wisdom that can be useful for us. And Buddhism, I think, has something to say about this situation. If I've understood the basics of Buddhism correctly, then one of the Four Noble Truths is this: Life is suffering. That means two things, I think. First, it means that mere existence is, on average for most people most of the time, probably more painful than pleasurable. We're always in need of food, water, and shelter — as well as the instrumental goods which lead to those intrinsic goods — which means that we're always hunting for and competing for those things. Even in the very best of lives, the fear of our inevitable demise still hangs like an ominous cloud on the horizon, darkening what could otherwise be a sunny existence. But second, "Life is suffering" means that we cause ourselves a boatload of unnecessary suffering by having desires and expectations that fail to be fulfilled. We hang all of our hopes on getting some new job, and then feel crushed when someone else gets it. We wish secretly, in our heart of hearts, to find The One to be with for the rest of our lives, and then suffer every day in which we haven't found them yet. We cling desperately to the past, but find in the end that we can never regain it. And while it's not clear how much we can mitigate the first kind of suffering (though there are good reasons to think that it's at least possible in theory to reduce hunger, thirst, homelessness, and disease on a global scale), the second kind of suffering can perhaps be reduced pretty significantly by letting go of our unreasonable desires and expectations as much as possible, by revising the desires and expectations that can't be released, and by embracing whatever is actually happening to us instead of wishing futilely for some other thing to happen.

I thought I had absorbed this lesson well enough to recall it when it needed to be applied, but apparently it's (at least for me) the sort of thing that needs to be re-learned again and again in different contexts. In short, my problem was that I was causing myself unnecessary frustration by setting up expectations for how my friends would act or feel during our interactions. For example, we spent time with an old friend, but realized quickly that they'd changed since we lived close together. That's not a bad thing, of course. Heck, I've changed since we lived close together. But the person didn't match my old mental image of them, and I kept finding myself irritated by the difference. (I didn't consider at the time that perhaps they could have been irritated with me for the same reason — though they didn't appear to be.) And, as another example, I kept getting frustrated during a book club meeting that the conversation kept wandering down rabbit trails instead of staying on the topic of the book. Of course, there's nothing wrong with any of the things we discussed, but I made myself angry by constantly comparing my anticipated conversation with the actual conversation. As a final example, I kept getting irritated that my wife said and did things in group settings that didn't match what I hoped she would say or do. Again, she didn't do or say anything wrong, but she just didn't match my expectations.

If Buddhism's Four Noble Truths describe the problem, then its Eight-Fold Path describes the solution. The Eight-Fold Path is a set of guidelines for living which, if followed, will supposedly lead to enlightenment and/or to the resolution of the problem of suffering. The first of the eight items is "right vision," which means seeing the world as it really is and understanding how it really works. On the surface, that seems simple, but it's actually quite difficult in practice, I think. Our view of the world is confused and confounded by all sorts of problems: we lack information about the world, we are motivated to believe that certain things are true because they're beneficial to us or to the people we love, our attention is finite and easily trapped, and we're controlled by all sorts of cognitive biases and failures. Seeking, filtering, and assimilating information; noticing and mitigating motivated reasoning; focusing our attention on meaningful problems; and identifying and eradicating biases — all of these steps require hard work, and that's only the first of the eight folds! What I've described can also be called learning. Learning is just updating or replacing an incomplete or inaccurate mental model of the world. So, by learning, we move closer to seeing the world how it really is, which causes our expectations to better match reality, which allows us to reduce the amount of suffering we inflict on ourselves.

Our definition of learning needn't be confined to schools; we all learn all the time every day. Every time we make a prediction about how the world will be and then that prediction turns out to be wrong, we have the opportunity to learn. If we properly update our mental model, then we've reduced future suffering for ourselves. It's only when we restrain the update process and forcibly maintain the old model that we make it possible to commit the same mistake again in the future.

Anyway, the point of all of this is that, once I realized that I was expecting my friends to conform to my mental model of them, I was able to start fixing the problem. I made a conscious effort during our interactions to let go of my expectations and to embrace whatever happened without judgment. And I think it really helped. I went from irritation to enjoyment almost instantaneously.

Of course, I'm no guru, and I'll probably have to re-learn this lesson again in another context, or even in the same kind of context. But I was proud to have noticed the problem and to have made an effort to fix it using a lesson I had already learned elsewhere. I'm already trying to think of other areas of life in which I can apply this lesson. Anyway, I hope that you can gain something useful from this little story. Laters!

Szymon Kaliski

Dacein — experimental creative coding IDE

2019-03-01

Dacein is an experimental creative coding IDE combining few different ideas together:

Szymon Kaliski

Building Dacein — experimental creative coding IDE

2019-03-01

Dacein is an experimental creative coding IDE combining a few different ideas that I’ve been thinking about:

雨山

(雨山) You Make Feel Like a Natural Human

2019-02-28

I recently saw a Nature Valley (makers of granola bars) commercial with the slogan "Nature makes us better." One implication of the commercial, inferred partially from the slogan and partially from the imagery, is something like this: "Spending too much time indoors, eating too much processed food, and not getting enough exercise are all detrimental to our health; so, we should get outside, eat more raw or lightly-processed foods, and move our bodies more." All of that's fine and probably an accurate diagnosis. But there's a deeper implication there as well, and it comes from the way the words are used. "Nature," the slogan implies, is something that can be applied to humans like ointment or that can be taken by humans like medicine or that can be entered into by humans like a sauna; and, having been consumed or entered into, it will "make them better." On this description (and here I infer more from other cultural sources, not merely from the commercial), "nature" is something that humans may have had at one point in the past and that they've now generally lost through technological processes but that they can re-obtain either individually or collectively by untethering themselves from technology and by getting back to "how things used to be." And it's this latter implication that I want to question in this post.

Foxes have holes and birds of the air have nests, but the sons of men have houses, which are apparently of a different quality altogether from non-human animal habitations. When a human spends too much time indoors, we say, "It's not good for you to be indoors so much of the time! You need to get back out into nature!" We don't say any such thing to foxes and birds, however, and I doubt we would say any such thing to them even if they could understand human language. And why would we not say such things to them? Because to most humans, foxes and birds are already part of nature, and therefore their homes are already part of nature, and therefore the time they spend in their homes is just nature doing nature things. But most humans do say those sorts of things to each other because they do not see their own homes as "natural." But why not? When a bird builds a nest, it selects materials, assembles them in a neat and orderly way, and then spends time sleeping, raising babies, and generally living in the nest. Humans do exactly the same sorts of things, but they don't consider their own homes to be natural or part of nature. Instead, they encourage each other to get out of their houses and back "into nature." Why do they do this? Why do they not see their own houses as natural?

There may be lots of factors involved in an answer, but I think that at least one broad, simple answer can be offered: most humans don't believe that they're animals. At the moment, the three largest religions in the world are the the Abrahamic religions of Judaism, Islam, and Christianity. They all accept the Genesis account of the world's origin: that God made man separately from the rest of nature and charged him the mission of ruling over nature. I don't know much about the Quran, but the Jewish and Christian Bibles talk a lot about how nature is chaotic and dangerous and how we as humans should "sanctify" ourselves from our natural impulses. (The Latin sanctus, which is often translated into English as "holy," literally means "set apart.") If you have been taught to believe such an account from the time you were born, then it's entirely conceivable that you'd see humanity as separate and apart from nature, something which needs the "good" parts of nature (like sunshine, raw foods, and exercise) but which occasionally succumbs to the "bad" parts of nature (like the "red in tooth and claw" bits). It's no wonder that we see both (contradictory) accounts expressed in literature: in Walden, nature is praised as the healing salve to the wounds of civilization, technology, and progress; but in Lord of the Flies, nature is criticized as the enemy of civilization, technology, and progress. We can also see this dichotomy in popular culture: "all natural" lifestyles (like homeopathy and non-GMO foods, both of which eschew scientific progress in favor of primitive or medieval solutions) are "healthy"; but people are rarely opposed to going to the emergency room in life-threatening situations or to eating more robust, tastier foods which have been genetically modified by centuries of artificial selection. In one view, nature is the thing to be embraced and returned to; in the other, it is the thing to be defeated and risen above. These views are really only possible, I think, when one believes that humans are something separate from nature.

I don't think that humans are separate from nature, though. I think that humans building houses is exactly the same sort of behavior as birds building nests. Sure, our brains are bigger than birds' brains, and therefore our houses will be much larger, fancier, sturdier, and warmer; but the behavior is still driven by the same underlying impulse, the same need for protection from dangers. In short, we are animals. For some people, this is a very degrading or depressing thought. Personally, though, I find it kind of fun and exciting. Mostly, though, I don't see how it's not completely obvious unless you just intentionally ignore the similarities between ourselves and other animals. Admittedly, if you're new to them, it takes a while to get used to thoughts like: "I'm basically a chimpanzee. I didn't evolve from a chimpanzee; I'm merely its cousin. But I'm still just an ape. And I've been classified that way by biologists, as opposed to being classified as a type of dog or lizard or fish, because of the characteristics I share in common with other apes. At the same time, though, I'm not exactly like other apes; I have features they don't, and they have features I don't. For example, I'm more intelligent, but they're stronger."

In fact, probably a second reason that most humans don't think that they're animals is that humans are far and away the most intelligent animals on the planet, which allows them, even in the absence of religious reasons, to view themselves as distinct from other animals, different in kind rather than in degree. If dolphins and crows and cats were all as intelligent as humans and could communicate with us, then I suspect that anthropocentrism would be abolished quite quickly, if indeed it ever appeared in the first place. But our collective memory unfortunately doesn't stretch back to the time when we were with other species on a level intellectual playing field, and thus the myth lingers on.

Why is all of this important? What does it matter whether or not some people believe that humans are special and unique among the creatures on the planet?

Well, it's generally important to have justified, true beliefs wherever possible, not necessarily because truth is "good" in some supernatural, metaphysical sense (though it may be), but because true beliefs are more likely to lead to survival. Sadly, this is only generally true. It's been shown that holding some kinds of false beliefs can lead to happiness and longevity. Religious people tend to outlive non-religious people, for example. I'm not saying with certainty that all religious beliefs are false, but enough of them are mutually exclusive enough that at least some of them are wrong some of the time. So, in those sorts of cases, holding unjustified or untrue beliefs can increase survival through a kind of placebo effect. But, generally speaking, true beliefs increase survival rates much more than false beliefs. (In fact, it may be universally true; it just may be that placebo-like effects from holding false beliefs represent a kind of local optimum which we could potentially surpass if we could get ourselves out of the rut.) For example, a gazelle that has true beliefs about the location of a lion is much more likely to survive than a gazelle that has false beliefs. In other words, having true beliefs about the state of the world means having true beliefs about the nature of potential threats, which means being much more likely to avoid those threats or being more knowledgeable about how to defeat them. And, of course, threats come in a variety of forms; predators aren't the only danger out there. Threats can come in the form of hunger, or thirst, or poison, or disease, or inclement weather, or accidents like falling or drowning or choking. (Geez, we can die in so many horrible ways!) A lot of knowledge is required to avoid or to mitigate all of those threats. Holding false beliefs only decreases survival rates, whether individual or collective.

Specifically, then, I think that anthropocentrism leads to the conclusion that the rest of the world is ours to do with as we wish, which leads in the end to the destruction of part or all of the world's ecosystem. It leads there not because we're individually bad or suicidal, but because evolution is short-sighted and doesn't necessarily produce creatures who survive in the long term; it only continues to produce creatures who can live long enough to clone themselves. Daniel Quinn's hypothesis in his book Ishmael is that humans don't just compete with other creatures; they actively destroy their competitors to achieve a monopoly. For example, we don't just grow crops; we label as "pests" any creatures that compete with us for those crops, and we annihilate them with extreme prejudice. In the short term, this behavior leads to more humans, which means that humans seem to be "winning," evolutionarily speaking. But in the long term, a continuation of that behavior must lead to the destruction of the ecosystem, since in the very long run, we will compete with every other species on the planet for every possible resource. Only very recently have we begun to question our use of pesticides, though that questioning has been prompted primarily by our own survival concerns and not as much by regret for the suffering inflicted on other creatures. The public has just begun collectively to notice what scientists have been telling them for a long time: that we're part of a vast ecosystem and that the destruction of that ecosystem is the destruction of ourselves. And yet we're still not noticing it quickly enough because too many people are mired in the fiction of anthropocentrism, a fiction that tells them that they can exploit the world however they like without consequences.

One needn't be an atheist or agnostic to let go of the anthropocentric worldview. One could probably easily believe that humans have souls and that they go to heaven or hell when they die and that they're animals who are part of a delicate ecosystem. But for some reason, anthropocentrists (who are usually religious fundamentalists, I think) not only exist, but they also happen to be in possession of a frightening amount of global power at the moment. This, of course, is how we've ended up in the position we're in, fighting for survival against some of our own world leaders and media organizations.

What's needed, I think, is more science education among the general public. But I want to be clear that this shouldn't involve merely more facts or measurements or calculations. Too many people, I think, suffer from a kind of trauma from math and science education, leaving them feeling that math and science is too hard, too distant, too impractical, too cloistered, and only useful for spitting out fun toys every once in a while. Therefore, I think that science education should more time asking its core question "What is the world like?" rather than merely telling students the answers to that question. It shouldn't force-feed students a list of facts to remember; it should encourage them to question, to observe, to categorize, and to experiment. It should teach them to accept facts no matter how bewildering or humbling. It should, perhaps above all else, include a re-envisioning of the world through the lens of "humans are animals." Such an education would teach neither that nature is wholly good for us as in Walden nor wholly bad for us as in Lord of the Flies, but that we are nature and that it is us. It would teach that it is good for us to be outdoors insofar as we need fresh air and sunshine and community, and that it is good for us to be indoors insofar as we need protection from predators and from the elements. It would teach us that our bodies have many of the same needs as other animals and that we should no more destroy our environment than we should destroy our own bodies. It would teach us that nothing is unnatural, including technology (because humans are natural and therefore what they do is natural), but that, just like genetic mutations, some innovations are beneficial and some are detrimental.

On paper, public science education probably already attempts to do those things in many parts of the world, but it is apparently hindered in its ability to penetrate into minds already full of the old fictions, and it simply can't penetrate into the wild west of unregulated homeschool and private school education. And I think I know why: education can be emotional and can even feel dangerous. It can genuinely hurt to hold one set of views and then to have them ripped from you without your consent (not because you had it hammered into you by unrelenting professors, but because you were so compelled by the evidence that your beliefs changed in spite of your attempts to keep them the same). I went through it, so I know how it feels. It does involve the giving up of one worldview for another. But there's actually something quite noble, I think, in being willing to follow the facts wherever they lead. It takes real courage. I can't claim to do it all the time, but I certainly want to be that kind of person.

Well, I'll stop preaching at you now. Thanks for tagging along. I'll leave you with an Alan Watts quote (from The Book: On the Taboo Against Knowing Who You Are) that summarizes the worldview I've been trying to describe.

"We do not 'come into' this world; we come out of it, as leaves from a tree. As the ocean 'waves,' the universe 'peoples.' Every individual is an expression of the whole realm of nature, a unique action of the total universe."

electro·pizza

LimeSDR Mini with Gqrx on Arch Linux

2019-02-22

The LimeSDR Mini is a newer product from the MyriadRF line of SDRs. Its ability to both transmit and receive, decent bandwidth, small form factor, and a reasonable price tag make it a very attractive device for experimentation. Likely, one of the first things a radio hobbiest will want to do with this device is hook up an antenna, fire up Gqrx, and tune around. Recently I attempted just this, but had some issues getting things setup on an Arch Linux box. It wound up being a bit of a rabbit hole, so it's worth a note on how I got this setup up and working.

serocell - media feed

secrets

2019-02-18

Posts on phse.net

A List of the Tools I'm Using

2019-02-12

Here’s a list of the gear I use: Drawing Tombow Fudenosuke Brush Pen (Soft type) Caran D’Ache Grafwood Graphite Bee Paper Company 93lb Super Deluxe Photography Fujifilm X-Pro2 w/ XF 27mm f/2.8 Computers 2014 MacBook Pro 13” 2009 ThinkPad T60 Software For work: Vim, Figma, Sketch, Photoshop For fun: Blender, TidalCycles, Dotgrid My dotfiles

Posts on phse.net

Always Carry a Sketchbook

2019-02-09

I like to keep a sketchbook with me wherever I go. Pocket-sized sketchbooks are highly portable, and you’re almost guaranteed to have something to draw on if you combine them with your wallet. It’s a great way to kill 10 minutes waiting for the bus, and the size of the page makes it much less daunting than a full-sized sketchbook. Types of drawing Over the years I’ve found I have 3 modes of sketching that I get into:

ellugar Logs

Server Setup - Introduction [en]

2019-02-01

undefined

Gokberk Yaltirakli

Rendering GPS traces

2019-01-26

If you ask a bunch of people to upload GPS traces when they walk/drive and you combine those traces, you can get a rudimentary map. In fact, this is one of the primary data sources of OpenStreetMap. The data for those is freely available, so we can use it in a small project. To draw simple outlines, iterating over the GPS track points and putting them on an image should be enough.

雨山

(雨山) Setting Up Orca on Ubuntu 18.04.1 LTS with SunVox

2019-01-19

It's fairly straightforward to set up ORCΛ on Ubuntu for use with SunVox, and though I haven't really gotten a chance to do anything advanced with it yet, these instructions at least got me off the ground.

Here's a video of the process. The written instructions are below.

So, first, launch SunVox. Open the Preferences from the little menu at the top left. Select the MIDI submenu. Click on "MIDI controller 1" and choose "Midi Through Port-0" from the drop-down list. Then close the preferences.

Next, launch Orca. Press CTRL+. to open the JavaScript console. Type:

terminal.io.midi.list()

This will list the available MIDI controllers. Note the index (place) in the list of the device with the same name as the SunVox controller: "Midi Through Port-0". Then type:

terminal.io.midi.select(0)

I used 0 in this example because that was the index of the device with the name "Midi Through Port-0" on my machine, but your index might be different.

Next, press CTRL+. to close the JS console. Now open an Orca project file. You can use one from the "examples" folder if you don't have any of your own yet. It should start playing automatically.

Orca will control whatever instrument is currently selected in SunVox. So, to switch instruments, just click on a different module (synth, effect, etc.).

And that's it! There are probably other and better ways to set it up, but since I know virtually nothing about MIDI, this is as far as I can take you. Good luck, and let me know how it goes!

雨山

(雨山) Reply All

2019-01-12

To whom it may concern,

You wrote a letter to me a few days ago. It was beautiful and sweet: a virtual hug, a reminder that I'm not forgotten. Your words, along with the words of others who have written to me over the past several months, have meant more to me than you can ever know. You have all given me light during the darkest hours.

It breaks my heart that I can't reply. There are a host of reasons, but the net result of them is that I'm afraid to respond to any of you. You must think that I'm ignoring you, but I'm not. I hear and cherish every word. You'll never know how your words have kept me afloat when I feared I would sink.

I know you'll probably never find this letter; I'm just out here mumbling in my own little corner of the void. But if you ever do find this: thank you.

Gokberk Yaltirakli

Reverse Engineering the Godot File Format

2019-01-05

I’ve been messing around with the Godot game engine recently. After writing some examples that load the assets and map data from files, I exported it and noticed that Godot bundled all the resources into a single .pck file. It was packing all the game resources and providing them during runtime as some sort of virtual file system. Of course; after I was finished for the day with learning gamedev, I was curious about that file.

electro·pizza

USB Powered Bias-T and ADS-B Enhancements

2019-01-02

Recently I have turned my attention back to ADS-B. I realized it is an excellent source for a dynamic near-realtime dataset for use as sample data in some other side projects. The data itself is interesting and fun to visualize, and it's relatively easy to stand up a recieveing station that is always on. So I pulled out an SBC (Odroid XU3) and an old generic RTL-SDR stick I had lying around, and hooked things up to a simple telescoping dipole antenna mounted in the window. This modest setup was enough to pull flight data from nearby aircraft, and for my purposes was completely satisfactory. However, the more I used this setup and got a sense of its receiving range, I became curious. What are some simple modifications I could make to this little station to increase its range, and by how much? Is it possible to push its range without going (too) crazy with radio gear?

Posts on phse.net

Yearly Review 2018

2019-01-01

2018 was an exciting year. I started a new job, traveled to Hawaii, and learned the basics of calligraphy. Here’s a list of a few of my favorite books I read this year: City of Saints and Madmen - Jeff VanderMeer The Paper Managerie and Other Stories - Ken Liu The Will to Keep Winning - Daigo Umehara Seven Surrenders - Ada Palmer As 2018 comes to a close, I’ve been reflecting on the past year as a way to determine my focus for 2019.

Posts on phse.net

On Minimalism

2018-12-31

I find myself discussing minimalism more often recently. When the topic comes up, the conversation usually gravitates towards the struggle (or success) of removing clutter from the garage, junk drawer, or desk by donating or trashing whatever has been accumulated over the years. Getting rid of excess possessions can be extremely freeing when you live in a hyper-consumerist society. However, I find that this activity has diminishing returns. I call this practice minimal materialism, because I think minimalism is a philosophy that extends beyond the things we own.

Szymon Kaliski

Culture Mapping — tools for analyzing how and why the culture is changing

2018-12-28

flow/control collaborated with ScenarioDNA and talented Nadieh Bremer to build a culture mapping tool.

雨山

(雨山) 2018: The Year in Review

2018-12-28

As per my annual tradition, here's a post about what this year was like for me.

In some ways, 2018 was one of the hardest years of my life. A single set of events destroyed a whole chunk of my life in some pretty terrifying and agonizing ways. I've already written about that stuff a little bit, so I won't prolong your pain by rehashing it all here — and I'm not ready to discuss it in detail anyway. But let me just mention a few bits of the longer-term effects that those things have had on me. First, I continue to have nightmares about them, even though we're several months out from it all. The nightmares aren't as bad or as frequent as they used to be, but they still happen. I'm also, I've discovered, still very sensitive to anything that might signal a resurrection of that stuff. Second, my relationships with close friends and family have been strengthened immensely by having to rely on them, so I suppose that's an unexpected silver lining.

So, what else happened this year? The primary thing that happened aside from the aforementioned stuff was that I discovered the Effective Altruism movement, which prompted me to leave education to look for work that would allow me to have a greater impact on the world. Applying for jobs at EA organizations was at times pretty depressing because I didn't have the requisite skill set to join even as a junior researcher, so I felt like I was mostly trying to convince people to give me a shot out of pity and charity. Fortunately, one company that focuses on mental health eventually gave me such a shot. I've been working with them as a web development contractor for a couple of months now. I'd still like eventually to work as a researcher (if doing so would allow me to have a greater impact), and I'm not sure whether they'll give me such an opportunity or not, but I at least feel like I'm heading in a better direction than before. I mentioned in a recent post that I have some skepticism about the exact causes that have been prioritized by the EA movement, but because EA is cause-neutral, I hope that they'll eventually turn their focus to more systemic issues. (After writing that "Values Update" post, I came across this paper, which attempts to show that anti-capitalism and EA are not only a compatible but also a desirable match. In it, the author gives what I think are two important criticisms of EA. First, he says that EA focuses too much on individual action and responsibility, and that it should instead consider putting more effort into changing groups and systems. And second, he says that EA tends to want to work within existing systems, even if those systems are inefficient or corrupt, and that it should instead consider replacing or destroying bad systems. I was very glad to have read it; it reified and justified some of the vague worries that had been floating around in my head for a while.)

But anyway, the work that I've been doing allows me to operate from home and to set my own schedule, which is just wonderful. I worried a little at first that I'd have a hard time focusing when I had the options to watch TV or play games or sleep or whatever. But it's actually been really good for me. I haven't had any trouble focusing or getting stuff done, and I've instead experienced a lot of joy through building my daily routine and proving myself to be a hard-working, productive employee.

What else was there? Let's see. Well, I don't remember the exact date, but it was in late 2017 or early 2018 that I deleted my Facebook account. That was one of the best decisions I've made in a long time. Later, I all but shut down my Twitter account. It still technically exists, but I don't use it for anything any more, and I deleted all of my tweets and unfollowed everyone. Most of my time is now spent on Mastodon at merveilles.town. If you're not using Mastodon, you definitely should! It's so much better than the other big, ad-driven social networks. I also started my migration away from using Google products. I can't leave them completely because my work requires them, but my personal email is now primarily on ProtonMail, I use PulseSMS for text messages, and I use DuckDuckGo for search.

I published my book of poetry for kids, All the World to Me. It has made basically no money, but it was so much fun to make. It let me dabble in many areas that I find fascinating: programming, writing, design, art, etc. I would love to do something like that again, but I'm not sure yet whether I have the time or creative power to devote to it.

I have learned and still continue to learn that I don't know myself very well and that I don't have good impulse control. In particular, I'm not good at implementing beneficial habits like eating well, exercising, and meditating. Those are the things that I most want to improve about myself in 2019.

Thanks for continuing to read my stuff! May you have a wonderful new year!

Gokberk Yaltirakli

Free Hotel Wifi with Python and Selenium

2018-12-12

Recently I took my annual leave and decided to visit my friend during the holidays. I stayed at a hotel for a few days but to my surprise, the hotel charged money to use their wifi. In $DEITY‘s year 2000 + 18, can you imagine? But they are not so cruel. You see, these generous people let you use the wifi for 20 minutes. 20 whole minutes. That’s almost half a Minecraft video.

serocell - media feed

mysterium

2018-12-11

Szymon Kaliski

Laboratory Residency — building creative coding tools

2018-11-27

I was quite tired after last year, where I worked on monthly projects and pushed hard to publish something every month.

Szymon Kaliski

hiccup-sdf — tools for modeling with signed distance functions

2018-11-25

hiccup-sdf is set of open source tools made for creating, displaying and exporting 3d models made with SDFs.

雨山

(雨山) Values Update

2018-11-18

UPDATE: After reading and re-reading this post, I want to remind you that the epistemic statuses of these claims are "very uncertain." I'm always learning, always updating; and although I may seem quite certain about these things, I'm actually not certain at all. The things I say about capitalism, for example, are a reaction to the horrible inequality in the world. If it can be shown that that's caused by something else, then I might be willing to give capitalism a chance; but in the meantime, I have to call it as I see it.

This is a post about how some of my values have changed over the past several months and years.

Effective Altruism

Several years ago, I tutored math students. I think I was pretty successful; I saw my students grow and learn. But I felt that the process was inefficient because I could only help one student at a time, and I realized that teaching in a regular school setting might allow me to help more students at a time (albeit in a somewhat diluted manner, since I wouldn't be able to provide as much one-on-one help to individual students). So, that's what I did. But, towards the end of that time, I began to feel again a lack of efficiency. Between bureaucracy, grading, and keeping parents happy, I felt unable to really teach how I wanted; and my classes were relatively small. I considered going larger and trying to do online education via MOOCs. But at about the same time, I began to feel that education was the long, slow game towards improving the world. I absolutely believe that education is important, and that we should play the long, slow game to improve the world. But I also began to feel that the present moment's stakes were just too high, and that I needed to have a more direct, immediate impact, if possible.

It was about that time that I discovered the Effective Altruism (EA) movement. EA prioritizes doing as much good as one possibly can, which implies doing as much good as efficiently as one can. Well, I was hooked immediately. I started reading books and listening to podcasts (especially the 80,000 Hours podcast), and felt utterly convinced by the arguments and by the overall mission to "do good better." I was impressed by their child and sibling organizations, like Givewell (which researches the efficacy of charities), 80,000 Hours (which researches impactful career paths), the Center for Applied Rationality, and others, all of which seemed to value the sorts of things I valued and to want to ensure that they were pouring their resources into the most important causes. But my views hadn't been fully formed yet, so they gave me words to explore the ideas that I'd mostly been trying to flesh out slowly and reclusively. I was so compelled by these ideas that I spent the last several months applying for jobs at EA organizations. Sadly, though, I've largely been unsuccessful because I just don't have any relevant research experience.

For a while, I was completely sold on everything EA. But I've recently started having doubts about some of its facets. Don't get me wrong: I'm still totally on board with the central goal of doing as much good as possible. But I've begun to wonder whether the actual cause priorities make sense. 80,000 Hours prioritizes career paths based on three factors: (1) how important the field is, (2) how neglected the field is, and (3) how tractable the primary problems of the field are. On the surface, this seems like good reasoning. After all, why should we waste resources on fields that aren't important, that are already well-funded and saturated with researchers, or that do not even conceivably admit of solutions? For example, Effective Altruists (henceforward "EAs") admit that climate change is very important, but they choose not to expend resources on it because it's supposedly already a well-covered field. And while I think that these three criteria are generally an excellent rubric for choosing priorities, the recent IPCC report has made me wonder whether or not climate science — and, more bluntly, our near-term survival — should take priority over other causes. In other words, this might be an "all hands on deck" moment in which increasingly many resources should be spent on the problem of survival until it is solved. In even more other words, perhaps the importance of the saturation of the field should vary inversely with the product of the deadliness and the immediacy of a particular threat: the more immediate and deadly a threat is, the less it should matter whether or not there are already lots of people working on the problem. Presumably, EAs are worried about diminishing returns on investment as fields become increasingly saturated. But in the case of climate change and other existential risks, every little bit of return might make the difference between extinction and survival. When the gazelle runs from the lion, death is on the line. The gazelle is forced to expend all of its resources on running and can no longer afford to think about potential risks in the future (if gazelles do that sort of thing, which they probably don't). If it transfers even a tiny bit of its mental energy towards thinking about where it'll find food later, or if it pauses even for a fraction of a second to catch its breath, the game is over. I worry that we're in a similar situation, and that the amounts currently being spent on climate-related research, education, lobbying, and policy-making are nowhere near where they ought to be.

I'm also surprised that EAs don't seem to focus a lot on democratic health. Some of them focus on the very long-term future (millions of years out), which very well may be important; but I'm skeptical that they should focus on it to the point of neglecting of the short-term future. Democracy is currently dying around the globe, which could easily lead to great power wars, which would drastically increase the risk of nuclear or biological war, which could easily destroy most or all of large life on the planet. 80K did recently release a report suggesting that working in politics in the US (specifically as congressional staffers) could be high-impact work. But I worry that these two issues — climate change and democratic health — should be given much more attention. I guess another way to say that is that I just think that much more attention should be paid to short-term existential risks (even well-covered risks) than is currently being paid. After all, there won't be humans in the very long-term future if there aren't humans in the very short-term future.

I suppose I'm willing to be wrong on these points. If it can be shown that each additional climate-related researcher, educator, lobbyist, or policy-maker adds virtually zero value to the field, then perhaps there's nothing to do but wait and hope. But I'm extremely skeptical that we're in such a position yet.

Solarpunk-ism, Anticapitalism, and Commons-ism

And because the IPCC claims that we've only got a dozen years or so to get our collective shit together — which, in my opinion, almost certainly can't happen as long as far-right populism, fascism, nationalism, and protectionism are growing in popularity around the world as rapidly as they have been — I've begun to think about where I'll be when it all hits the fan. Will I have to migrate to avoid drought, war, or the collapse of society? Will I survive at all? I'm extremely unsure how worried to be on this point. Some days, I fear that I'm being too alarmist. That usually occurs on days when the evidence isn't immediately obvious, when I look out the window and cars drive calmly by and the temperature is fairly normal and the grocery store carries every conceivable food. Other days, I worry that I'm not being alarmist enough, usually because scientists and journalists are doing their gosh-darnedest to wake people (myself included) the fuck up. I'm constantly updating my beliefs on this point and do not feel any kind of certainty yet. But I do think that there's a reasonable amount of preparation that can be done. I can update my passport, pack a bug-out bag with essentials, learn how to grow food, learn how to purify water, learn how to build a house, learn about electricity, etc. Upon hearing those things, you may think that I already have my tin-foil hat on too tight. Perhaps you're right. But then again, updating my passport and gaining knowledge (especially broad, shallow knowledge across fields like medicine, botany, chemistry, biology, and physics) costs little and benefits much, so I don't feel any qualms about making investments there. I'm less enthusiastic about spending time, energy, and money on those other things. I don't want to become a full-on survivalist until I absolutely have to; but I'd be willing, in the meantime, to gain skills equivalent to those of an Eagle Scout.

I also suspect that small, local communities may become increasingly important, either as possible antidotes to whatever feelings of powerlessness are driving people to want to break down democratic institutions or as the only remaining social structures if civilization collapses. I've become increasingly skeptical of capitalism and increasingly interested in ideas related to decentralization, P2P technologies and processes, The Commons, anarchism, reduced consumption, and sustainable living. Most of these ideas are wrapped up under the umbrella of "solarpunk."

Capitalism maximizes profits, especially absentee profits, meaning that you're "winning" at capitalism when you can make money without doing anything at all. This usually means that someone else is doing more work for less pay so that you can benefit. This also usually means that ownership of some resource — especially land — is the most desirable outcome, since it means that you can charge others for mere access to your resource without having to lift a finger at all. Another method of "winning" at capitalism, if you're a producer, is to drive down production costs by mass-producing your supply and then driving up demand to match it through artificial means. The consequence is that supply and demand are in constant flux, usually with demand lagging far behind production; and it also means that capitalism can be extremely wasteful. We've all seen dealership lots that contain way more new cars than will ever be sold. Also, although division of labor may not necessarily be implied by capitalism, the current state of divided labor means that whole segments of the population can lose their livelihoods at a moment's notice when their labor can be automated. (And, of course, instead of reaping the benefits of the automation, these laborers are merely put out of work, and the owner of the automated system becomes massively more wealthy.) Capitalism also relies on a scarcity mindset, and even on imposing artificial scarcity where none exists. This is especially problematic in the case of abundant resources, like knowledge. More than anything else, though, capitalism is a system that encourages and rewards inequality, and that must pursue profit by any means necessary. Therefore, when competition gets fierce, the competitors get fiercer, resorting to corruption, bribery, lobbying, and even putting their own supporters in positions of political power to get their way. In fact, unregulated capitalism must become governments and consume the whole world because capitalism is incompatible with democracy: in capitalist societies, the poor majority will always wish to tax the rich; but the rich will do everything in their considerable power to break democracy either fully or at least enough to let them escape from having any of their power taken away. And the majority can never become wealthy themselves, since capitalism requires never-ending competition which takes little to no account of human rights or dignity and which always moves towards a state in which wealth is accumulated in the hands of a few. Capitalism should also be blamed for the climate crisis and for the resurgence of the current far-right lunacy. As Mark Bray says, "We must recognize that the climate crisis and the resurgence of the far right are two of the most acute symptoms of our failure to abolish capitalism. A capitalist system that prioritizes profit and perpetual growth over all else is the mortal enemy of global aspirations for a sustainable economy that satisfies needs rather than stock portfolios. ... Capitalist crisis, competition and manufactured scarcity also provide essential fuel for the growth of fascist and far right politics — especially when there is no viable left alternative."

For whatever reasons — the ignorance of the public, far-right politics, aggressive PR and lobbying from oil and gas industries, etc. — the needle of political will hasn't moved far enough fast enough. Extinction Rebellion (XR) is a response to the lack of progress on climate issues. XR's goal is to continually increase direction action and civil (and perhaps eventually uncivil) disobedience until the problem is solved. That seems like exactly the right response to me given that nothing else seems to be working. Hopefully, the movement will grow enough to make change happen.

Decentralization, Federation, Open Source, & P2P

Finally, you've heard me talk a lot recently about moving away from the big tech companies. It's been a breath of fresh air. I thought I'd miss all of those services, but I honestly haven't. I love Mastodon. I'm still learning Scuttlebutt, but I'm liking it so far. ProtonMail still has a few performance issues and tiny bugs, but I'm otherwise completely satisfied with it. Direbase and FileDB have worked really well for my personal tools like Niamelle and Notes. PulseSMS has been great for text messaging. DuckDuckGo has been my search engine of choice for several months now. I'm still not thrilled with Firefox — it will probably never be able to match Chrome in speed — but it's functional.

I've written about my reasons for this change in previous posts, so I won't elaborate here.

Conclusions

I try to be hyper-skeptical of attitudes that smack of conspiracism or apocalypticism, which means that I've been really hesitant to allow my own fears to run rampant. But it has finally seemed justified to me because: the overwhelming majority of climate scientists tell us that extinction is on the horizon if we don't change course; journalists from many trusted news organizations regularly reveal to us the manifold ways in which companies display atrocious, reprehensible behavior; and real people lose their lives because of fascism. And just because many cases of conspiracism and apocalypticism are unjustified doesn't mean that there are no situations in which they're justified. Just because some gazelles might be overly jumpy doesn't mean that gazelles are never in real danger.

I value honesty, kindness, equality, and autonomy. Doing justice in the world includes remedying situations in which individuals, corporations, or governments are dishonest, unkind, unfair, and/or oppressive. I don't know yet where I fit into the process of making a better world, but so far I guess I'm just trying to do as much good as I can in my little corner of it.

Szymon Kaliski

HHTWM — hackable macOS tiling window manager

2018-11-03

I’ve built my own window manager for macOS that gives me layout-based automatic tiling.

雨山

(雨山) Dithering

2018-10-26

As I mentioned a while back, I'm running my websites on a Raspberry Pi. At the moment, it's plugged into a wall power outlet as you'd expect. But I'd eventually like to run it on solar power. I don't know how soon that'll be; I have a lot of learning to do in that respect. But I've found a couple of resources for education and inspiration here and here.

In the meantime, I've started trying to pare down the resources needed to serve the sites. The first step has been to implement image dithering to reduce image size. I first wrote my own implementation based on what I learned in this excellent article. It worked, but it was super slow. So, instead, I opted to use ditherjs, followed by Trimage. All of the images on this site have now been dithered! Hooray!

Just for fun, here's a dithered image of my new favorite reading spot! After resizing, dithering, and compressing, it went from 837KB down to 32KB, a 96% reduction!

雨山

(雨山) Niamelle

2018-10-16

NOTE: This project has been archived and will no longer be actively maintained.

So, I've been working on a little all-in-one web app that has a bunch of tools all in one place. It's called Niamelle [source], and, so far, it has:

  • a place to take notes,
  • a to-do list,
  • a time tracker,
  • a wiki,
  • a place to keep links (like Pocket), and
  • notifications.

Some of those features are incomplete and still under active development. Anyway, I hope you'll try it out and let me know what you think!

WARNING: This video contains some fast color changes.

Before I leave, let me just say a bit about why I've been making Niamelle.

First, as I've mentioned a few times recently, I believe that the internet has become too centralized. Monopolies like Google, Facebook, Twitter, Amazon, etc., own too much of our data. Sometimes, I wonder whether I've got my tin foil hat on a little too tightly with respect to these companies ... but then I remember how Facebook and Twitter swung the 2016 election, how Google is willing to censor content on behalf of the Chinese government, and how Jeff Bezos is wealthier than the entire southern hemisphere. (Okay, I might have exaggerated that last one — but not by much.) Furthermore, our data is getting sold and leaked and hacked from these companies all the time because such treasure troves can't be resisted by hackers — and then the companies don't notify us of the sale or breach for months or even years. We also don't have control over the terms of service of these platforms, and are therefore subject to their whims and caprices. It may not be very safe for me to run my own server since I'm not a security expert ... but then it also seems that our data isn't really safe anywhere else. So, what's a person to do?

Second and relatedly, I'm not a back-end guru, so I've relied on Firebase as my "backendless" solution for too long. It's worked fine, but I've wanted to ditch Google products for a while for all of the above reasons. I finally started working on Direbase, a replacement for Firebase. It's not perfect yet, but it works pretty well for my purposes so far. Direbase gave me an opportunity to sharpen my back-end skills, and Niamelle gave me an opportunity to really see how well Direbase held up in production (though, of course, since nobody knows me or my projects, I have no idea how well it'll scale).

Third, it's a hassle to log into a bunch of websites or apps in order to access all of the tools I want ... so I just decided to put them all in one place! I've had my Notes app for a long time, of course, but it's text-only; I've been wanting more functionality for a while now, and this is my answer to that desire.

Fourth and finally, I wanted the challenge. I already have pretty good Vue skills, I think, but I've wanted to continue to sharpen them.

So, that's it! Again, I hope that you'll try it out and give me some feedback on it!

ellugar Logs

My new shower head [en]

2018-10-13

undefined

雨山

(雨山) Direbase

2018-10-03

As part of my de-Googling, I've been meaning to start migrating my projects away from Firebase, which has been hard because it's just so damn useful. But I've started building my own open-source BaaS / backendless / no-backend alternative called Direbase. So far, it's extremely sparse — only supporting username / password authentication and simple databasing — and it's almost certainly not very secure. (Seriously. I don't know what I'm doing.) But it's been so much fun to make, and even more fun to see in action. The databasing relies on FileDB, an open-source, dependency-free database solution for Node that I just built as well.

I've migrated my Notes app over to it, though I've left the old Firebase version up for public consumption (since I use it as part of my portfolio). If I ever get around to tightening up security on Direbase, I may point all of my apps to it.

If you decide you want to try it out, let me know! And also, don't run anything mission-critical on it! Enjoy!

雨山

(雨山) De-Googling

2018-09-25

I left Facebook a while ago, I left Twitter recently, and now I'm trying to leave Google and Amazon. I'm writing this post to list some of the alternatives I've been trying to use in place of those providers. So far, I'm using:

I intend to try out:

雨山

(雨山) Greener Pastures

2018-09-16

So, I decided to quit Twitter for a while. I don't know if I'll go back or not. When I quit Facebook, it was an easy decision. Leaving Twitter is harder; I admire lots of the people I follow there, and I frequently see good content there. But there are just too many problems that can no longer be overlooked. First, the content is algorithmically shuffled, which drives me absolutely bananas. I want to see all of the posts from all of the people I follow in chronological order. Period. If someone posts too much or too shittily, I'll unfollow / mute / block them. I'm a big boy. I can do it myself. Twitter, you don't need to do it for me. Second, in what I think might be a relatively recent move, Twitter started showing stuff in my timeline that I didn't sign up for. For example, I frequently saw stuff from users that the-people-that-I-follow had liked or even just from people that the-people-that-I-follow follow. Again, Twitter, I can do this myself. You insult my curiosity. You assume that I want to find more content, more people to follow, etc. If and when I do want to do those things, I'll do them myself, thank you very much. Finally, ads. Ads, ads, ads. I hate ads so hard.

So, I'm leaving. But I have some good news. I've been using Mastodon, and it's been a breath of fresh air. It's got its own problems, but it's way better than Twitter. It's a microblogging tool like Twitter, but it doesn't have ads, it doesn't shuffle the content, and it doesn't inject content to which I didn't subscribe! Woohoo!

雨山

(雨山) Visible Peeps

2018-09-03

UPDATE: We let this domain expire because the maintenance wasn't worth the hassle. Plus, given everything I've learned about decentralization lately, there's almost certainly a better, simpler way. Until I figure out what that is, we're gonna put the project on hold indefinitely.

Hey, everyone! I just wanted to let you know that a friend and I launched a site called Visible Peeps. It's a site where artists and designers from the #visiblewomen and #visiblenb movements can submit their tweets for indexing by professional category and level. Hopefully, it'll also act as a place where people in need of artists can go to find women, non-binary, and trans people for hire.

I did all of the JavaScript (Vue & Firebase) stuff on the site, and Andreas Werchmeister did all of the design / CSS stuff. I've had so much fun collaborating on this project! Enjoy!

Szymon Kaliski

Sketchbook — a place for your sketches

2018-08-29

sketchbook-cli is a tool for organising, editing and displaying code-based sketches in real-time.

xvw's blog

Marques-pages internes d'articles

2018-08-27

Amélioration de l'expérience utilisateur du blog

xvw's blog

Un article sur les monades en 2018

2018-08-22

Parce que c'est toujours cool d'être mainstream

Gokberk Yaltirakli

Mastodon Bot in Common Lisp

2018-08-20

If you post a programming article to Hacker News, Reddit or Lobsters; you will notice that soon after it gets to the front page, it gets posted to Twitter automatically. But why settle for Twitter when you can have this on Mastodon? In this article we will write Mastodon bot that regularly checks the Lobste.rs front page and posts new links to Mastodon. Since this is a Mastodon bot, let’s start by sending a post to our followers.

雨山

(雨山) Pi Server

2018-08-20

UPDATE #3: I chickened out and went back to Digital Ocean. I liked the idea of running my own physical server, but I was super nervous about getting the security bits wrong. I really didn't like doing the port forwarding stuff on my home router; I was never quite sure that I got it all right. Also, VPSes are nice because it's super easy to just erase and restart if I fork stuff up. So, yeah. You're looking at a DO droplet right now.

UPDATE #2: It's all fixed now! As long as our ISP doesn't crap out again, my websites will all be running on the Pi!

UPDATE #1: Just when I thought that things were all nice and tidy, our ISP had two outages in three days. Although I suppose I could use a CDN to mitigate the problem, I decided that it'd probably be easier to move back to DigitalOcean temporarily. So, that's where things are for the moment. I'll keep working on it. Makes me hope even harder that Dat becomes commonplace!

I was originally running this site and my book site on a DigitalOcean Droplet, but I've now migrated everything over to a Raspberry Pi! Neato!

Szymon Kaliski

Editable — interactive notebooks from the comfort of your code editor

2018-08-19

editable-cli is a command line tool piggybacking on observable internals which provides file-based interactive notebooks.

xvw's blog

Konbini, Tac au tac et Manben

2018-08-19

L'article présente quelques émissions que je trouve cool !

雨山

(雨山) Dat

2018-08-18

UPDATE: This is no longer true.

My sites are now hosted via the Dat protocol! You can visit them at dat://ameyama.com and dat://alltheworldtome.com via Beaker!

雨山

(雨山) The Second Goodbye

2018-07-13

I've never written directly about religion on this blog. In fact, for many years, I felt like I couldn't write about it here. The fear that my family would discover my real opinions about religion kept me from writing. But I want to address the topic today for three reasons. First, I finally had a conversation with my parents in which I laid out the gist of my religious views — so that's no longer an issue. Second, few things are more formative in people's lives than religion ... and my life is no exception. The journey I want to chronicle here has shaped virtually every part of who I am, and it feels odd that such an enormously significant part of me should never be mentioned. Third, I need to write about it. I've been ruminating on these thoughts for so long. Lewis said, "I was 'with book' as a woman is 'with child.'" I am too. I'm tired of gestating; it's time for these things to see the light of day. So, without further ado, here's my story.

I was raised in a conservative, Christian family. My parents were (and still are) very committed to practicing their Christian beliefs and values. We went to church every Sunday morning and Wednesday night, and we were always among the last people to leave the building. I attended private Christian schools from third grade to college graduation. I declared my own belief in and commitment to God and Jesus and was baptized when I was fourteen. At church, I regularly participated in Bible trivia and scripture memorization competitions, children's choirs, Bible classes, youth group, and adult choirs. In primary and secondary schools, not only did we have a separate Bible class every day and chapel services multiple times each week, but every class was suffused with Christian language and concepts. In college, I was required to attend chapel every day and to take four semesters of Bible classes. After college, I married a girl (from the same college) who had an almost identically Christian upbringing. After several months of marriage, we moved to her hometown and got involved at the church where she'd grown up. I began teaching adult Bible classes there.

If you haven't come from an orthodox religious background, then the previous paragraph probably sounds really extreme to you. It certainly sounds that way to me now. All I can say is that, at the time, it didn't feel unusual. From my point of view, things didn't feel particularly "religious"; it was just life. Everyone I knew went to church and believed in God, so I went to church and believed in God as well. No one I knew argued about whether or not God existed because no one I knew actually doubted that proposition. I used to think that I was "sheltered," and maybe that word still applies. But now I've begun to think that I was mainly just "homogenized." I rarely met people who were different from me. If there were kids at my school who did drugs or had sex or were gay or didn't believe in God, then I didn't know about it. Even in college, when the population was a little more diverse, I rarely strayed from my comfortable group of high school friends.

But, OHMYLANTA, did it all change. The transformation began in this way. As I mentioned, I began teaching adult Bible classes at my wife's home church. I loved teaching those classes. I spent hours and hours every week preparing my lessons. I began reading theological works ranging from popular writers like Rob Bell to scholarly writers like N.T. Wright. I also began reading non-fiction works from C.S. Lewis, with whose fiction work I had been obsessed for many years. But I began to hit a snag in all of these books: I knew nothing about philosophy. That was a big problem, since all of those authors regularly spar with the popular philosophies of their day. Every time any of them mentioned an -ism, I felt utterly ignorant. So, I found some free philosophy MOOCs and started going through them ... and crazy things started happening. The philosophy courses I took just made so damn much sense. The teachers never tried to manipulate me into believing something with lame reasons like "I am the teacher, and I say so" or "It's stupid to believe the alternative" or "Everyone finds it plausible." They were so serene and content to let students weigh the arguments for themselves and come to their own conclusions — but, of course, since they were university professors of philosophy, their arguments always seemed utterly unassailable to me. During none of the MOOCs did the professors discuss religion. But the more I learned how to think for myself, the more sophistic and fragile religious belief systems seemed in comparison.

The core of the problem for me was something like this. Depending on which Christian you ask, "faith" is one of two things: it is either (1) belief in spite of evidence or (2) belief because of evidence. (And often Christians will say both at different times and never notice the contradiction.) For the first twenty-five-ish years of life, I had never given any thought to the question of whether or not there was evidence for God's existence because I had inherited belief from my parents. In other words, I believed irrespective of evidence, neither in spite of nor because of evidence. But once the problem of evidence was raised, I had to contend with it. And I found that both directions were problematic. To believe in spite of evidence seemed ridiculous, dangerous, and unstable. If, after all, belief in spite of evidence was allowed, then one could believe in anything at all! No, I couldn't do that. But neither could I believe in Christianity because of evidence, since there seemed to be very little evidence. (I may give a fuller account of this claim some other time.) And Christians seemed suddenly and obviously to be engaged in the most egregious fallacies of science and reasoning, especially by "ratcheting" with evidence that supported their claims and ignoring evidence that denied them. I began to understand that many scientists and philosophers were actually doing their dead-level best to find the truth, regardless of where that might lead them ... whereas Christians were usually only committed to finding the "truth" in science and philosophy so long as it accorded with what they already believed — and where evidence and reason parted ways with their "truth," well, so much the worse for evidence and reason. (I'm painting with a broad brush right now, but I don't want to make it sound as though all scientists and philosophers are intellectually honest and all Christians are intellectually dishonest because that's not true.)

But because my entire life had been built on the foundation of Christianity, I began to feel a genuine terror as the first cracks appeared in that foundation. For the first time, I not only understood that I was looking through my Christian worldview like a set of lenses, but I even allowed myself to take off those lenses for the briefest of moments and to take the tiniest peek at what life might be like if God didn't exist. What I saw wasn't pretty. I didn't like it. In fact, I hated it. But, in spite of that hate, my doubts about Christianity grew daily. I had learned that hoping that something was true was no guarantee that it actually was true. I also began to realize that belief wasn't something I could choose; it was something that happened to me. For example, I suddenly discovered that I couldn't choose to believe in Santa Claus any more than I could choose to make my heart beat. Belief (or disbelief) was revealed to be completely involuntary.

The struggle to hold onto my faith went on for four or five years, I think. I wanted desperately to believe in God. I wanted to be a Christian. But I simply couldn't. I didn't know what to believe any more, but I knew that I could no longer call Christianity home. Atheists would probably hope that my story would take a sharp upward turn here, that I would tell of my rebirth from the ashes of my former beliefs into something newer, brighter, happier. Sadly, the story is not so simple. For a few years afterwards, I lost all sense of self and purpose. I didn't know who I was or what I was doing. I felt unmoored, lost, drifting untethered a million miles from home.

No particular event helped to ground me again, but I did nevertheless become settled towards the end of those years. Slowly, the fear receded, and comfort in my own body returned. I became more self-confident and more courageous in my honesty and openness about my agnosticism. Still, most people who knew me didn't really know that I was agnostic. The main thing holding me back from talking about my views publicly was my parents. I was worried that the knowledge that their son was an agnostic would either kill them outright or at least make them feel that they had failed as parents. So, I lived in fairly solid but nevertheless quiet skepticism of religion for a few years, and life sailed along pretty smoothly.

But then shit happened. I still don't want to discuss the details, so I'll just leave it at this: the last two and a half months have been some of the worst of my life. I've never experienced so much stress and fear and anger and grief all at once and for such an extended period of time. For the first month, I was crushed under such agony that I actually prayed for the first time in years. I didn't care that I didn't actually believe; I pleaded for anyone — Yahweh, Buddha, Allah, ghosts, Harry Potter, the cosmic void, whomever — to help me. I also began reading the Bible again, searching for answers and stability. I was immediately filled with an array of confused feelings. A not insignificant part of my fear was alleviated upon finding these old, familiar verses. I knew all the old roads, and they felt firm and unchanging in comparison to the chaos in my life. Really, it felt like coming home after a lifetime of wandering across the universe. But I suspected deep down that this return was nothing more than a visit. I tried on those familiar clothes again in hopes that they might provide me with comfort at such a critical time. But they still didn't fit. I was — and still am — unable to hold the Christian beliefs (or any religious beliefs at all, for that matter). And so I let go again.

This brief return reminded me of a certain kind of movie plot. A lover loses his beloved. She returns briefly towards the end as a ghost, and he — who has not been able to accept her death — must now say goodbye for good. In this final parting, he finds unexpected closure, as though the wound which initially would not heal is now able to close. Something like that happened to me over the last couple of months. It was a second, deeper, more permanent goodbye to Christianity. Where the first had been an agonizing, tear-filled, torturous saga drawn out over many years, the second was a brief, silent hug by the dock, after which I stepped back into my boat and cast off again.

I mentioned at the beginning that I've felt the need to write all of this, but I'm not really sure why I've had that need. Much as I wish that a single, shining moral could be derived from this story, I doubt that there is one; it's simply an account of my journey.

I know almost nothing; I do not claim to have any answers. But, in what I've observed in others, letting go of certainty and fear is the first step on the road to wisdom; so, I hope that means that I'm on my way.

Thanks for taking the time to read this. Feel free to contact me via the links below if you have any questions or comments.

雨山

(雨山) Crazy Text

2018-07-10

I've been thinking about maybe making something for the Gothic Novel Jam, so I started tinkering with ideas about how to portray loss of sanity as someone writes. Anyway, here's what I've come up with so far.



雨山

(雨山) Piano Noise

2018-06-21

I made a little doodle for ProcJam called "Piano Noise." You can see it here.

Gokberk Yaltirakli

Fetching ActivityPub Feeds

2018-06-18

Mastodon is a federated social network that uses the ActivityPub protocol to connect separate communities into one large network. Both Mastodon and the ActivityPub protocol are increasing in usage every day. Compared to formats like RSS, which are pull-based, ActivityPub is push-based. This means rather than your followers downloading your feed regularly to check if you have shared anything, you send each follower (or each server as an optimization) the content you shared.

雨山

(雨山) All the World to Me

2018-06-07

I wrote a book of poetry! The poems are probably mostly for kids, but I'm sure that anyone can enjoy them. The book is called All the World to Me, and you can buy it over here!

serocell - media feed

sleeparchive mix

2018-06-06

雨山

(雨山) The New Digs: My Server Setup

2018-06-06

When I learned that Microsoft had acquired GitHub, I first thought about migrating to Bitbucket because they have unlimited free private repos. But then I remembered that I had tried building a public site using their "pages" feature (similar to GH Pages) several years ago, but had been disgusted by the fact that the pages always came wrapped in an iframe. So, I tried migrating to GitLab a couple of days ago. At first, all seemed well, but the process of getting their "pages" feature working was an absolute pain in the ass. Whereas GH Pages could be up and running in two clicks, GL Pages required config files and pipelines, none of which I understood. I'm sure they want to provide a greater degree of customization than GH, but they should still provide a few one-size-fits-all sane defaults for popular static site generators. Plus, their documentation didn't match my experience; the tutorials and examples were scattered around, and they didn't all match. I ended up turning to StackOverflow for help. And when I finally got it all going, Jekyll's blog links were broken and could only be fixed by appending ".html" to each post URL. So, in the end, I decided to push my repos to Bitbucket and to build an Express server on a DigitalOcean droplet to host my sites. This site, for example, is running on that server. I'm writing this post primarily to document how I did it so that I can remember later when I inevitably have to relearn the process. So, here it is!

1. Basic Setup

I created the cheapest possible droplet on DO. It's running Ubuntu 16.04 and costs $5 per month plus a little for outgoing bandwidth. Then I went to my domain registrar and pointed my domains' A records to the server's IP address.

On the server, I started by creating a sudo user.

adduser josh
usermod -aG sudo josh

Then I logged in with that user and installed LinuxBrew.

sudo apt-get install build-essential curl file git
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

Then I used LinuxBrew to install Node and Ruby, and then Jekyll and forever.

brew install node ruby
gem install jekyll
npm install -g forever

I knew I'd need to serve my sites over https, so I installed Certbot, which supplies Let's Encrypt certificates.

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot

Also, since I wanted to be able to connect to my Bitbucket repos over SSH, I copied the SSH keys from my machine to the server.

# (from local machine)
scp -r ~/.ssh/* root@<SERVER_IP_ADDRESS>:/home/josh/.ssh/

2. Let's Encrypt

To prepare for getting my TLS certificates, I made a folder that would eventually contain all of the interesting server stuff, which I just called mother-base. I moved into that folder, made a folder called public, and wrote a little Express app. This app, as you can probably tell, simply serves the public folder on port 8080. I called this file tls.js.

var express = require("express");
var path = require("path");

var app = express();
app.use(express.static(path.join(__dirname, "/public")));
app.listen(8080);

However, the Certbot process works over port 80, not 8080. So, I had to reroute port 80 to 8080 using iptables.

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

I ran this app with forever.

forever start tls.js

Then, I ran Certbot to get my TLS certificates. Since I planned to use multiple domains on this server, it was necessary for me to list all of those domains in this single command so that all of the domains would end up on the same certificate. I also learned the hard way that Certbot only allows 5 failed certification attempts per hour. I made lots of little mistakes along the way and got locked out for an hour. But then I learned that it's possible to use the --dry-run flag to test out the process before spending a real attempt.

sudo certbot certonly --webroot -w ./public -d ameyama.com -d www.ameyama.com

Then I stopped the forever job.

forever stopall

The new certificates were inaccessible to my user, even with sudo privileges. For example, sudo /etc/letsencrypt/live failed. So, I had to fix the permissions.

sudo chmod -R 755 /etc/letsencrypt/live
sudo chmod -R 755 /etc/letsencrypt/archive

Then, I created a folder called tlscert in which I created symlinks to the relevant certificate files.

sudo ln -s /etc/letsencrypt/live/ameyama.com/fullchain.pem ./tlscert/
sudo ln -s /etc/letsencrypt/live/ameyama.com/privkey.pem ./tlscert/

3. Submodules

After turning the mother-base folder into a git repo, I added my websites as submodules, cloned them into the public folder, and committed them to the mother-base repo.

git submodule add git@bitbucket.org:jrc03c/ameyama.com.git ./public/ameyama.com
git submodule init
git submodule update
git add . --all
git commit -m "Added ameyama.com as a submodule."

Because this site is built with Jekyll, I moved into the newly-cloned folder and built it.

cd public/ameyama.com
jekyll build
cd ../..

4. Express

Here's the whole Express server.

var path = require("path");
var express = require("express");
var http = require("http");
var https = require("https");
var fs = require("fs");
var helmet = require("helmet");
var vhost = require("vhost");
var serveStatic = require("serve-static");
var app = express();

// use helmet for basic security stuff
app.use(helmet());

// this config object tells serveStatic to try
// adding the .html extension if the requested
// path doesn't exist and to ignore requests
// for dotfiles
var config = {
  extensions: ["html"],
  dotfiles: "ignore",
};

// use vhost (in combo with serveStatic) to host
// multiple domains in the same express app
app.use(vhost("ameyama.com", express().use("/", serveStatic("public/ameyama.com/_site", config))));

// redirect http to https
var http = express();

http.get("*", function(request, response){
  response.redirect("https://" + request.hostname + request.url);
});

http.listen(8080, function(){
  console.log("Listening on port 8080 to redirect http traffic  ...  ");
});

// run!
https.createServer({
  key: fs.readFileSync(path.join(__dirname, "/tlscert/privkey.pem")),
  cert: fs.readFileSync(path.join(__dirname, "/tlscert/fullchain.pem")),
}, app).listen(8443, function(){
  console.log("Listening on port 8443  ...  ");
});

Once that was set up, the only thing left to do was to configure iptables to forward port 443 to port 8443.

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

5. Going Forward

There are still a few things I'd like to fix.

  • I need to create a cron job for the Certbot renewal process (since the certificates only last for 90 days).
  • I need to create hooks so that my Jekyll sites are automatically rebuilt any time changes are pushed to the repos. Right now, the process is manual.
  • I need to make sure that I've got as many security hatches battened down as possible. I know nothing about this, so it'll be a learning process.
  • I need to configure time-to-live headers / caching stuff. I know nothing about this either.
  • I need to learn more about vhosts, since I'd like to be able to write regular Express apps and pass them to vhosts rather than simply serving static files.

So, yep. That's it!

serocell - media feed

absorbing J

2018-06-06

Szymon Kaliski

JSConf EU 2018 — generative artwork

2018-06-03

flow/control collaborated with talented Matt DesLauriers to create generative intro artwork for JSConf EU 2018 opening.

Szymon Kaliski

HOT Visualize Change — tool for generating animations from map changes

2018-05-16

flow/control collaborated with Humanitarian OpenStreetMap to design and build an online tool for generating animations of changes made to OpenStreetMaps map layers.

雨山

(雨山) Piano Sketches #1

2018-05-09

I doodled on the piano a bit tonight.

雨山

(雨山) Sleep With Me

2018-05-02

Friends, I've been listening to a podcast called Sleep With Me. It's awesome at helping me get to sleep.

There's a lot going on in my life right now, but I'm not sure I'm ready to talk about it here yet. But just know that this podcast has gotten me through some really hard times recently when I was otherwise unable to sleep or to calm down. If I have money again someday, I intend to support the show financially. Anyway, go check it out.

serocell - media feed

The Vile Arts Radio Hour 2018-04-02

2018-04-21

serocell - media feed

how many

2018-04-16

serocell - media feed

shearing

2018-04-16

serocell - media feed

crimp

2018-04-16

serocell - media feed

single

2018-04-16

serocell - media feed

digits

2018-04-16

serocell - media feed

shimmer

2018-04-16

serocell - media feed

thimble(remix)

2018-04-16

serocell - media feed

disquiet

2018-04-16

serocell - media feed

digits2

2018-04-16

serocell - media feed

thimble

2018-04-16

serocell - media feed

dubious

2018-04-16

Szymon Kaliski

CRLN — gpgpu curl noise experiment

2018-04-07

CRLN is an experiment in bending curl noise on the GPU (desktop Chrome only).

Gokberk Yaltirakli

Generating Vanity Infohashes for Torrents

2018-04-06

In the world of Bittorrent, each torrent is identified by an infohash. It is basically the SHA1 hash of the torrent metadata that tells you about the files. And people, when confronted with something that’s supposed to be random, like to control it to some degree. You can see this behaviour in lots of different places online. People try to generate special Bitcoin wallets, Tor services with their nick or 4chan tripcodes that look cool.

Gokberk Yaltirakli

Writing a Simple IPFS Crawler

2018-03-12

IPFS is a peer-to-peer protocol that allows you to access and publish content in a decentralized fashion. It uses hashes to refer to files. Short of someone posting hashes on a website, discoverability of content is pretty low. In this article, we’re going to write a very simple crawler for IPFS. It’s challenging to have a traditional search engine in IPFS because content rarely links to each other. But there is another way than just blindly following links like a traditional crawler.

Szymon Kaliski

MNTN — procedural mountain generator

2018-03-10

MNTN is a small experiment in creating procedural mountains.

雨山

(雨山) The Joy of Making

2018-03-09

I've spent a long time stressing about not having enough money. In truth, I have enough to live on — I can pay my bills every month and can even occasionally put a tiny bit into savings — but that's not quite the same as having enough to feel insulated from unexpected hardships.

This (perhaps unwarranted) stress has, I think, made me forget how to have hobbies, how to want to make things for the sheer joy of making them and for no other reason. Whenever an idea occurs to me nowadays, it must be passed through the filters of "but will anyone like it?" or "but how much money will it make?" or "but do you have the time?" or "but do you have the skills?" It doesn't matter what the answers to those questions are; the point is that I've apparently lost the ability to make things for fun.

I want to regain that ability. But I don't know quite how to do that. One exercise that always rejuvenates my enthusiasm for hobbies is making games for game jams. When I make a game for a jam, I know that it's going to be a prototype, that it almost certainly won't be able to be sold as-is; in other words, I know that it will have no practical value when it's finished. Nevertheless, I love making games for jams. What other game-jam-like things could help to lift me out of this rut? Maybe writing jams or music composition jams could be fun. Also, is there a specific pattern of thinking that would generally help (besides merely trying to turn off those filters)? Maybe. Well, any advice you could give would be appreciated.

ellugar Logs

Los hombres duros no bailan [en]

2018-03-06

undefined

雨山

(雨山) Waking Up

2018-02-15

So, I just finished Sam Harris's book Waking Up. I don't know that this post will be a review as much as it'll be my attempt to jot down some thoughts about the book. In fact, I feel inadequate to the task of reviewing it simply because I'm not yet sure I can evaluate Harris's claims. In other words, I'm not sure that I yet understand exactly what it is he's saying, so I don't feel fully able to critique it. But here, in any case, is my best attempt to summarize the argument he's making. To be clear, the following paragraphs (with the exceptions of the final two paragraphs) represent Harris's thoughts (or my attempts to recreate his thoughts), not necessarily my thoughts.

Religion is mistaken and confused in most of its metaphysical claims, but Buddhism in particular has — almost accidentally, given the foibles of the religious mindset — produced something useful to humans: meditation. Meditation, if done properly, can alleviate much of the suffering of human existence. A successful meditator learns to recognize that the self is an illusion, and this allows her to see that the contents of her consciousness are mere ephemera parading in a constant stream before the eye of consciousness, and therefore that such transiences are separable from consciousness. This, according to Harris, represents the "waking up" of the meditator.

Our conscious experience is composed of many parts: memory, language, sensation, sense of self, and so on. These parts — including sense of self — can be selectively distorted or disabled by damage, surgery, or chemicals. By "self," Harris means that sense that "I" am actually a little driver sitting in the "cockpit" of my skull, looking out through the "windows" of my eyes. It is this "self" that is illusory; instead, there is only consciousness and its contents. Even if we don't picture ourselves as little drivers of our bodies, we nevertheless behave in ways that reveal our subscription to something akin to that view. Harris uses the following thought experiment to illustrate the point. Imagine that you're at home, getting ready to leave to go to the store. When it's time to go, you can't find your keys. You look all around the house, growing increasingly frustrated. When you finally find them, you exclaim aloud, "Well, there they are!" I suspect that most of us act this way. But when we do, to whom are we speaking? Talking to ourselves in this way seems to illustrate that we believe that there's someone or something inside of us that needs to be informed about the finding of the keys. But there is no such something or someone. That's not to say that most of us don't imagine another part of ourselves. But it's this imagined part that's, well, imagined. Here's another thought experiment. Imagine that you're driving down the road and some jerk cuts you off. If nothing else significant happens to you in the near future, then the odds are pretty high that you'll continue fuming about that incident for quite a while — minutes, hours, even days in some cases. But suppose that, seconds after the jerk cut you off, a child runs out into the road. Your entire mental landscape changes radically and immediately. Where once you had been feeling rage, now you feel alarm and fear. Supposing you manage not to hit the child, then you might afterwards feel horror, sadness, and disgust at the thought of what might've happened. In the first case (without the child), you went on stewing over the jerk for a long time; but in the second case, your mental experience jumped completely from one state to another. And here's the relevant question, then: why did you need the child to derail your anger? The anger no longer held sway on your mental state once the child appeared. But why was the child necessary? Couldn't you have simply recognized the transience and potential powerlessness of the event to cause anger in the first place? But you didn't recognize it. You let it have power of you, and you perpetuated its influence by continuing to ponder it.

But why did you do this? Why did you allow its effect to linger long past the time when the anger was useful? (Anger, which is an evolution-generated life-saving tool, can be useful sometimes. It could potentially save your life while driving near jerks. But the anger continued long after you arrived at your destination, at which point it was no longer helpful or desirable.) The point is not that you should not have been angry. The point is that your anger outlived its usefulness. And it did this because you were striving to please some inner self, some inner watcher — the very same one that you thought was listening to your announcement about the keys. But, since such an inner watcher is illusory, there is no need to continue suffering from the anger.

The point of meditation, then, is not so much to think about breathing, or to think about nothing, or to think about anything particular at all. Instead, it's a way of re-experiencing the fact that the self (the little driver, the little watcher) is an illusion. By quieting the mind and fixing our attention on one point of experience (such as the sensations of breathing), by noticing thoughts arising and distracting us, and by redirecting our attention back again to that central point of experience, we become aware (again, or for the first time) that thoughts and sensations are transient and that they come into the light of consciousness from some other part of the brain. After all, our brain does much more than we're consciously aware of. And because thoughts and sensations come from outside — i.e., happen to our conscious selves — we can choose to entertain them, to focus on them, to remember and ruminate on them, or to let them pass. We are able to let them pass because there is no little watcher inside that needs to be informed about them; we are already informed about them when they enter our consciousness. And now that we have the information, we can choose to act appropriately and not to be coerced into excessive rumination by the imagined needs of an imagined self. And when we are able to let thoughts and sensations pass, when we prevent them from outliving their usefulness, our lives become much happier. In fact — and this is basically how he opens the book — all of our suffering is mental. We might have all of the relevant prerequisites for happiness — friends, family, food, water, a home, money, etc. — but still be unhappy if our mental state is consumed with negativity. Therefore, recognizing the illusion of the self allows us to let go of negativity and therefore generally to improve our lives. This is the goal of all spirituality. (And Harris doesn't hesitate to use that word, though he takes time to remind us that he doesn't accept any of the metaphysical baggage that comes with the word and that he means it in a purely materialistic sense.)

So, that's my summary of what I think Harris is claiming. I could be quite mistaken in this analysis, especially because it was honestly quite a difficult book to understand. I mean, not difficult in terms of grammar, syntax, or vocabulary; difficult in terms of the concepts; difficult because I could tell that Harris was trying to explain an experience to the uninitiate, which is presumably quite as difficult as describing the color red to a blind person. For those reasons, I'm not quite sure how to evaluate the book. Every once in a while during meditation or while thinking about the book, I think I catch brief glimpses of the kind of enlightenment he describes ... but it always collapses back into normal experience after a couple of seconds. Fortunately, Harris says that he suffers from this collapse as well, which is why meditation is something that ought to be continually practiced. In other words, enlightenment — waking up, recognizing the illusion of the self — doesn't happen all in one moment (or even if it does, then we still typically revert back to our unenlightened selves pretty quickly); it's a process, a continual reacquaintance with facts that counter intuition, in the hopes that intuition will eventually change.

If nothing else, Harris reminds us that the benefits of meditation are numerous, significant, and scientifically verified, which is reason enough to give it a try. In the past, I've dabbled in meditation, but I suppose that I need to make it a habit in order to acquire the benefits. Anyway, thanks for reading along! Let me know if you have any thoughts about all of this!

雨山

(雨山) Night in the Woods

2018-02-15

NOTE: There may be spoilers.

HO.

LEE.

CRAP.

You guys, I just finished Night in the Woods. Holy crap, you guys. Holy crap. This game. SO GOOD! I have so many things to say. I don't even know where to start. But here I go anyway.

Technique

As with my Firewatch review, I need to start with the less-than-pleasant aspects of the game. They'll be quick, I promise. I really want to get to the good stuff!

Two things stood out as technical faults in the game. I played the game on the XBOX One, by the way.

First, there were an ASS-TON of loading screens. Walk five feet in any direction — BOOM. Loading screen. Transition screens might've been acceptable at such frequencies, but loading screens (which typically lasted 3 to 5 seconds) were extremely annoying. A few seconds may not sound like a lot, but when you multiply it by an ass-ton, you get 3 to 5 ass-tons of seconds wasted in loading time. Personally, I've never made a commercial-scale game, so I'm not fully aware of all of the technical difficulties of asset loading, but other games have definitely figured out this problem and have designed fluid transitions between large level set pieces and/or between scenes.

Second, there were some audio glitchings. It was hard to tell if these occurred because of some aesthetic choice to slow the music down, or because the engine's performance was suffering under some heavy load. I'm pretty sure it was the former, since I never noticed any performance hits on Mae's responsiveness. There were a couple of places at the edge of town where the music (played by a MIDI engine rather than as audio files?) was slowed down and faded out. At those times, the audio started glitching, clipping, and stuttering.

Aside from those two things, the game ran really smoothly, and I never encountered any other bugs. Kudos to the developers!

Gameplay

NITW is a game about choice and exploration. I've only played it once through, so I don't know how many variations in story there are, but my choices in dialogue and in how and where and when I explored the town clearly affected the shape of the plot. Like many games, NITW had "sidequests," but that term seems inadequate to describe the actual experiences of those parts of the game. In other games, sidequests are typically disconnected from the main plot line. This allows them to be optional for the player, who may not discover them, but it also makes them feel cheap, since they have no effect on the central story. But NITW's sidequests felt more like plot lines waiting to be discovered. They weren't easily or quickly wrapped up, and they instead ran alongside the main plot line for many days, frequently interacting with it by seamlessly weaving in new dialogue options and providing new places to explore.

Speaking of exploration, I, through Mae, explored the town in typical platformer fashion. In the first day or so of the game, it seemed like I'd only be spending my time walking back and forth through the town. But after a day or so, Mae was given the freedom to jump up on power lines and roofs, which quite literally opened up a whole new dimension of adventure.

My goal, as Mae, was to uncover the mysterious goings-on in Possum Springs, to spend time with my friends, and to figure out how to grow up. I did this by moving around town, talking to people, exploring locked or abandoned buildings, roaming out into the fields and woods, and getting involved in town affairs. As I talked to people, I was able to shape the story by choosing among dialogue options. Time also flowed forward in a normal way, so my choices about how to spend my time also shaped the story. For example, the annual Harfest (a Halloween festival) took place on a very definite date, and I arrived in Possum Springs about a week before that. The clock didn't realistically tick by during the day, but the date definitely did change every day. This meant that some events (like meeting certain people or talking to them about particular topics) were only available on certain days.

This style of choice-making seemed really effective to me. It forced me to think about how to spend time with my friends, for example. One night, both Gregg and Beatrice wanted to hang out, and I had to choose which one to hang out with. I ended up choosing Beatrice, and I wondered ever after what would've happened if I'd gone with Gregg. I'll say a bit more about this in the conclusion.

Aesthetics

As far as aesthetics go, NITW is gorgeous. Possum Springs was such a beautiful little vignette of fall in a small town, full of vibrant colors and movement and life (which was ironic, given the story). The leaves rustled on the trees. Citizens walked by, or puttered by in cars or motorized wheelchairs. Little animals — birds, squirrels, cats — scurried or flew by on their various little errands. Dead leaves scattered on the pavement as I passed. And the characters were so cute! Even the dialogue bubbles and font fit perfectly with the overall style, which I'd call "children's story book."

The music was good, though nothing to write home about. But the overall sound design was fantastic. The sound effects perfectly matched the vibrancy of the town and its colors and movement. They were flawlessly layered, and enlivened with beautiful effects. For example, the underground tram station echoed with the clatterings and hissings of a cook making pretzels and pierogis; Mae's dreams were filled with deep rumbles and startling "unlocking" (?) sounds as she passed underneath darkened lampposts; the hustle and bustle of the street faded away as she climbed to the highest roofs in the town.

Finally, the style of the dialogue was absolutely pitch-perfect and fantastic. It was laugh-out-loud funny, bitterly sad, sharp as a knife, utterly poetic, heart-breakingly beautiful, and fantastically whimsical. It contained some of the most insightful stuff I've read in recent memory!

Story

Although I said at the outset that there might be spoilers, I actually don't want to ruin the story for you, if possible. Broadly, though, here's what happened. A girl named Mae Borowski went off to college but dropped out during her sophomore year and came home to Possum Springs. She couldn't seem to get her life together or grow up; everything about adulthood repulsed her. She preferred to break stuff, or commit petty crimes, or go to parties, or play computer games, or hang out with her high school friends. She wasn't without her merits, of course — she would talk to anyone about anything, and she was a fiercely loyal friend — but most of the people in her town saw her for what she lacked. They mostly remembered her for the trouble she caused in her high school years. So, Mae moved back home in hopes of escaping certain problems at college (the details of which are explored as the story unfolds), but she instead found a whole new set of problems in Possum Springs. The town had been slowly declining for decades, though Mae had been oblivious to that fact for most of her life. But the town's decline had started to cast deep, dark shadows over all of the inhabitants. Early in the game, for example, Mae and her friends found a severed arm in the street on an otherwise beautiful fall day, a gruesome foreshadowing of the darkness that would eventually consume Mae's entire life. To be clear, the game was virtually never gory, but it did discuss very the adult themes of violence, mental illness, the depths to which people would sink in order to preserve their livelihoods and their ways of life, and the hatred that flyover-country Americans in a small, midwest town felt for their government, who not only abandoned them to their decaying local economy but who actively killed them when push came to shove. And binding up these larger plot pieces were the threads of forgiveness, growth, and redemption between Mae and her friends and family. The characters were all astoundingly three-dimensional and mature (in the sense of having been well-developed as characters, not necessarily as having grown up into fully functional adults).

As the story progressed, it became increasingly unclear whether Mae was losing her mind or whether something really sinister was lurking on the borders of the town, or even in the heart of the town itself. Things like the severed arm, vandalism on famous town landmarks, and reports of missing people combined with Mae's general depressive, dysfunctional state and her parents' financial troubles all began to break her down mentally and emotionally. Mae began to have bizarre dreams, some of which seemed to bleed over into her waking life (if, in fact, she was awake and cogent and not actually hallucinating). She also began to see a creepy figures stalking in the shadows in certain lonely parts of town.

In short, and without giving any more away, it was a story of a girl struggling to find her place in her town and in its history and in her family, and her town's place in the world, and the world's place in the universe. The story was not afraid to discuss themes as small as tacos and as grandiose as faith, doubt, and the meaning of life, the universe, and everything. And what's even more amazing is that none of it felt shoehorned in or kludged together; instead, every little piece had its place in the great mosaic of the story.

Conclusion

Sometimes, I feel a kind of skepticism about games. Like, I wonder whether they're as effective as books at conveying messages or encouraging empathy or pulling readers into valuable experiences. But what I've realized in playing this game is that, yes, they can do all of those things just as well as books. And here's why. We learn lessons in life, but life is slow (relative to games and books), and often the lessons we learn and the significant experiences we have are diluted by long stretches of mundanity as we go to work or pay bills or go to the gym or watch TV or do any number of other boring, routine things. But games, like books, purposefully remove much of that mundanity and instead give us a concentrated dose of life's interesting moments in a short amount of time. And the frugality, the concision, of the story in a game also allows the player to see the effects of their choices more clearly and immediately. And NITW sure does make you think hard about the choices you make.

Not all games are so well made, of course. There's plenty of trash out there in the medium; in fact, perhaps the vast majority is trash. But every once in a while, there are diamonds in the rough like NITW that definitely create experiences worth having. While playing this game, I teared up at times, and laughed out loud at times. It's definitely going on my favorite games list. Man. What a game. Go play it.

electro·pizza

Geek Spinner Build

2018-02-13

My nephews are fascinated with fidgit spinners. They each own several and always have one on hand, proudly showing off the various trick

Szymon Kaliski

DIY monome

2018-01-28

I’ve built two DIY monome clones as last project of my 2017 one-project-a-month challenge.

Szymon Kaliski

DIY monome

2018-01-28

Building my own monome has been the last of my monthly projects in 2017.

雨山

(雨山) Firewatch

2018-01-23

NOTE: There might be spoilers!

So, I recently finished Firewatch by Campo Santo. It was really good! I have a few quibbles with some of the gameplay and technical elements, but otherwise, it was an excellent experience.

Technique

Let's start with some of the reasons I was less than thrilled with the technical aspects of the game. First, I played the game on the XBOX One, and it was too large for my screen. Little icons would pop up from time to time right on the edge of the screen, and I could only see one half of them. There were no options to change the screen size in the game's settings. I tried to change the XBOX One's resolution, and I tried fiddling with the TV's resolution, but nothing worked. It wasn't a game-breaking problem for me, but it was nevertheless a small, persistent annoyance. Second, there weren't any sensitivity options in the controls settings. The horizontal look sensitivity was fine; it was the vertical sensitivity that drove me bonkers: it was way too slow. Looking up and down seemed to take an eternity. Again, it wasn't a game-breaking problem, and I got more-or-less used to it by the time the game was over, but it was still the sort of thing that occasionally interrupted my experience and reminded me that I was playing a game. Third, there were also a few weird moments where meshes would completely disappear from the world. Thankfully, these were very rare. Fourth, there were weird "freezes" throughout the game, especially early on. For the most part, the game ran fluidly, but there were little moments — usually as I ran — that the game froze for a fraction of a second. Since these occurred mostly when I was running, I suspect that they may represent moments in which parts of the (very large) map were being loaded into the game. For whatever reason, they became increasingly infrequent as the game progressed. Finally, the controls for running were pretty janky. I spent a ton of time moving around the map — in fact, that's probably 90% of what I did — and being able to move quickly and efficiently was paramount. On the XBOX One, I could either run by holding down a button (I forget which one) or pressing the X button once to toggle running. I forgot the button for the former option because I spent so much time using the latter one. But here's my problem with it: any time I slowed or stopped, the toggle became untoggled. So, if I stopped for a half-second to examine some part of the path and then started moving again, I'd have to re-toggle the running mode. I never got used to that problem, which meant that I felt as though I was stuck in molasses every time I started moving again. As I don't doubt that my fingers would've gotten tired from holding down a run button for hours, I'm sure that the run toggle button was a good idea ... but I wish that it had been a permanent toggle.

But let me spend a moment saying a few nice things about the technical elements. Overall, despite the complaints I just gave, the game ran fairly smoothly. Events got triggered at the right times, animations were fluid and compelling, and there were never any obvious failures or crashes. The technical elements were where I had the most complaints, so let's continue on to more fun stuff!

Gameplay

Firewatch is a "walking simulator." That phrase, though its coiners presumably intended it as an insult, is actually a fairly accurate description of this game. Unlike Gone Home, its sister game (about which I'll say more later), this game does really involve a ton of walking. Whereas the house in Gone Home is packed densely with clues and meaning, the forest of Firewatch was mostly empty space. Points of interest were way too few and far apart.

From the title, I assumed that my primary goal would be to spot fires or something. That hardly happened in the game, though. For the most part, I walked or ran from place to place, solving little puzzles and having conversations as I unravelled the strange plot. Sometimes, the path was blocked, and I'd have to cut down a tree or chop down hedges or break open a door or shove rocks aside or climb down a sheer rock face with a rope to proceed. All of these methods required tools that I didn't have at the beginning of the game, so I had to acquire them, of course.

While I loved exploring the house and memorabilia of the family in Gone Home, I didn't love exploring the forest in Firewatch very much because exploration wasn't really possible ... at least not in a very flexible, expansive way. From up in my tower, the world looked open and inviting; but when I finally descended and began moving around, my confinement quickly became apparent. I couldn't wander more than a few feet from the path in any direction. This was hugely frustrating for me. After all, the island of The Witness (for example) was almost completely open, with the exceptions of intentionally locked locations. In Firewatch, however, I felt no freedom at all. I might've been able to ignore the main "quest" for a time and navigate to other parts of the map, but all the while, I would've been sharply corralled by invisible walls. Maybe this was a design decision based on the fact that players navigate through the forest like a Boy Scout: by orienteering with a compass and map. Perhaps playtesters were unable to cope with both the difficulty of orienteering and an unfettered access to all parts of the forest. In any case, I think it was a poor decision because it constantly reminds the player that they're in a game.

With all that said, though, I did enjoy learning the map. At first, I was overwhelmed by the sheer size of the zone that I had been tasked to watch, but towards the end of the game, I began to recognize locations. Don't get me wrong, though: that map was huge, and at times, there was a kind of enjoyment in getting lost. Maybe it's because getting well and truly lost is a thing that happens occasionally in real life but rarely in games, and thus the fact that I could get lost added an element of reality to the game. I appreciated that there was no neon sign or arrow saying, "Go here!" In fact, there was an option in the settings to show my location on the map, but I had so much more fun when I disabled it and forced myself to use the compass and map. I dislike games that hold my hand, and I was thankful that the developers provided a way for players to take off the training wheels if they wished.

There's one element of the game that I never quite understood: the cache boxes. Cache boxes were locked containers scattered throughout the forest. I assumed that they'd contain really interesting items, but they don't. Yeah, there was a rope in one of them, and yeah, there were little notes and books in them, but they just felt so gamey. Oh, and I was told the combination to all of them at the very beginning of the game. It might've been more interesting to give them all different combinations. I don't know. What was the point of hiding useless materials in easily unlockable boxes all around the forest? I guess I just don't understand the point. All of the tools should realistically have been available in the lookout tower. And I could never figure out how the notes and books related to the main plot line, though I'm willing to admit the possibility that I simply failed to connect those dots.

Now, let me turn to a different aspect of the gameplay: the conversations. I carried on conversations almost continuously over a walkie-talkie with my boss, Delilah, who worked in a tower on a different mountain. In fact, I could see her tower from my zone, but it wasn't possible to get there for most of the game. Thus, my only interaction with Delilah took place over the radio. I liked that I had plenty of options for what to say during the conversations, and I liked that some of the options "timed out" (i.e., that it was possible to wait too long to say something). This made the conversation much more interesting and pressing than it might otherwise have been.

Finally, in addition to a walkie-talkie, a map, and a compass, I had a camera. To be honest, I didn't use the camera until the very end of the game. It was never clear what I was "supposed" to take pictures of, though I'm sure that the developers would roll their eyes at such a quandary and would remind me that not all games are about "winning" and that this was a game about choices. I didn't understand that business about "choices" at first, but I think I understand it a little bit now. I'll have more to say about that later.

Aesthetics

The look and feel of the game is fairly nice. There was a soft, low-poly, cartoony look (very similar to The Witness) to many of the models, like Henry's hands and legs, and most of the rocks. The foliage, however, looked horribly out of place, as though made by a completely different set of artists. Look, I get it: foliage is hard. The models were necessarily high-poly and highly-textured. But somehow, the Thekla artists got the foliage of The Witness right. I don't know why Campo Santo didn't quite nail it; maybe it has to do with the fact that Campo Santo used Unity and Thekla built its own engine. But anyway, that was my only complaint with the visuals; the rest were very nice. The fonts, the color schemes, and the rest of the environment conspired to create a strong, consistent style.

The music is also very good — with one tiny exception. The music in the opening scene (the text-based part in which I learned about Henry's past) was a cheesy piano loop. It felt like a simple MIDI loop with no feeling whatsoever. A piano piece could've been very moving in those scenes, but it came across as crappy and low-budget. But that was the only stinker; the rest of the music was actually quite good, especially in the tense scenes near the end.

The voice acting was fantastic! Even though some quirks occasionally caused me to stumble out of my immersion, the voices were the things that always drew me back in again. It was impossible not to fall in love with the characters.

Story

The story was the very best part of the game. Admittedly, not all of it made sense to me, especially the notes between Dave and Ron found in the cache boxes and the red herring of the two party girls from the beginning. But the core storyline — the sad situation with Julia, my need to escape it, my relationship with Delilah, the mysteries of Wapiti Station and of the Goodwin family — was powerful and moving. What's amazing is that I felt that I was really getting to know Delilah in a deep way even though I'd never met her in person. I'm not sure I've ever told anyone this, but I actually become quite attracted to (and occasionally turned on by) people just by the sounds of their voices. It happens to me all the time with podcasts. Anyway, I know I would've fallen in love with Delilah if I had been in Henry's shoes ... which I sorta was. And therein lies the mystery and majesty of all good storytelling: it's not my life being described, but I feel it as if it were my own. In this case, Henry's heartaches were my heartaches, his longings were my longings, and so on.

I mentioned before that I wasn't sure when I was "supposed" to use the camera. A similar but much more profound moment happened towards the end of the game. As the forest was burning down around me, Delilah told me to pack up my stuff and to hoof it over to her tower for the helicopter ride out. I took a few minutes to gather everything up that I might need; I doubted I'd be coming back. I was thinking about Delilah, wondering if she'd be waiting for me on the other end, wondering if our relationship was going to go anywhere, wondering if I should go back to Julia. Many items were available to be packed, but two special items stuck out to me: a framed photograph of me and Julia, and my wedding ring. The gamer in me wondered, momentarily, whether I could, by leaving those items behind, make my desired ending (of getting together with Delilah) occur. It may be that the developers were looking at such a choice (as well as dialogue choices) in order to shape the ending, but ... well, it just felt inappropriate to weigh such considerations in that way. Delilah was so real that it felt insulting to her to force an ending in that way, as if I could make her love me just by pressing the right buttons. Maybe that was how the game worked, but I couldn't bring myself to play it that way. In fact, it might even be that real life relationships work that way too ... but even if they do, I can't help but feel a Kantian repulsion to such a view: that even if that's the right description of how the world operates (that it can be "gamed" in such a way), I should still treat people as ends in themselves rather than solely as means to my own ends. Well, in any case, I really struggled with what to do about the ring and the picture. "What would I do if this were my real life?" I asked myself. I knew the answer fairly immediately: I'd be plagued with guilt about trying to pursue things with Delilah and about severing ties with Julia, but I'd also be haunted by regret and longing if I didn't take this fresh, new road after months or years of misery. In the end, I took the ring and the photo, hoping to have my cake and eat it too, hoping that Delilah would still be interested in me and yet also wise enough to see my choices as having been made on pain of guilt.

What the hell? This isn't my life! It's a game! It's a fiction, right? Or is it some kind of witchcraft? Who's making these choices, anyway? Some of them were made by the developers before I began, and some were mine. Geez. What a hell of a story. What an experience. I got sucked in hard.

I can't leave this section without talking about the game's universe for a moment. I mentioned up at the top that this game seems to be a sister game of Gone Home, even though it's partially made by a different company. (I think that both companies share the same composer, if I'm not mistaken. Perhaps they share other personnel.) The connection between the games is not immediately apparent, but two clues provide the possible link. First, the mother in Gone Home is a park ranger (or something similar), and she's attracted to another park ranger who was transferred to her division. Of course, Janice is the mother's name, and Rick is the name of the ranger to whom she's attracted. And Janice's family (the Greenbriars) live in Oregon, not Wyoming. And Janice describes encounters with Rick in her letters, but Delilah and Henry never meet in Firewatch. But what seems to clinch the relationship between the two games is the second clue: a book called The Accidental Savior by Terrence Greenbriar, Janice's husband. I found this book in one of the cache boxes. We learn all about Terrence's writing career in Gone Home, and the "Savior" series is central to that career. Whether these companies (Fullbright and Campo Santo) intend to make use of these connected worlds, I don't know; but it's cool nonetheless.

Conclusion

I really enjoyed this game. In spite of a few flaws, it's an incredible game. The choices, the voice acting, and the story make it what it is: a mysterious, mystical, romantic, funny, sad experience. I'm not sure yet if it's going to make it on my favorite-games-of-all-time list — I may need to play through it another time or two to be sure — but it's definitely a profound, powerful experience that I'll recommend to others.

As always, thanks for tuning in! Later!

雨山

(雨山) The Cure

2018-01-21

I wanted to jot down a few thoughts that ran through my mind during a conversation with friends last night. And you'll be happy to know that this'll be a positive post, which is rare for me!

A friend was talking about a friend of hers who obsesses about Facebook: she takes careful note of who "likes" which posts, and is upset when (for example) someone who typically "likes" her posts fails to react to some new post. I chuckled a little only because the obsession was so extreme ... but inside, I felt pretty sad because it represented a frighteningly accurate description of how I felt when I used to spend time on Facebook. As luck would have it — and I say luck because it was definitely not initiated by any particular foresight on my part — I shut down my Facebook account a couple of months ago. I shut it down because I was sick of how using Facebook made me feel: like I was inferior to everyone else, like I was despised by most of the people I knew (though it encouraged me to seek their approval unceasingly), like I could never do enough or be witty enough or gain enough followers. Occasionally, I got into fights about political / social / religious topics, and I would check and check and check my phone late into the night, refreshing to see more hateful comments roll in, sleep fitfully, and then, upon waking, immediately resume the misery before even leaving the bed. Ugh. I shudder to think of it even now. But, at the time, it seemed normal to me; it was simply how one used Facebook, and it hardly occurred to me that one could feel differently about such matters. The people whose experiences on the platform were highly positive were as foreign to me as their successes; I'm not a young, hot, fitness guru, or a crafty mom blogger, or a theologian, or a conspiracy theorist, or any of the other archetypes that seem to succeed there.

Anyway, upon hearing the story of the friend's friend, I realized that I hadn't felt those awful feelings in months. It's wonderful! I feel so light and free! I still use Twitter, but for some reason, it's not a negative experience like Facebook was. Twitter can be a hugely negative place for some people, but I suppose I must just fly completely under the radar there. On that platform, I interact with people that inspire me, which is a profoundly different experience than interacting with people that I know through sheer proximity. I suppose it's a similar difference to choosing to interact with friends versus feeling obliged to interact with family members or neighbors.

I'm glad to see that I've made at least one good choice in my life in the last few months, and that it's already started to bear good fruit!

雨山

(雨山) Notes

2018-01-18

Hey, everyone! I made a little note-taking tool called Notes.

I made it because I could only find about three good options for note-taking: a text editor, Google Drive, or SimpleNote. (There are almost certainly other options out there, but those were the three that I used most frequently.) A text editor, of course, doesn't give me the easy option of synching my notes across devices. Google Drive solves that problem by being in "the cloud," but it feels, well, too large for simple note-taking; I didn't like having to create a new document for each note, and I didn't like having a single document for all of my notes. SimpleNote is okay, but their Linux build is buggy, and I loathe the Ubuntu font. So, I built my own tool! (Full disclosure: I also listened to the most recent episode of the Checkpoints podcast in which the amazing Devine Lu Linvega described his life and process. He talked about how he always builds his own tools when he can't find one that he likes, which gave additional inspiration to this project.)

I might give it a more original name someday, but for now, Notes it is! Notes is built on Vue, Firebase, and Quill.

雨山

(雨山) 2017: The Year in Review

2018-01-01

Happy 2018, everyone!

For the past two years, I've done a year-in-review post, and this year is no different. Last year, I was surprised at how much had changed in a year. This year, the opposite is true: I'm surprised at how little has changed.

Last year, before Trump's presidency had begun, I had described how awful I thought that he was and how awful I thought that things would be under his presidency. Over the course of this year, I've been shocked and horrified at his behavior and at the behavior of his cronies and of Republicans in general, but not quite surprised; they acted pretty much exactly as I imagined that they would. It has generated in me a deep cynicism about humanity. There are, of course, really good people that have risen up to combat them, but my cynicism revolves around the worry that humanity will always be fundamentally broken in this way, that the powerful will always exploit the weak, that power in general will always corrupt, that even the best political and social systems will not prevent the rise of despots, that inequality will never be undone. It makes me think about the manga / anime From the New World, which examines some of these and related problems, like the lengths to which a society would go to prevent violence and upheaval, and the depths to which they would sink in order to tolerate — and even encourage — oppression. I need to watch that show again. Good stuff.

Anyway, these problems have spurred me to get involved in politics by volunteering for the Hood County Democrats and even running for my first office: precinct chair. But, on the other hand, I've become deeply depressed. A conversation from Lord of the Rings comes to mind.

"I wish it need not have happened in my time," said Frodo.

"So do I," said Gandalf, "and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."

All right. Enough wallowing. Let's take a look at some of the other (and more positive) things that happened this past year.

Teaching has been awesome this year. I've had so many good conversations with students. And our conversations have frequently included difficult, controversial topics, like abortion or gay rights. (These are controversial, of course, because I live in Texas.) I can tell that the students are genuinely engaged during these conversations, that they're really thinking hard and trying to find the truth. On my last test of the semester, I asked this question as a bonus: "What's the most interesting non-math thing you've learned in this class this semester?" Many of the responses were silly, but I did find a couple of really great responses. One girl wrote, "[I learned] that you can actually have thoughtful conversations with people who don't share the same opinions as you and not be immediately bashed for your beliefs." I could hardly have asked for a better answer. This is exactly what I've tried to do: neither to let a view receive punishment for mere expression nor to let a view go unexamined.

Sadly, I'm not sure whether teaching there will be sustainable in the long run. I teach at a homeschool co-op that only meets three days a week. So, I only put in around 15 hours a week there, which means that I have to find other ways to supplement that income. I still teach piano lessons, but the real problem is that I have so much schoolwork to do outside of school that it's hard for me to devote time to anything else. I put in a lot of hours every week grading and lesson planning, but I'm not getting paid for those hours. If my wife suddenly got a pay raise, then I could probably manage to stay where I am. But my health insurance premiums — which are already stupidly high — will be going up again this year, so it's looking like I'll be hard-pressed to continue teaching. I've started looking for other jobs, but haven't had much luck yet.

Let's see ... what else has happened? I've still been working on my book of poems for kids. It's come along pretty well. I've written 25 or 30 poems. Soon, I think, I'm going to start trying to figure out what to do about publishing it (i.e., whether to self-publish or to seek out an agent).

I've also been doing a lot of programming. I made a wallpaper manager called Kabegami, a blogging tool for static websites called VF-Blog, a little game called Red for Ludum Dare 39 (though I never actually got to submit it), and a math practice website called Problematic. I don't think I ever blogged about that last one, which surprises me because it was probably the project on which I spent the greatest amount of time. Long story short: I was tired of grading my students' work, so I built a website over the summer that would generate random problems for my students to work and then would automatically grade them. Even though I was able to build 95% of the necessary functionality of the website over the summer, I wasn't able to finish writing all of the problem sets before the year began. Worried that I wouldn't be able to keep ahead of the students if I tried to write problem sets during the year, I finally put it on hold and have tried to embrace the use of the sucky, old-fashioned textbooks. Anyway, I've also done a ton of doodling in DoodleDoo.

Healthwise, the main thing that happened was that I broke two teeth. I wrote about the first one already. The second one happened more recently. I'm still pissed about it. In fact, I'm in denial and still haven't gone to the dentist, even though it happened a couple months ago. Also, as per usual, I ran a lot over the summer but promptly lost it all when school started. I'm adding that to the list of reasons why it might be a good idea for me to become self-employed, or at least to stop teaching.

Okay. I think that's about it. Thanks for reading! I hope you have a great year in 2018!

Szymon Kaliski

FLSUN i3 3D printer

2017-12-04

I’ve been debating getting a 3D printer for quite some time, I thought that I might not use it that much to justify the expense.

Szymon Kaliski

Maria Teresa e Trieste — interactive installation

2017-12-03

flow/control has collaborated with Interfase on designing and building a bespoke interactive installation for Maria Teresa e Trieste exhibition at Magazzino delle Idee.

雨山

(雨山) Thanksgiving 2017

2017-11-23

Hey, there! It's been a while since I've written. I'm so bad about that. In fact, it's really a symptom of a deeper problem that I've needed to confess for some time. And that problem is this: I have almost no discipline in my life. But, because I don't want this to be a downer of a post, it'll be sufficient to say that I need to form some habits. And, because this is Thanksgiving, one of the habits that I really need to develop is thankfulness.

A while back, I started writing a post about detachment (in the Buddhist sense). At the time, I felt that I had made huge strides in that aspect of my outlook on life — and maybe I had made progress as compared to my old attitudes. But I've come to realize that, in many ways, that sense of being detached was shallow, that it didn't permeate all parts of my life. It still doesn't, of course, but recognizing and confessing the problem is the first step towards the solution, right? And I bring this up today because it's directly related to thankfulness. You see, when I first started thinking about detachment, one of the first conclusions I reached (which were later confirmed by many of the Buddhist writings I read) was that detaching yourself doesn't mean ceasing to care about the people, places, and things your life; in fact, if done correctly, it actually results in a deeper feeling of affection for your loved ones and — here's the relevant bit for today — a genuine attitude of thankfulness. Instead of clinging to various states of people, places, or things, detachment allows us to admit to ourselves that we can never, through any action of our own, prevent the ceaseless changes that occur in our relationship to the world, and that we should instead cherish and be grateful for the times in which that relationship is positive.

I won't lie: it's been hard to be thankful for much this year. America has become such a dark place in just one year, and I'm not sure that we're done free-falling into this deep pit of racism, sexism, bigotry, authoritarianism, kleptocracy, rising inequality, and polarization. But what should have happened for me personally is that I should have let go of the way things were without sacrificing my values (instead of clinging miserably to the era of Obama) and become even more thankful for both the things that occurred in the previous eight years and the rising tide of progressive activists that have come out of the woodwork to combat this insanity. Of course, I have been somewhat thankful for those things, but in general, I've allowed hatred to fuel my life instead of compassion. It may seem from the outside like a subtle difference in attitude — after all, it may result in mostly the same actions — but from the inside, the difference is monumental. But I can't claim to have experienced it very often; sadly, I've only glimpsed it a few times.

I'm not yet sure what I think about the role of anger in all of this. After all, it seems quite right that a person should feel outrage at injustice. But there's a lot of subtlety to be worked out here. I once worked at a school where the principal refused to say that a student "was a bad person"; instead, she always said that a student "made bad choices." I understand, to an extent, the charity behind that language: it's an attempt to see the best in students and to avoid prejudice about future actions that students might take. But, on the other hand, I do think that Trump is a horrible person, and not merely that he makes horrible choices. In fact, I think that he makes awful choices because he's an awful person. And I don't get mad at him simply because he's a Republican and I'm a Democrat. I'm not into tribalism. I get mad at him because of the way that he dog whistles to racists, because he has spent 100 of the last 307 days at properties that he owns as a way of being lazy and of simultaneously enriching himself, because he makes fun of disabled people, because he calls immigrants rapists, because he is a confessed sexual harasser, because he values no ideals and no people, because he's one of the most narcissistic humans alive, because (in spite of his populist campaign) he seeks out ways to increase wealth inequality in this country, because he devalues the institution of journalism on a daily basis, because he seeks to disable the justice system, because most of the kindergarten-level sentences that come from his mouth are lies, and so on. But I struggle with whether my hatred of him accomplishes anything. I mean, it drives me to be involved in politics, but it surely also has negative impacts on my life. Is it possible to be involved and to make a positive difference in the world without hating injustice and/or without hating the perpetrators of injustice? I just don't know. But I'm going to keep pondering it.

But I've digressed enough. I'm really thankful for so many things; I just don't keep them at the forefront of my mind enough. I'm thankful for the parents who raised me to value justice, compassion, and humility. I'm thankful for a wife who understands me, who unconditionally cares for me, who constantly impresses me with her tact and understanding of others. I'm thankful for the Pod Save America people. Seriously, I don't know if I could've survived the last year without them. I'm thankful for the good friends that have become tightly woven into the fabric of my life; without them, life would be so empty.

xvw's blog

Voyager dans le temps avec un Zipper

2017-11-20

Cet article propose l'utilisation d'un Zipper pour implémenter un historique naviguable

electro·pizza

Serial Punch

2017-11-12

In my daily work I use a CLI tool called todo.txt coupled with an add-on

Szymon Kaliski

Learning Haskell part 2 — exploring Tidal and Diagrams

2017-11-10

Learning Haskell was one of my one-project-a-month projects in 2017.

xvw's blog

Une application web moderne en Elm

2017-10-25

Implémentations, pas à pas, d'une application moderne en Elm

xvw's blog

Un cas d'école à l'utilisation des GADTs

2017-10-16

Une brève introduction aux types algébriques généralisés avec OCaml

雨山

(雨山) Gone Home

2017-10-08

NOTE: There might be spoilers!

So, this past week, I played Gone Home. It's the first "walking simulator" I've ever played, and I really, really enjoyed it. Here are a few thoughts about it.

First, the phrase "walking simulator" is purposefully derogatory and sarcastic — and I don't think that it's applicable to Gone Home. After finishing the game, I read a few reviews, and the comment threads were full of angry players who felt that they'd been cheated out of a good time by something which, on the surface, posed as a game, but which in reality was a meaningless, drab nothing. I knew prior to playing the game that it had this reputation, but I'm happy to report that I did not feel robbed of my time or money, that I was moved deeply by the experience, and that it far exceeded my expectations. In fact, it is for exactly these types of experiences that I enjoy playing games at all. I love games that make me think, make me feel. A younger, less mature version of myself believed that the only fictional works worth consuming were built on fantasy and that the mundane could never surprise or enlighten or motivate or instruct. The world of Gone Home is, in a sense, mundane and common ... but the story is so masterfully told and the player is so subtly led from clue to clue and the atmosphere is so gripping that the whole thing transforms into a beautiful, powerful work of art.

Second, I made a good choice by choosing not to learn much about the game prior to playing it. I had learned a while back, I think, that it had been rated highly by, for example, IGN, but I hadn't read anything about the story or the gameplay. The sense of anticipation and curiosity I felt as I played was strong. The house was dark — most of the lights were out — rain lashed against the windows, deep thunder rolled every minute or so, the house constantly creaked and moaned, and the faint, slow drone of the soundtrack hummed far in the background. So, I wandered around the long, dark hallways, turning on lights (since I'm creeped out by dark houses, even in a game), digging through drawers and cabinets and desks, picking up and examining every examinable object, creeping myself out and wondering what the heck to make of it all. Some bits of information weren't pivotal to the plot of the story; they were just there to put flesh on bones. But they agitated my curiosity. At times, the house seemed so sad and dark and empty, and the family seemed so broken, that I genuinely worried that a horrible ending was coming, like that someone had gone crazy and murdered the whole family. I was already worried enough about the characters and their struggles; the added sense of foreboding caused me to worry even more. In the end, I was sucked deeply into the world and entranced by the story.

I'll probably think of more things to say later, but for now, I'll just leave it at this: I loved this game. It's definitely going in the list of my favorite games.

Szymon Kaliski

Learning Haskell

2017-10-02

Haskell has been on my to-learn list for a long time, I was interested in a different approach to functional programming than LISP, and was ready to give strong typing a chance.

雨山

(雨山) Questions

2017-09-30

Here are some questions for contemplation based on Buddhism's "Eight-Fold Path." I used to have these as a separate, unlinked page on my site, but I think I want them in an easier-to-find place ... so here they are.

  • Right View: In what ways do I fail to see the world as it truly is? In what ways do I deceive myself or others? In what ways do I struggle against that which I cannot change and fail to notice the things which I can change?

  • Right Intention: Are any of my actions and thoughts motivated by hatred, anger, greed, vengefulness, impatience, selfishness, dishonesty, or fear?

  • Right Action: Have I failed to take actions in a situation where inaction will hurt or fail to help others? Have I done everything to the best of my ability? Have I done all that I can do today?

  • Right Speech: Have I said anything that could be construed to have ill intent? Have I been dishonest? Have I communicated in a passive aggressive manner (which is a form of dishonesty)?

  • Right Livelihood: Does my work cause (either directly or indirectly) anyone to suffer? Is my work making a positive difference in the lives of other individuals?

  • Right Effort: Have I put effort into contemplating and understanding these things? Have I put effort into improving my interactions with others? Have I noticed my imperfections, the recognition of which are the first step towards fixing problems — or have I assumed, yet again, that all of my actions and intentions are always right?

  • Right Mindfulness: Is my mind attentive to the present moment, or is it stuck worrying about the future or regretting the past?

  • Right Concentration: Am I properly able to focus on the things that matter, even to the exclusion of other demands on my attention?

electro·pizza

Panaplex Display Testing

2017-09-28

In the Spring of 2017 I attended the Dayton Hamvention. While browsin

雨山

(雨山) Austin, TX (Part 2)

2017-09-23

Today was so much fun!

Larry Wilmore's show, Black on the Air, hosted special guest Cecile Richards. She was cool, and Larry was hilarious (of course). Great, great show.

Then, as we were walking around the UT campus, I had a severely lame moment. Deray Mckesson was walking towards us on the sidewalk! I froke out. I really wanted to say something him, especially since he wasn't surrounded by a mob of people, but I couldn't think of anything in time. As he walked past, I lamely said, "I love your podcast!" He turned, smiled, said, "Thanks," and kept walking. I really should've tried to shake his hand or something. He's so cool. A little while later, we were able to see him, Cecile Richards, and Ezra Levin in a panel on "The Resistance."

Finally, we got to see Ana Marie Cox and her guest Michael Steele for a live recording of the With Friends Like These podcast. I didn't much care for Michael Steele, but it was still a good show.

Anyway, we had so much fun. I'm so glad that we had the opportunity to go!

雨山

(雨山) Austin, TX (Part 1)

2017-09-22

Currently listening to: "Undertaker" by The Moondoggies

NOTE: I'm trying to write more frequently for a few reasons: (1) I want to be a more skillful writer, (2) I want to do more gratitude journaling, and (3) I want to test and improve vf-blog.

So, I'm in Austin for the Texas Tribune Festival. I'm excited to see live recordings of Black on the Air and With Friends Like These. We had hoped to hear Al Franken's keynote address tonight, but my wife had to work late enough in the day that we didn't make it into downtown Austin until probably half-way through Franken's address. We tangled with traffic for a while, failed to find any parking, and finally decided just to head on over to the hotel.

You don't care about all of that stuff. Honestly, I'm not even really sure why I'm writing it down other than that I've got this vague notion that if I write more, then I'll be a better writer, and that maybe there'll be some pearl of wisdom that'll accidentally slip out and then return to help me later when I read back over this post.

But since I don't have much to tell, I'll just add one or two more quick things. I was really low today, emotionally speaking. I'm wondering if I'm suffering from some kind of depression. From the outside, that makes no sense: life is going well right now. I enjoy my work, my relationships are strong, I have a sufficient amount of money (though I wouldn't mind more), and I'm not sick. But I just keep having really sweeping mood swings. One moment, I'm ecstatic; the next, I'm in the dumps; the one after that, I feel sappy and sentimental; the one after that, I feel like crying about nothing at all. Yeah, the more I write about it, the more it sounds like depression. Sigh. Well, maybe I'll have more to report tomorrow after we go to some festival events. Laters.

electro·pizza

Beaker Browser and The DAT Protocol

2017-09-17

The Dat Protocol

Szymon Kaliski

Building DAS-UI — keyboard-based visual programming language

2017-09-08

DAS-UI is another node-based experiment (after SDF-UI) that I’ve built during my one-project-a-month meta-project in 2017.

Szymon Kaliski

DAS-UI — keyboard-driven visual programming language

2017-09-08

DAS-UI is an experimental domain-agnostic keyboard-based visual programming language with JavaScript backend.

Szymon Kaliski

Teaching creative coding in Taipei

2017-08-20

I spent July 2017 teaching three weeks of different creative technology workshops during summer program at Skyrock Projects in Taipei.

雨山

(雨山) Three.js Doodles

2017-08-14

Doodling in three.js in DoodleDoo!

雨山

(雨山) Red

2017-08-07

UPDATE: You can play the WEBGL version of the game here.

Hey! So, I made a game called Red. It's a retelling of the "Little Red Riding Hood" story. I guess you'll just have to play it if you want to find out how it differs from the original. :) I originally planned to submit it for Ludum Dare 39, but we were travelling and spending time with family and whatever, and I just ran out of time. But, anyway, here it is! You can download it from the itch.io page. Enjoy!

By the way, I made the game using Unity, Audacity, Reaper, Piskel, and GIMP. The source is over on GitHub.

Szymon Kaliski

Neutron — self-contained node and npm sketchbook

2017-07-07

Neutron is self-contained node and npm application made for quick prototyping and teaching.

Szymon Kaliski

Building Neutron — self-contained node and npm sketchbook

2017-07-07

Neutron is a self-contained node and npm application made for quick prototyping and teaching.

雨山

(雨山) 4th of July

2017-07-04

NOTE: I posted the following thoughts in Twitter form earlier today, but I wanted to post them in long form here. Enjoy.

Happy 4th! I still believe in the American ideals, even if I don't believe in half of the American people right now. Remember, while your white nationalist neighbors are celebrating, that patriotism does not equal racism or bigotry of any kind. All humans are equal. Such bigots may think they're being patriotic, but they actually don't believe enough in the Constitution's values of equality. The same goes for Christian zealots who use America's heritage as a way to oppress religious minorities and attempt to marry church and state. May we learn to live up to our own ideals, and may we make America kind and noble and just and fair again. Let's "make America great again," but not in ways that increase inequality and injustice or that foment division or incite violence. Here are some relevant quotes from Dr. Martin Luther King, Jr.

  • "Darkness cannot drive out darkness; only light can do that. Hate cannot drive out hate; only love can do that."
  • "Injustice anywhere is a threat to justice everywhere."
  • "I look to a day when people will not be judged by the color of their skin, but by the content of their character."
  • "Any religion that professes to be concerned about the souls of men and is not concerned about the slums that damn them, the economic conditions that strangle them, and the social conditions that cripple them is a spiritually moribund religion awaiting burial."

Sorry for being so preachy; it's just that there seem to be so many people for whom common decency and kindness are foreign concepts. I'm really thankful for those that are right now on the front lines of the struggle for "truth, justice, and the American way." I appreciate people from all parties who are willing to do the hard, uncomfortable work of reaching across the aisle and working together. I appreciate journalists and media organizations who work hard to shine the light of truth on corruption, incompetence, and dishonesty. I appreciate those who work hard to serve the public interests instead of their own interests, even if I sometimes disagree with particular policies. Okay, now I have to leave to do family things, so I suppose I'll wrap up this thread now. Thanks for tuning in. Happy 4th!

NOTE: My use of the #maga tag in the Twitter version of this post should not be interpreted as support for Trump or anything he stands for. In fact, it means quite the opposite.

ellugar Logs

First week @ Stugan [en]

2017-06-29

undefined

ellugar Logs

First week @ Stugan [es]

2017-06-29

undefined

雨山

(雨山) Broken Tooth

2017-06-27

So, a few weeks ago, I broke a tooth while eating some popcorn. So, I went to the dentist, and the dentist sent me to an endodontist. The endodontist recommended a root canal, and we followed through on that recommendation today. I hadn't been to a dentist in probably twelve years before this, by the way, and I'd definitely never had a root canal before. To be honest, I was pretty worried. My dental experiences as a child weren't horrifying or anything, but they were usually somewhat painful. In retrospect, perhaps everything is more painful as a child because you haven't yet experienced most of the various flavors of pain that life has to offer ... and even as of today, my life has been fairly well sheltered from pain. But anyway, today's appointment was one of the best dental experiences I've ever had. The staff was kind and professional, and they explained calmly and clearly everything that they were doing to me. Doctors should never allow that last bit to fall by the wayside: an important aspect of bedside manner from the perspective of a nervous patient like myself is continuous communication about what's going on. In any kind of doctor's office, I always feel like a frightened animal in a cage, and it's deeply reassuring when doctors explain what all the sounds and smells and lights and tubes and shots mean. Anyway, good on the crew at Weatherford Endodontics for the way they treated me today. :)

But I want to take a moment to jot down another quick thought that's been tumbling around for the last few days because of this event. As I said, I hadn't been to a dentist in ten or twelve years before this. That negligence was caused by two primary factors. First, I'd always considered myself to be a very careful, conscientious caretaker of my teeth; I'd always believed that I brushed regularly and well. And second, dental care is expensive! But when the tooth broke a few days ago and I went to the dentist, he told me that the tooth looked pretty decayed on the inside. That was really surprising and disheartening for me. I'd thought that I had been taking really good care of my teeth! But I was clearly mistaken, and no amount of denial could conceal the fact that my mouth was missing part of a tooth. I had always assumed, I suppose, that I'd have some kind of warning that my teeth were becoming unhealthy ... like, that I'd feel pain or something. But I didn't really have any kind of warning in this case. And that made me much more concerned about my overall health. For example, I'd always heard of blood pressure as a "silent killer," since most people aren't able to detect high blood pressure without actually putting the cuff around their arm. There are other diseases like that, too, where people have no idea that they have some horrible thing happening to their body until some awful complication appears. Retardedly and biasedly, I always assumed that I would somehow be an exception to those rules, that I would notice about myself what other people failed to notice about themselves. Again, I was wrong in that assumption. So, I'm now trying to be more proactive about both my dental health in particular and my overall health in general. It's only been a few days since this whole process started, of course, and there's plenty of time for me to become complacent, but I'm hoping that by writing this all down, I'll remind myself and others to keep up the good work.

Okay, here's one more thought. Somehow, this whole thing seems like a parable that a preacher might preach in a sermon. It makes a compelling analogy, doesn't it? There'd be something in there about how sin creeps into our lives and starts decaying our moral fabric from the inside ... and most of the time, we may not even be aware of it until something in our lives break and we end up cheating on our spouses, or lying on our tax returns, or abusing our children. In fact, as a way of accusing people of this very failure, Jesus called the Pharisees "white-washed tombs" and dishes that were clean on the outside but filthy on the inside. As a sermon, it practically writes itself. Of course, the primary point of contention about this sermon is the extent to which people are aware of their immoral choices. Yes, the man who cheats on his wife is undoubtedly aware that he is making what many would regard to be an immoral choice (even if he himself doesn't regard it as such), but the more salient questions are whether he has made lots of little choices that have led him to this point and whether he is aware of having made such choices. According to most modern accounts of neuropsychology, our brains make plenty of choices without us being aware of its having made them. So, there are a few interesting questions to ask, regardless of your religious views: (1) To what extent are we preparing our future selves to make morally good or bad choices? (2) Can we be aware of those preparations right now? (3) To what extent can we modify those preparations? and (4) What concrete steps, if any, can and should be taken to modify those preparations? Obviously, religion has plenty of answers to these questions, but I'm curious to know what neuropsychologists would say on the matter, and whether their answers would support the kinds of claims made by religions. For example, mindfulness has become for many a kind of training regimen that helps them to make more thoughtful, less reflexive choices. Of course, mindfulness seems to have been known and used in many religions under various names, but psychologists have only recently studied it and found that there are in fact many benefits to be reaped from its practice.

Whew! That's a lot of thoughts about something as lame as a broken tooth! Anyway, may your teeth always be straight, healthy, and unbroken. G'day!

Szymon Kaliski

Exploring ReasonML

2017-05-31

ReasonML is new syntax and toolchain for working with Ocaml, supported by Facebook.

ellugar Logs

Comezón en el destino

2017-05-29

undefined

ellugar Logs

Bugs and lights

2017-05-21

undefined

ellugar Logs

I have a plan

2017-05-13

undefined

ellugar Logs

Chicozapote

2017-05-11

undefined

ellugar Logs

Día de las madres

2017-05-10

undefined

ellugar Logs

Probando límites

2017-05-08

undefined

Szymon Kaliski

Timav — personal time tracking system

2017-04-30

Timav (“chronology” in Volapük) is a tool for analysing time tracking data collected in Google Calendar.

Szymon Kaliski

Timav — time tracking system

2017-04-30

Timav (“chronology” in Volapük) is a tool for analysing time tracking data collected in Google Calendar.

雨山

(雨山) The Rules of Magic

2017-04-01

WARNING: This post may contain spoilers for a variety of fantasy books.

So, I've now read three Neil Gaiman books: Stardust, The Ocean at the End of the Lane, and American Gods, and I wanted to take a moment to jot down some thoughts I've had about them.

First, let's talk about the good. I really like Gaiman's poetic style. Everything is similes and metaphors. Here's an excellent example from American Gods:

"Chicago happened slowly, like a migraine. First they were driving through countryside, then, imperceptibly, the occasional town became a low suburban sprawl, and the sprawl became the city."

It's hard to say whether or not allusion is being used in the stories because so much is direct reference to rather than indirect acknowledgement of other stories. American Gods is pretty much all allusion, and it's carried to the degree that the story almost becomes allusion-less.

But look: I'm not really a literary critic. I don't know much about language and story. But what I do know is this: as much as I like his use of language, I have a really hard time liking the stories themselves. I've tried really hard, really honestly, to like them, but they simply always fail to spark my sense of wonder and awe and mystery like some of my favorite authors. I think that the reason I've wanted to like his writing so much is that I like all of the things he does. He seems to draw inspiration from so many of the authors I like. In his interviews and podcasts, he's always so eloquent and funny and genuine and likeable. He seems to be a deep thinker. He wrote comic books, for crying out loud! How cool is that?! But, for some reason, his books just haven't captured me in the way that other authors have. I feel no ill will towards him; in fact, I still think he's an awesome guy. Neil, if you're reading this, please don't take offense to this review. You're a cool dude!

So, I've been mulling the books over, trying to determine what's wrong with them. I think I've figured something out, something that I think may be the main flaw. I suspect that if this particular flaw were fixed, the books would be magnificent, and would fall into the pantheon of my favorite books because, in all other respects, they're really cool. The problem is this: the magic in the stories doesn't follow any obvious rules.

I'm not saying that the magic doesn't follow any rules; it just doesn't follow any obvious rules. Gaiman may have had rules in mind when he wrote, for example, American Gods. He may have thought about whether or not gods can die, and, if they can, whether they can be resurrected, and by what processes and under what conditions, etc. But, even if he thought about these things, he didn't make his readers aware of them. Of course, he's not required to do so; it's his right as an author to tell his readers whatever he darn well wants to tell them. But the lack of communicated rules comes at a cost: readers don't know what's possible and what's not, and so everything that happens feels (ironically) like a deus ex machina. In other words, protagonists' choices don't have any weight of inevitability, of the narrowing of options as the enemy cuts of lines of attack. Consider how you feel when you play chess. Because I suck at chess, there always comes a moment when I encounter the feeling of oh-crap-I'm-screwed. Note that that feeling doesn't usually come at the moment of checkmate; it usually comes a few moves before, when I begin to recognize the inevitability of my doom. That feeling of inevitability is essential for creating tension in stories. It's produced in chess when my knowledge of the rules and their inflexibility leads me to the terrible conclusion that I'll lose soon. It's produced in stories in a similar way: when the reader understands the rules of the world and their inflexibility, it leads them to the conclusion that the protagonist is screwed (or at least severely limited in options). But consider the alternative: imagine that I'm a spectator of a chess game, but I don't know the rules. I can imagine other spectators ooh-ing and aah-ing as the players make their moves. I can imagine them gasping at the decisive moment where one player finally backs the other into a corner. I can imagine my own confusion, my own sense of feeling left out because the movements of the pieces seem random and unpredictable to me because I don't know the rules. And it's this last feeling that I experience when I read Gaiman's books. Since I don't know the rules of the worlds, how can I feel much tension or worry about the characters? Their choices seem random and unpredictable to me.

Let's take two quick case studies in fantasy stories that show how this tension can be properly built in worlds in which the reader is informed about the laws.

In J.K. Rowling's Harry Potter and the Prisoner of Azkaban, Sirius Black has escaped from Azkaban and is trying (we think) to find Harry at Hogwarts. In fact, in one scene, the Gryffindor kids return to their common room to find that the painting of the Fat Lady on the door has been viciously slashed with what appears to have been claws. The Fat Lady tells them that Sirius Black has been there. Now, Rowling has spent over two books telling us repeatedly through Hermione's mouth that it's not possible to Apparate in and out of Hogwarts. So, through Hermione, Rowling is teaching us a magical law. (To be fair, there's a tiny bit of worry about this "law" because the enchantment that prevents Apparation in and out of Hogwarts was implemented by Dumbledore, and perhaps Black and/or Voldemort are more powerful than Dumbledore and can break or bypass it. But, generally speaking, we're led to believe that Dumbledore is the greatest wizard of the age, and that even Voldemort fears and respects him. So, perhaps it's less a "law" of magic and more a "rule," but because Dumbledore made it, it's a pretty sturdy rule.) This allows us to draw a conclusion, then: Black must be getting into Hogwarts some other way. Either he's slipping past the dementors, or he's being helped into the castle by someone on the inside. And both possibilities are terrible to consider, which causes a massive increase in our worry about Harry and company.

And in Ursula Le Guin's A Wizard of Earthsea, Ged goes to Roke to train to become a wizard. While there, he learns the fundamental law of all magic in Earthsea: it's only possible to have power over something if you know its true name. In public, then, Ged uses another name: "Sparrowhawk." The idea, of course, is that if someone tries to cast a curse on you but only knows your public name, then the curse won't hurt you. But a horrifying moment comes late in the book when the villain greets Sparrowhawk with his true name: "Ged." Readers feel real terror in this moment because they've had the fundamental magical law firmly imprinted on their minds and they comprehend the dangerous situation Ged is in.

So, the moral of the story is this: readers need to know how the world works if they're to feel any sense of tension or excitement or fear or relief. If I ever try to write my own book, I'm definitely going to try to keep this in mind. Anyway, do you have any thoughts? Thanks for reading!


Image Sources:

Szymon Kaliski

Parametrium — interactive parameter space explorer

2017-03-31

Parametrium is a parameter space explorer for P5.js sketches.

Szymon Kaliski

Building Parametrium — interactive parameter space explorer for P5.js

2017-03-31

Parametrium is a parameter space explorer for P5.js sketches.

Szymon Kaliski

Building WallGen — evolving abstract wallpapers with GLSL

2017-02-28

WallGen is an evolutionary wallpaper generator using genetic algorithm to create never ending list of abstract ambient wallpapers.

Szymon Kaliski

WallGen — evolutionary wallpaper generator

2017-02-25

WallGen is an evolutionary wallpaper generator, using genetic algorithm to create never ending list of abstract ambient wallpapers.

ellugar Logs

ClawBert Feedback

2017-02-01

undefined

Szymon Kaliski

Building SDF-UI — node-based UI for generating SDF shaders

2017-01-31

SDF-UI is a node-based DSL for generating complex shapes using SDF, GLSL and WebGL, that I’ve build in January 2017.

Szymon Kaliski

SDF-UI — node-based ui for generating sdf shaders

2017-01-29

SDF-UI is a node-based DSL for generating complex shapes using SDF, GLSL and WebGL.

Szymon Kaliski

Kinect 2 on OSX with skeleton tracking

2017-01-18

This tutorial describes how to get Kinect 2 working on OSX with NiTE skeleton tracking.

Szymon Kaliski

Teaching creative coding in Shanghai

2016-12-29

I’ve spent last two months of 2016 teaching intensive eight week creative coding course at OFCourse in Shanghai.

雨山

(雨山) 2016: The Year in Review

2016-12-23

So, 2016 is almost over. I read back over last year's year-in-review post, which made me realize how much can change in just one year. Last year ended on such a positive note, but this year ... oh, god, this year. Honestly, it's hard to think of all of the good things that have happened this year (and there have been plenty of them) because they've all been overshadowed by that horror that tinges most of my waking thoughts these days: Donald Trump. If nothing else, though, 2016 has roused me to a new political activism that I have never known or felt before. I had never voted before this election, even though I'd been capable of voting since the 2004 elections. I felt, and continue to feel more strongly every day, that he's a psychopath, a liar, a moron, a narcissist, a swindler, and a bigot. That such a person should be the most powerful man in the world is excruciatingly scary, though right next to it is my terror of my neighbors who believe that such a man is an idol, a person to be emulated, a person to be placed in a position of leadership and authority. I am utterly incapable of understanding such a viewpoint. I hear rumors that some people voted for him not because they like him but because he'll challenge the status quo or "drain the swamp" or whatever. But, of course, even if he manages to follow through on all his promises, voting for such a person is analogous to detonating a pack of C-4 in your house because you'd like to take up the carpet: maybe the carpet will be gone when you're done, but so will the rest of the house. And if he does follow through on all his promises (which may be doubtful, but nevertheless a possibility), then he'll undo years of progress for minorities, women's rights, international relations, energy reform, and a plethora of other absolutely vital issues. But anyway, other people have written about how terrible he is, so I'll leave it alone for now. I really only wanted to lead with that so that I could get it out of my system and talk about other things.

So, besides being the year which future historians will mark as the beginning of the end of human civilization, what else happened in 2016? Well, I finally achieved more-or-less full-time work with all of my little careers. Between the classes that I teach (high school math, high school / middle school percussion ensemble, and high school and middle school computer programming), the piano lessons, the choir rehearsals, the math tutoring, and the occasional programming thing, I've got at least 40 hours of work every week. At times, I want to pull out my hair from stress, but overall I'm really thankful to have an abundance of work opportunities. Teaching high school classes has been especially rewarding this year. The students really seem to like me, and I really like them. After all of the awful years in public school, my current students have revived my love for teaching. I'm pretty sure that all it takes is respect and hard work from both sides, and school can be fun. I still don't know why public school students insisted on playing a game of mutually-assured destruction, but I'm glad I'm done with it.

Let me pause and consider my revival for a moment. I think that at least part of my success at my current school has come from my philosophy of teacher-student relationships, which is generally diametrically opposed to conventional wisdom on the matter. For example, I had professor after professor and mentor after mentor and coworker after coworker tell me that "you can't be friends with students" and that "if you try to be friends with students, then they'll lose all respect for you." But the problem with this philosophy, I think, is that it stems from the belief that the world is deeply, fundamentally, intrinsically a hierarchical place, and that there are built-in systems of authority and subservience mandated by God or 'Merica or whomever, and that these systems discourage and punish friendships that form between the relevant strata. But, of course, if you reject the axioms from which these beliefs are formed (as I do), then you can see that, in the state of nature, people are first and foremost peers, and are only secondarily superiors and inferiors as prescribed by economics and politics. I'm not suggesting that economics and politics don't apply; rather, I'm proposing that not enough homage is paid to the need for economics and politics in the first place: namely, that respect is required to make those systems function and to bring people out of the state of nature. The mayor of a town, for example, isn't placed on the throne by God; rather, he is one peer elected by other peers. The latter concede some of their power and vest it in the former. This concession of power, which is a form of respect, is necessary for any kind of governance. And education is a kind of governance, wherein the students must give respect to the teacher by conceding some of their power. The problem in education and politics is similar: when a teacher or a mayor forgets that their power is derived from the respect and consent of their peers and they begin to believe instead that their authority has been granted by God or some other mechanism — or when they become simply power-hungry and greedy — they become dictators. Then, when their "inferiors" revolt, they are forced to defend their status and to try to gain respect by force. But, in the end, respect can never be taken; it can only ever be given. And the best way to be given respect is to give it first. For me, in a school environment, that means treating students primarily as fellow human beings rather than as inferiors. After all, we all have the same basic needs and wants: we all need to eat, to sleep, to have sex, to love and to be loved, to have fun, to feel that our lives have purpose and meaning, to have autonomy and mobility, etc. This means, broadly, that I try to be a friend before anything else. A friend is one who empathizes, who helps when another is in need, who gives kicks in the butt when necessary. Of course, for a variety legal and social reasons, friendship between adults and children is not as easy or as deep as friendships between social peers, and I certainly don't attempt to make it as easy or as deep. For example, I don't hang out with the students outside of school, and I don't show favoritism. But my point is that I emphasize this friendship aspect of our relationship above all else, rather than emphasizing the superior-inferior aspect. (There are teachers at our school who do the opposite, and they are universally hated.) In fact, I think that people in positions of authority are obliged to be more respectful to their subordinates rather than less, lest the concessions of power of the subordinates be used against them. I also try never to teach that any particular thing is true "because that's the way it is"; I try instead to give reasons for everything I teach and to be honest when I don't know an answer, and I think that the students can sense (even if they aren't able yet to articulate) that this is markedly different from how much education is done. None of my philosophy is new, by the way. Conventional education has discarded my philosophy as "hippie" or "immature" or whatever because it has little imagination to see how students could learn with such a teacher and because all it knows is force; its authoritarian approach to education is, unsurprisingly, mirrored by its authoritarian approach to politics, economics, family, and other aspects of life. Now, I'll admit that my approach works better the older and more mature that students become. It's really hard to be "friends" or "peers" with little kids. With my own daughter, for example, I have to be authoritarian more than I like because she's simply too young and too unknowledgeable about the world and about social interactions for me to let her do whatever she pleases. Also, I'm legally responsible for her, so that carries weight in my interactions with her. But high school students are basically adults (especially physiologically, if not yet legally), and so it makes sense that I should treat them as essentially my peers.

Wow. Sorry to have rambled for so long on that topic. Let's see ... what else happened this year? Well, here are a few other smaller but nevertheless noteworthy things. I've had some pretty mild but pretty persistent health problems. I won't describe them in detail here, but they were enough to keep me moderately stressed for a sizeable portion of the year; which, of course, surely isn't helping my health. I also worked on a couple of projects. One of them is a book of poems for children. This was motivated by two factors. First, much of the literature for children out there right now is abominable. (Seriously, people: how hard is it to rhyme and to stick to a meter? Good grief!) And second, I just simply love nursery rhymes and other poems for children. Occasionally, I come across a good "adult" poem that I like, but they're generally too dense for me. But I love the fun rhythms and simple wisdoms of children's poems. I also resumed work on my virtual study, which is a simple app I've been building. In the app, you're in a small room. Outside the windows, it's always raining, and on a bookshelf nearby there are books to read. I've also been working on my password manager app, but progress there is slower. Oh, and I also got in pretty good shape physically over the summer ... and then promptly lost it all when school began. Oh, well.

Anyway, I think that's about it; at least, those are the major things. Thanks for tuning in, and if you're still reading, thanks for seeing this through to the end! Take care, and I hope that your 2017 goes well!

Szymon Kaliski

Ultra-portable Pi Zero setup

2016-11-21

I was travelling a lot recently while working on PiCap project.

ellugar Logs

Tokio & Love

2016-10-25

undefined

ellugar Logs

Alchademy Feedback

2016-10-11

undefined

Szymon Kaliski

Pi Cap — Raspberry Pi add-on for capacitive sensing

2016-09-09

flow/control collaborated with Bare Conductive in building software for Pi Cap which brings capacitive sensing known from their TouchBoard to Raspbbery Pi.

ellugar Logs

Late day

2016-09-02

undefined

ellugar Logs

Secretariat

2016-07-27

undefined

Szymon Kaliski

Heartbeats — audiovisual performance driven by human heartbeats

2016-07-18

flow/control created unique hardware and custom software which let Piotr Bejnar play concert on human heartbeats.

serocell - media feed

project

2016-06-05

serocell - media feed

speculative8

2016-06-05

serocell - media feed

engender

2016-06-05

serocell - media feed

tripl

2016-06-03

serocell - media feed

curmudgeon

2016-06-02

serocell - media feed

kit envy

2016-06-02

serocell - media feed

ticl

2016-05-24

serocell - media feed

talking

2016-05-24

serocell - media feed

01_serocell=.mp3

2016-05-23

serocell - media feed

weird try

2016-05-23

serocell - media feed

2016-02-22 21h52m05

2016-05-23

ellugar Logs

A Passive Enduring Love

2016-04-28

undefined

Szymon Kaliski

glsl-auto-ui — automatic gui generation

2016-04-20

glsl-auto-ui is an experiment in automatically generating UI components for DAT.GUI using GLSL uniforms.

ellugar Logs

The implication

2016-03-23

undefined

ellugar Logs

Vim and a new man

2016-03-21

undefined

ellugar Logs

Laughing and talking

2016-03-11

undefined

ellugar Logs

Hopeless

2016-03-10

undefined

ellugar Logs

The forgotten hype

2016-03-09

undefined

ellugar Logs

Hi

2016-03-07

undefined

serocell - media feed

untitled

2016-03-02

serocell - media feed

restore

2016-02-23

Szymon Kaliski

GLA London 2050 — data visualization of next 50 years of London development

2016-02-01

flow/control collaborated with variable studio and Squint Opera to build online interactive application showing the next 50 years of London development, including changes in population, expansion in transportation, energy, education and many other factors that will impact the city growth and change.

serocell - media feed

the dawning realisation that you're fighting for your soul

2016-01-25

雨山

(雨山) ScreenShaver

2016-01-23

I made a fun little (web) screensaver for the #screensaverjam. It's called ScreenShaver!

雨山

(雨山) Thoughts on Creativity

2016-01-04

The following thoughts are severely half-baked.

This afternoon, I heard a conversation on KERA's Think program about creativity. I only caught about five minutes of the hour-long conversation, so I didn't really get much from the program itself, but I started thinking a lot about creativity. I was a music major in college and wrote a few small compositions. I quickly discovered that I worked best when I was placed under severe constraints. At first, this seemed highly counterintuitive, and I wondered if I was abnormal for feeling that way. But after I graduated and began to read more about how other people create, I was quite surprised to find that many other creators felt the same way. But a question was raised: where do constraints come from? Obviously, if an artist is completing a commission for a client, then the constraints will generally have been supplied by the client, not by the artist. But there are plenty of artists who work only for themselves. Where do their constraints come from?

Well, I think that I may have deduced the answer to that question today. Creative people are often known (or so it seems to me) for their strong opinions in their field. They hate the use of a particular instrument, or love a particular color scheme, or loathe method acting, or only use 35mm film, or whatever. I suspect, then, that their opinions act as constraints on their work. They are unable to create work that violates one of their first principles or that offends their finely-tuned sensibilities, and so creativity is required in order to produce a work that satisfies their own requirements.

What do you think?

雨山

(雨山) 2015: The Year in Review

2015-12-31

As I was browsing Twitter today, I saw that lots of people had been posting year-in-review posts, and I thought that I should do the same — not just because I always do whatever the crowd does, but also because I think that there's real value in reflection.

So, what did I do in 2015? Well, 2015 was a relatively formative year for me for a variety of reasons. Chief among those reasons was the fact that I quit my job as a public school teacher after 3.5 years of suffering and transitioned into private lessons. Initially, I was worried that private lessons would be as painful as classroom teaching, but I was pleased to discover that my worries were unfounded. This transition led to a variety of confirmations of hypotheses that I had entertained about myself and about education. First, I finally concluded that performing the job called "classroom teacher," especially in a public school, actually requires one to be both a communicator and a policeman: classroom teachers must both communicate and reinforce information and processes and keep the students on track by enforcing rules. In direct relation to this, I finally concluded that I am not that kind of policeman: I have neither tolerance nor time for misbehavior. I won't put up with it and I won't take the time to manage it. (Nowadays, as a private instructor, if students misbehave, I simply don't teach them any more. It's glorious.) When my past administrators noticed my lack of classroom management, I'm sure that they thought that I was just lazy or ill-prepared or under-trained or overly-friendly with the kids or something — but really, I chose not to employ classroom management techniques simply because I believe that they shouldn't be necessary. Redirection and similar tactics are just a stall; what's really needed is for the students to learn respect. Respect is something that the students must learn how to give — it's not something that can be taken by a teacher — and so I focused my efforts on eliciting it from them by treating them with all of the respect I could muster. In other words, I tried my best to treat them like adults, like fellow human beings. I won't say that this was 100% successful, or even necessarily 50% successful, but I at least feel that I earned the respect of all but the douchebaggiest of students. I've learned, too, the truth of the leading-a-horse-to-water adage, which has changed my approach even in private lessons. I no longer try to control the direction of the lessons. Instead, I merely ask what the student wants to work on, and then attempt to guide them in the learning process. Again, to parents and administrators on the outside, this might look like lunacy. Let the students direct the lessons?! But I know that it works because I know that I can't force a student to work on something that they don't want to work on ... but I can try to harness as propulsion their natural interest in any particular topic. Second, I've read recently (though I can't find the link right now) that computer scientists that are self-taught tend to be more successful in the long run than those with just a college degree. Of course, this is probably only one instance of a broader principle about education and success, and it's surely controversial, but it at least seems to be true in my own life. Therefore, I've made it my mission in my private lessons to try to impart a desire and a toolkit for learning to the same degree to which I try to transmit the theory and practice of whatever subject it is that we're discussing.

Another important feature of this year has been my attempt at self-displine. For the first three months, I loafed around the house, played video games, watched anime, etc. Sure, I completed a few useful, job-related tasks — I created flyers, business cards, and a website for my piano lessons — but then I just sat back and waited for stuff to happen. I partly felt that this period of relaxation was a justified reward for the misery of the previous 3.5 years. I also felt quite a lot of uncertainty about whether I had done the right thing by leaving my teaching job — and rather than spur me to work harder, this uncertainty became a paralyzing anxiety. I knew that I was accomplishing nothing, but I was somehow unable to do anything about it. Well, for a while, at least, I wallowed. One day, though, I snapped. I had had enough. I decided to make a change. You can see my previous blog posts for more information, but the change, which turned out to be the real key to my success in self-discipline, was my commitment to recording what I spent my time on every day. It was such a simple change, but it had drastic, incredible consequences. I absolutely could not bear to write "I spent 4 hours playing Call of Duty" in my diary at the end of the day, and so I simply quit playing it (or, at least, radically reduced the time). Conversely, I felt a fierce, glowing sense of pride when I could honestly claim to have spent a quarter of the day programming or researching. As with all changes, it was hard at first, and I struggled to figure out how much leisure time was reasonable and even helpful, and I burned out on some things because I worked too hard at them, but after a few months, I had become a highly productive person. Of course, this productivity is now tightly coupled with my very rigid schedule. The schedule-less, let's-do-everything-on-the-spur-of-the-moment Christmas break I'm currently experiencing wreaks havoc on my sense of well-being. I'm stressed to a retarded degree because I don't know when things are happening and I'm unable to plan stretches of time in which I can fiddle with my projects. I yearn for the return of my routine, not necessarily because I like working but because I can't cope with unpredictability.

Another thing that happened this year was that I learned a lot about my food allergies. I don't think that I have any severe food allergies, but I do seem to have several mild to moderate food allergies. I won't go into the gory details, but I'll just say that modifying my diet has had wonderful effects on my health. I've lost weight, I'm able to think more clearly, I'm not constantly itchy and bloated, and my anxiety levels are the lowest they've been in a long time (though I'm willing to believe that they're related to my work as much as to my diet). Plus, some of my chronic allergy symptoms seem to be going away. The only downside is that I've had to eliminate virtually all of my favorite foods, which really sucks. I'm still in the process of finding new recipes that meet all my dietary needs, which can be tedious and frustrating, but for the most part, I'm really happy about the results achieved through the changes.

Lastly, here's a list of a few small things that were significant but not large enough to deserve their own paragraph. First, I think that I became a much better programmer this year because I was able to devote a huge amount of time to it. Second, I've discovered that, even though my self-discipline has improved massively, I still can't work very well at home; most of the time, I have to get out of the house in order to get anything done. Third, I've learned that spending a lot of time at home makes Josh a dull boy — or, rather, a sociophobic, crotchety old man. Fourth, since Facebook isn't a real person that I can strangle with my bare hands, I had to settle for deleting the Facebook app from my phone; after that, I only checked in once every month or so (which I mainly did to make sure that I hadn't received any contact on my piano lessons page). I still loathe Facebook with all of my heart. Fifth, I wrote several blog posts that I never posted because I worried that they would reveal too much about me to people that aren't ready to hear those sorts of things. Maybe I'll post them someday soon.

All in all, even though the year started with some stress as I struggled to figure out my new work and to manage my time effectively, it was a good year. It was year of immense growth for me. The struggles were, I think, worth it. May 2016 be even better!

雨山

(雨山) Prisoners' Dilemma

2015-12-13

UPDATE: Prisoners' Dilemma won first place in the innovation category for LD34!

Prisoners' Dilemma is a two-player game played across the Internet. It was made for Ludum Dare in December 2015 and implements the "two-button controls" theme. If two players are present, then they are placed in a prison together. The only way that they can communicate with each other is by knocking on the wall that separates their cells (using the K key on the keyboard). They can also attempt to escape (with the D key), but will be killed in the attempt unless they synchronize their attacks and each take down a guard. The difficulty of the game, then, comes from the fact that it's quite hard to synchronize an attack when you have no means of communication other than knocking on a wall.

Prisoners' Dilemma was made with p5js and nodejs.

serocell - media feed

no greater love

2015-11-29

serocell - media feed

luv

2015-11-29

Szymon Kaliski

Google I/O — data art made from billion datapoints representing Android users

2015-11-28

flow/control collaborated with variable studio to create visualisation showing all Android device users, for the openening I/O keynote delivered by Sundar Pichai on 2015 Google I/O. The visualisation was seen by 6000 attendees, and over 1.8M viewers online, making this the hugest flow/control projects to date.

serocell - media feed

touched

2015-11-28

serocell - media feed

degraded brik

2015-11-20

serocell - media feed

silicone

2015-11-20

serocell - media feed

sub

2015-11-20

serocell - media feed

empty2.2

2015-11-20

serocell - media feed

short

2015-11-20

serocell - media feed

brik2

2015-11-20

serocell - media feed

a minor tragedy

2015-11-20

serocell - media feed

brik

2015-11-20

serocell - media feed

disconnected

2015-11-20

serocell - media feed

until

2015-11-20

serocell - media feed

empty2.1

2015-11-20

Szymon Kaliski

Fonomapa — interactive audio installation

2015-10-08

flow/control built interactive installation for 20th Kids Art Biennale in Poznań in 2015. We created intuitive frontend for exploring the city of Poznań through sounds recorded by children in previous edition of the festival.

Szymon Kaliski

Kinect2OSC

2015-09-20

Kinect2OSC is a small application for receiving and transmitting data from Kinect 360 through OSC.

雨山

(雨山) Watercolor

2015-09-18

I probably mentioned that I've been trying to make a little virtual study in Unity. But I've run into one small nag: I don't really like the extraordinarily low-poly, textureless feel needed to achieve acceptable speeds on my janky old iPhone 4. (Don't get me wrong; that art style is great for some projects ... it's just not good for this one.) So I've been working towards making a 2D, texture-only version. I've also wanted a more unusual art style, so I spent today creating a watercolor algorithm. In broad strokes, it uses a very slightly modified version of the K-means algorithm. Here it is in a little more detail:

  1. Draw the original image.
  2. Draw monochromatic ellipses of varying sizes, intensities, and opacities all over the original. (This is what lends the image the blotchy look later.)
  3. Make some centroids for the K-Means algorithm.
  4. Until satisfied:
    1. Blur the entire image with a Gaussian blur.
    2. Apply a very slightly modified K-Means algorithm using these steps:
      1. Assign every pixel to a centroid based on an average of the pixel's screen-space distance from the centroid and its color distance from the centroid's average color.
      2. Move every centroid to the average location of its pixels.
      3. Set every centroid's average color to the average of its pixels.
      4. Lerp every centroid's pixel colors a small way towards its average color.
  5. Apply post-processing effects:
    1. Draw the original image almost completely transparently over the new image. This prevents from the final image from looking like someone just spilled lots of colored paints on a canvas.
    2. Add a small bit of monochromatic noise to the entire image.

It's not perfect yet, but it's good enough for government work. Here's an example of the results produced by this algorithm:

Before:

After:

serocell - media feed

not in time

2015-09-02

serocell - media feed

happy bird day

2015-09-02

serocell - media feed

tumble

2015-07-26

serocell - media feed

lost in this

2015-07-20

serocell - media feed

subtract

2015-07-17

serocell - media feed

calling in the spirits

2015-06-02

雨山

(雨山) Procedural Puzzle Follow-Up

2015-05-28

So, I've been doing some thinking about my procedural puzzle game generation algorithm, and I've come to a few more conclusions. When I've come to a sufficiently large number of conclusions, I'll probably re-write that article, or make it a page, or both.

Here's the first thought: I don't know why I put "make a start node" as the first step, since what really matters is just that the graph itself be generated first. Then, if you like, you can select the start and goal nodes. The reason that this realization is important is that it'll free me to up generate the world much more organically and less prefabricatedly (maybe), and then worry about the locks and keys.

Here's the process I'm going to try to follow for generating the world, then. (NOTE: I haven't done any research on this, so these steps are just off the top of my head and will probably fail to work completely.)

  1. Make an ocean (i.e., a flat plane of water).
  2. Make islands in the ocean (i.e., flat planes of land).
  3. Make heightmaps for the islands from noise functions.
  4. Select random locations within the bounds of each island (and that are above sea level) as potential locations for villages.
  5. Select random locations within the bounds of each village as potential locations for buildings.
  6. Select random locations within the bounds of each building as potential locations for rooms.
  7. Put together several rooms in the location of each building, and perform "sanity checks" (to be specified later) on the building.
  8. Select random locations within the bounds of each room as potential locations for boxes.
  9. Place boxes.
  10. Generate non-natural connections between hierarchical items. Natural connections will include normal spatial relations (like the fact that a building is sitting on the ground and is therefore to some degree accessible from the ground). Non-natural connections will include things like bridges, stairs, tunnels, skyways, tram lines, boats, etc.

With all these steps done, we'll probably be in a position to run the rest of the algorithm and actually lock down these "edges" (connections) and place keys around the world. I'm going to try it out!

雨山

(雨山) Procedural Puzzle Game Generation

2015-05-26

So, I've been working on a procedural puzzle game generation algorithm. I should stress that this algorithm produces puzzle games, not necessarily puzzles themselves ... though I suppose that if a game is filled with puzzles, then it is itself a kind of puzzle. Nevertheless, I wanted to share my algorithm here both as a reference for myself and as inspiration for others.

Before I show you the algorithm and some examples, let me clarify a few bits of terminology. I'll be using (probably not entirely accurately) words from graph theory, as well as the words lock and key. The words from graph theory, such as node and edge, will be used in their normal, technical sense, though I suppose I should note that nodes don't necessarily always represent locations; sometimes, they may represent states of the game. The words lock and key, however, must be expanded. In this article, anything is a lock if it modifies the edge of a graph to make it untraversable or extremely costly to traverse. And a key, then, is anything that modifies a locked edge to make it traversable or cheap to traverse. An obvious example, of course, is of a physical lock and physical key, where the physical lock modifies the passage (edge) between two rooms (nodes) to make it untraversable, and the key makes it traversable again. But let's remember that the terminology works equally well for states as it does for locations. For example, imagine that you've received an enciphered note that can only be deciphered by use of an algorithm (like ROT13). The two relevant nodes in this case are (1) the state in which you do not understand the contents of the note and (2) the state in which you do understand the contents of the note. The relevant edge between these two nodes is the reading of the note; it's the "passageway" between the two states. The encryption of the note acts as a lock on the edge, preventing reading (i.e., passage). And, of course, the function (ROT13 or whatever) acts as a key to that lock, allowing passage through the edge. Lastly, I should also like to add that locks are allowed to require multiple keys. The Doors of Durin from The Lord of the Rings are a great example of this, as they require both moonlight / starlight and a password.

With those terms clarified, I should also say that what this algorithm does is create a graph and place locks and keys on the edges and nodes ... but it does not know anything about what kind of locks or keys or nodes or edges these are. Therefore, it is (for now) up to the designer to implement the exact nature of those pieces.

All right. Now we're in a position to look at an overview of the algorithm. Here it is in broad strokes:

  1. Create a start node.
  2. Add a lot of extra nodes and edges to the start and to each other.
  3. Add a node far from the start to the list of goal nodes.
  4. For n iterations (i.e., until having reached the desired complexity), do the following:
  5. <ol style="list-style-type: lower-alpha;">
    	<li>Select the first goal node in the list of goal nodes and set it as the current goal.</li>
    	<li>Make sure that the current goal node can only be reached from the start by a single edge; remove any extra edges if necessary.</li>
    	<li>Place a lock on the single edge connecting the current goal node to the rest of the graph. This lock can require any number of keys.</li>
    	<li>Place the keys for the lock on other nodes far from the start node and <i>not</i> anywhere behind the locked edge.</li>
    	<li>Add each of the nodes containing these new keys to the list of goal nodes (if they're not already in it).</li>
    	<li>Remove the current goal node from the list of goal nodes.</li>
    </ol>
    

This process produces a playable game. It looks a bit easy, a bit boring, if you imagine that all of the locks and keys are physical locks and keys ... but of course, you shouldn't do that. Remember that each lock can be entirely different in nature: some locks might be physical locks requiring a physical key, but they might also be an enciphered note or a raised drawbridge or a monster or computer login screen or anything else that prevents the player from moving forward without a key.

Here's the final version, in static mode. See if you can mentally play through it! The circles and lines are obviously nodes and edges. The start node is white, and the final goal node is black. The colored squares on the edges are the locks, and the colored triangles are keys. Paired keys and locks have the same color.

Now, as a bonus, here are some extra thoughts.

First, the algorithm currently only uses functional keys. But in order to add extra difficulty to a game, it might be fun to have the algorithm generate non-functional keys (i.e., red herrings). Remember, of course, that keys might look like anything: a dictionary to translate between languages, a slip of paper bearing a password in the form of a child's birthdate, a switch hidden behind some books on a bookshelf, etc. Therefore it will make the game all the more difficult (but probably more realistic as well) to include a wealth of extra details and dead ends. J.K. Rowling is an author who, in my opinion, does this masterfully. In fact, the concept of Chekhov's gun might even be the opposite of what we want in a good puzzle game. But I'm still on the fence about this one.

Second, I really like the possibility (and the algorithm above actually makes this an actuality) that you can carry around multiple keys at a time before finding their corresponding lock. The Myst games were matchless in that respect. After finding a key, it might take the player hours or days to find the lock into which it fitted! And I loved that. It greatly increased the sense of mystery.

Third, one way in which the algorithm needs improvement is this: locked areas can only be reached through one edge. Obviously, that's enforced by step 4b listed above, so it's not as though this was an unexpected consequence. But I guess I'm saying that it might be more realistic for areas to be accessible by different routes. Riven employed the multiple routes thing magnificently; the islands became radically more confusing when you could travel to them two or three different ways, which sometimes even allowed you to bypass a lock that had prevented you from reaching the island by a different route.

Fourth, the algorithm doesn't seem to handle some puzzle types. For example, Hiversaires used resource management to make movement difficult late in the game. Each "key" opened any "lock," but had to be left in the lock to keep it open. So, if you had one key, you could open one locked door, but then if there was a subsequent locked door, then you were out of luck until either you found a way to move about the world to bypass the lock or else you found another key. I'm fairly certain that my algorithm could not produce such a game mechanic, primarily because of the way I've implemented the relationship between locks and keys. More specifically, a key (or set of keys) basically just dissolves a lock; they nullify each other. But in order to employ a Hiversaires-like mechanic, it would be necessary for keys to work on multiple locks and to remain in the locks ... which would require different kinds of pathfinding thinking when worrying about how players would traverse the graph. To look under the hood of my algorithm a bit, I'll note that my algorithm selects the nodes for placement of the keys based on whether they are reachable (i.e., that a path can be found) from the start node. More specifically still, it performs an A* search to find a path that does not take keys into account. So, to incorporate the resource management puzzles, it might be necessary to factor keys into the A* algorithm.

Fifth, I said it before, but I'll just remind you: this algorithm doesn't actually create puzzles; it only creates the graph. Therefore, you, the designer, must create and implement the various types of nodes, edges, locks, and keys. But I do have some thoughts about the sorts of relationships between these pieces that can be realistically expected by the player. Let's talk about nodes for a moment. If we imagine for a moment that all nodes are locations, then we can make certain assumptions that lend credibility to our world. For example, imagine that we have two nodes, A (start) and B (goal), that are connected by a locked edge. We can ask certain questions to help reveal the nature of the relationship between A and B. For example, could A be an open field and B be a house? (In other words, could you potentially be locked out of the house?) Yes, I think that such a scenario is easily believable. Could A be a house and B be an open field? (In other words, could you potentially be locked inside of the house?) Yes, I think that this is also believable. Could A be a room and B be a box? (In other words, could you potentially be locked out of a box?) Yes, I think that this is believable. Could A be a box and B be a room? (In other words, could you potentially be locked inside of a box?) Hm ... this one is a bit harder. I guess it depends on the kind of box. If you're a genie stuck in a lamp, then yes, it's possible. But if you're a human, then you probably can't be locked in a jewelry box. But unless we want our story to feel like Alice in Wonderland, we'd probably have to stop at this scale; it's hard to imagine smaller boxes within the box. So, as an initial conclusion, scale seems to matter for realism. Before we leave physical nodes, let's point out one other thing: while a node may logically be a child of another node (and therefore graphically separate from it), it may spatially exist within its parent node. Again, take the example of the room and the box. Graphically / logically, the nodes appear to exist in different locations ... but in the physical world, the one actually exists inside of the other. Therefore, we can sometimes (but not always, since sometimes rooms can connect to other rooms rather than simply to boxes) be limited in the kinds of child nodes that are available for any node.

Sixth, the more I think about it, the less sure I am that what I've created is actually a "puzzle" game generator. After all, I mentioned near the beginning that a lock could be anything that makes an edge impassable — including monsters. But if monsters are included, then it almost seems as though any sort of adventure game could be created ... even games that have no "puzzle" elements at all! I'm too dull to see whether what I'm working on is game form in general, or puzzle form in general, or some combination of the two, or something even more basic, more general (like knot theory). And also, although I stressed at the beginning that nodes weren't just locations but could also represent states, it's still really hard to think in terms of states; it's so much easier to imagine each node to be a place. So, I don't know what that means.

Whew! So, what thoughts do you have?

serocell - media feed

acid

2015-05-20

serocell - media feed

acid2

2015-05-20

serocell - media feed

techno no mic

2015-05-09

serocell - media feed

in the mist

2015-05-09

serocell - media feed

tidal1

2015-05-09

serocell - media feed

mic on drone

2015-05-09

serocell - media feed

code break

2015-05-08

serocell - media feed

auspice

2015-05-08

serocell - media feed

pipilan5

2015-05-08

serocell - media feed

pipilan3

2015-05-08

serocell - media feed

pipilan1

2015-05-08

serocell - media feed

echo

2015-05-08

serocell - media feed

pipilan4

2015-05-08

serocell - media feed

pipilan2

2015-05-08

serocell - media feed

stupid rave stuff

2015-05-08

雨山

(雨山) Temples: Star Temple

2015-05-02

I started an album called Temples. It's probably going to be vaporware in the long run, but I suppose I'll just contribute sketches to it every once in a while. I made the first sketch today. It's called "Star Temple." You can hear it below!

serocell - media feed

shoes

2015-04-12

雨山

(雨山) Medieval Cyborg: the Next Generation

2015-03-30

So, I made a weird little “game” (though I’m hardly sure that it’s a game) for the Random Name Game Jam this past week called Medieval Cyborg: the Next Generation. You can play it via the links below! Enjoy!

serocell - media feed

mic test 2

2015-03-13

serocell - media feed

clone

2015-03-11

serocell - media feed

beat2

2015-03-11

serocell - media feed

urate

2015-03-10

serocell - media feed

clone_2

2015-03-03

serocell - media feed

retrieving faith

2015-03-02

serocell - media feed

retrieved faith

2015-03-02

serocell - media feed

2015-02-21_s900.tv

2015-03-02

serocell - media feed

naus

2015-02-14

serocell - media feed

user48736353001 pt2

2015-02-11

serocell - media feed

user48736353001

2015-02-10

serocell - media feed

distro

2015-01-25

serocell - media feed

drumik

2015-01-25

serocell - media feed

grooval

2015-01-22

serocell - media feed

imagine christmas wishes shooting out of your eyes

2014-12-26

serocell - media feed

scape 22.12.14

2014-12-22

serocell - media feed

talk

2014-11-20

serocell - media feed

live settings

2014-11-20

serocell - media feed

pipilan 11-19-2014

2014-11-20

serocell - media feed

tick2

2014-11-20

serocell - media feed

track point

2014-11-20

serocell - media feed

wrong? give thank. because. the burden.

2014-11-20

serocell - media feed

dna mobius

2014-11-20

Szymon Kaliski

LoopPI — hardware audio looper

2014-10-19

LoopPI is a standalone four track audio looper made with Raspberry PI, ChucK and Node.js.

Szymon Kaliski

EEG2OSC — osc transmitter for emotiv epoc

2014-10-10

EEG2OSC was created for Rafał Zapała’s Sensorium project. It was used to pass data from Emotiv EPOC EEG Headset to Max/MSP.

Szymon Kaliski

Sensorium — audio installation driven by EEG

2014-10-10

flow/control collaborated with talented Rafał Zapała on his “Sensorium” installation, based on the idea of biofeedback from EEG and other biosensors.

Szymon Kaliski

Sonic Explorer — kinetic audio installation

2014-10-08

Szymon Kaliski (from flow/control) collaborated with talented Marek Straszak on interactive audio art piece, built for Art+Bits festival in 2014, and later exhibited at WRO Biennale 2015, the biggest Polish new-media art biennale.

serocell - media feed

beq

2014-09-02

serocell - media feed

structural integration

2014-09-02

serocell - media feed

mipilan sketches 7.15.2014

2014-09-02

serocell - media feed

end of silence

2014-09-02

serocell - media feed

mjendcharles

2014-09-02

serocell - media feed

fall

2014-09-02

serocell - media feed

close to spirit

2014-09-02

serocell - media feed

mipilan sketches 7.14.2014

2014-09-02

serocell - media feed

all my people make it nice

2014-09-02

serocell - media feed

kittens

2014-09-02

serocell - media feed

easy pickings

2014-09-02

serocell - media feed

Ardisson mix Take II

2014-09-02

serocell - media feed

Crossed Wires II

2014-09-02

serocell - media feed

pure memory

2014-09-02

serocell - media feed

drive corruption

2014-09-02

serocell - media feed

numeral dirge

2014-09-02

serocell - media feed

trim

2014-06-22

serocell - media feed

the box

2014-06-21

This type of enclosure is not supported yet

serocell - media feed

do it well

2014-06-21

This type of enclosure is not supported yet

serocell - media feed

serocell

2014-06-21

This type of enclosure is not supported yet

serocell - media feed

dissent

2014-05-01

serocell - media feed

post-lingual ontology

2014-04-30

serocell - media feed

2014-04-03_3h00m16

2014-04-22

serocell - media feed

unicorn [detected dropped samples remix]

2014-04-22

serocell - media feed

janet street porter & the neo surrealists

2014-04-22

serocell - media feed

1 - empathy

2014-04-19

serocell - media feed

2 - the denial of depth

2014-04-19

serocell - media feed

3 - who could have known

2014-04-19

Szymon Kaliski

Institut Des Mutations — generative webgl logo

2014-03-28

flow/control created a generative logo, working in close collaboration with La Moulade design studio. We started from scratch, with an idea of organic movement and simplicity in mind.

serocell - media feed

balinese postcard

2014-02-21

Szymon Kaliski

Nodation — music composition using graphs

2014-02-19

Nodation is an experimental take on creating music using graphs. It was created during my residency at Fabrica in Fabruary 2014.

serocell - media feed

6 - prelude

2014-02-01

serocell - media feed

5 - passive

2014-02-01

serocell - media feed

4 - africa

2014-02-01

serocell - media feed

3 - hairpin

2014-02-01

serocell - media feed

2 - cantata

2014-02-01

serocell - media feed

1 - applebum

2014-02-01

serocell - media feed

7 - tunisia

2014-02-01

serocell - media feed

the grand symbolic myriad

2014-01-03

serocell - media feed

serocell - corner moves

2013-12-25

serocell - media feed

live @ pasquo & getwax

2013-12-25

Szymon Kaliski

Zamek — interactive movie

2013-12-20

flow/control collaborated with Movlab studio to create the first Polish interactive movie. It was made during Movlab’s residency at Zamek Culture Centre.

Szymon Kaliski

BeatBattle — live audio-reactive visuals

2013-12-14

I collaborated with .wju VJs collective to create live audioreactive visualizations for 2013 Red Bull’s BeatBattle In Poznań.

Szymon Kaliski

Hello Poznań — interactive data visualisation of Poznań events

2013-04-19

Hello Poznań! is an inteactive map showing events happening in Poznań.

Szymon Kaliski

Sensorium — generative book covers

2012-05-18

“Sensorium” is a collection of essays by Agnieszka Jelewska, studying relations between art, science, philosophy and human experience (more info).