Improving Classroom Behavior

The main problem with education is the sharing of information and knowledge only flows in one direction--typically from teacher to students. If that's all education system does, we can just eliminate teachers and have students learn by watching videos all day. So what's the point and benefit of stuffing children into crowded classrooms?

One may surmise that schools bring children together so they can learn to socialize and make friends. But then why punish children for being active and expressive?
Continue reading Improving Classroom Behavior

Universal Love vs Love by Inclusivity

Universal love is by default more inclusive than love by inclusivity. Such that this progressive movement of "inclusivity" is a huge backward step compared to universal love.

Universal love doesn't care about attributes or classification. Thus it is not hindered by misperception or bias or ignorance. Nothing and nobody is omitted or excluded.

In contrast, inclusive love very much cares about classifying (people, things). It can only include things or people that they know about or care about. Thus ironically it will not include things they could care less about or have no information about. So when new information or things later come into view or concern, it has to include that piecemeal, and still erroneously omit things and people.
Continue reading Universal Love vs Love by Inclusivity

[MTG Deck] Azorius Skies

18 Creatures
4 Healer's Hawk
4 Siren Stormtamer
4 Resplendent Angel
2 Shalai, Voice of Plenty
4 Sphinx of Foresight

7 Mods
3 Prying Blade
4 Curious Obsession
16 Spells
4 Opt
4 Depose / Deploy
4 Warrant / Warden
4 Mission Briefing

19 Lands
2 Plains
5 Island
4 Hallowed Fountain
4 Glacial Fortress
4 Azorius Guildgate
2 Remorseful Cleric
4 Negate
4 Kinjalli's Sunwing
2 Sinister Sabotage
3 Deputy of Detention

[MTG Deck] Esper Skies

12 Creatures
4 Pteramander
4 Siren Stormtamer
4 Dimir Spybug

20 Lands
3 Island
4 Watery Grave
4 Drowned Catacomb
4 Hallowed Fountain
4 Glacial Fortress
1 Godless Shrine
28 Spells
4 Opt
2 Duress
4 Mission Briefing
4 Thought Erasure
4 Depose // Deploy
4 Discovery // Dispersal
4 Warrant // Warden
2 Sinister Sabotage
2 Duress
4 Negate
3 Consecrate // Consume
3 Deputy of Detention
2 Shalai, Voice of Plenty
1 Nightveil Predator

Esper aggro-control with focus on Surveil and filling graveyard with instants and sorceries. Finishers are Pteramander, Dimir Spybug, Warden--all of which can become dangerous 4/4 or 5/5 flyers; or a bunch of flying Thopter tokens via Deploy.

The spells perform one or more of these:

- surveil to improve your next draws
- control ala countermagic, discard, removal
- tempo to slow down opponent
- protection via counters (Siren Stormtamer), hexproof
- creature tokens as finishers

The Azorius split cards Depose // Deploy and Warrant // Warden are amazing. Early they can be tempo, and later they create tokens to finish the game. So they count as creatures, but also fill the grave for Pteramander. Furthermore, they can be flashbacked with Mission Briefing--it's absolutely sick. Recast Deploy to gain more Thopters and gain huge amounts life; or recast Warden for another 4/4 flying vigilant.

[MTG deck] Singularity

Spells - 13
2 Eladamri's Call
2 Enlightened Tutor
1 Future Sight
2 Garruk Wildspeaker
1 Jace, the Mind Sculptor
4 Leyline of Singularity
2 Swords to Plowshares

Mana - 26
1 Black Lotus
1 Celestial Colonnade
1 Faerie Conclave
4 Flooded Strand
1 Forest
1 Island
1 Karakas
1 Lumbering Falls
4 Misty Rainforest
1 Mox Diamond
1 Mox Emerald
1 Mox Pearl
1 Mox Sapphire
1 Sol Ring
4 Tropical Island
2 Tundra
Creatures - 21
1 Artificer's Assistant
1 Birds of Paradise
2 Captain Sisay
1 Cold-Eyed Selkie
1 Edric, Spymaster of Trest
1 Elesh Norn, Grand Cenobite
1 Empress Galina
1 Kira, Great Glass-Spinner
1 Kitchen Finks
1 Nightveil Specter
1 Noble Hierarch
1 Nylea, God of the Hunt
1 Primeval Titan
1 Rhox War Monk
1 Selvala, Heart of the Wilds
1 Sylvan Caryatid
1 Tarmogoyf
1 Thassa, God of the Sea
1 Vendilion Clique
Sideboard - 15
1 Aura of Silence
1 Aura Shards
1 Azorius Guildmage
1 Eladamri's Call
1 Geist of Saint Traft
1 Glen Elendra Archmage
1 Jace, the Mind Sculptor
1 Kataki, War's Wage
1 Knight of the Reliquary
1 Kruphix, God of Horizons
1 Linvala, Keeper of Silence
1 Michiko Konda, Truth Seeker
1 Rafiq of the Many
1 Teferi, Mage of Zhalfir
1 Venser, Shaper Savant

I discovered the Leyline of Singularity deck concept when playing Forge. I felt the potential and coolness of this idea, and transformed it into a real powerhouse far different from the original.

Continue reading [MTG deck] Singularity

!!AB : Creating Compile Language : Part 1


Per the original spec for my Nonalphabetic Programming Language --dubbedd !!AB or NOTAB-- I have finally gotten around to trying to turn it into an actual usable product. First time around, I haven't gotten used to Flex/Bison yet, so I didn't get anywhere. But this time, I think I have a slightly better grasp, and have something that seems to work. I've read some tutorials, but still have a long way to fully understand the syntax and logical procedure and grand vision for Flex/Bison.

It's still at a very early stage. The source code can be found at this git repository for NOTAB.


First area I started with is text output, so that I can see the results of the sample source code written in !!AB language. It will only accept double-quotes and not single-quotes/apostrophe to enclose strings--in order to not use up the limited number of nonalphanumeric characters, nor to use symbols in combinations that are not intuitive. (Like why do languages have comments and comment blocks delimited by // and /*? This makes no sense.) Per the specs of this new language, the early draft of my Flex code went something like this:

\"                { BEGIN(MODE_STRING); }
<MODE_STRING>[^\"]*  { yylval.sval = strdup(yytext); return STRING; }

The program always begins in the INITIAL mode.
tells Flex this is a mode that the program will enter and leave when it encounters specific text in the source. In this case, this mode will try to capture a string of text between two double-quotes "". This is an exclusive mode --signified by %x-- which means only rules beginning with this code --
-- will be processed while the lexer is under this mode. (The other type is inclusive mode, signified by %s.)

When it sees a double-quote while not in MODE_STRING mode, it will turn on this mode. While in this mode, any character besides the double-quote is considered part of the string, including newlines. That means a string can span multiple lines.

This mode will end when it meets the next double-quote. Caveat is that the !!AB spec desires that double-quotes within strings be escaped as \". However, this is not possible yet, since my skill with Flex/Bison is still very lacking. Although one idea is to create a temporary string variable when it first enters this mode. Then create a new rule to additionally capture \". Finally when it leaves this mode (but not before), the entire string will be returned.


Also completed the comment system. Much simpler than strings concept. Allows both single- and multi-line comments. Single line comment begins with single-quote ', and will ignore the rest of the line. Multi-line comment blocks are enclosed within '[ and '].

Flex goes like this:

"'["		       { BEGIN(MODE_COMMENT); }
	[^'\n]*      // ignore anything that's not a '
	'+[^'\]\n]*  // ignore ' not followed by ]
	\n           { ++line_num; }
	'+"]"        { BEGIN(INITIAL); }

'[^\[][^\n]*		; // comment, ignore rest of line

I designate a second mode for block comments. It initiates when it detects '[. It ignores pretty much every character while in this mode. The new line is to keep the line number for debugging, so you know the line number of the input source when you get an error.

There are two different checks during this mode. The comment mode exits when it meets ']. So you can have series of ' with or without a trailing ]. Therefore check both conditions to get the desired behaviour.

Also to ensure single line comments don't interfere with multi-line, it must check against the opening bracket [ that starts multi-line mode.

Test Source

Here is the test source file written to the specs of the new language. It seems to work as expected.

$< "Hello Master " + "Xayvir."

$< "What about
$< "Or \n escaped newlines?"

$< "!!AB is such a \"great\" programming language" ' aka NOTAB

$< 890 + \
" beers on the wall."

$< "I have " + 11.01 + " dollars." 'US dollars

comment block

$< "Flavor text with" + '[ this should not appear '] " inside comment block"

$< "What about unclosed string?"

While writing this post but before completing, I went ahead and read more materials on getting Flex to do more complicated strings and comments. So the strings section in final program is actually more advanced than what is posted in this post. (You can read that site rather than me repeat them here.)

Counterproductive Forced Diversity

Fantasy, long before forced diversity was preached, was more interesting because the resultant diversity was limitless--anything was possible, yet natural and fluid.

Unfortunately, with forced diversity, now there are restrictions to diversity, to fantasy, to imagination. These diversity advocates put in rules to how diverse or not your characters are. So when you see something out of the norm, you'll be more nonchalant and think "okay so that's the quota used here"; instead of just appreciating the fantasy, the creativity, the uniqueness of characters that go deeper than skin and race. After forced diversity, creators focus too much about tangible, visible, shallow traits.

Cantonese will not be endangered for a very long time

Cantonese will not be endangered for a very long time. Even in China mainland, its status is right behind Mandarin. There are a lot of arts I.e. music, movies, TV that heavily focus on Cantonese from Canton province and Hong Kong. Some award shows in Canton (and obviously Hong Kong) have separate categories for Cantonese and Mandarin. Thus as long these forms of media is popular on the internet and popular culture, the language will continue to flourish. Furthermore given that Hong Kong and Macau are special areas where the government has minimal interference, and thus doesn't force them to prioritize Mandarin to replace Cantonese.
Continue reading Cantonese will not be endangered for a very long time

Shallow Theme Park MMOs

How about these shallow theme parks games with tedious "quest" hubs? Quest my ass, these are nothing but copy/paste list of chores. It's worst than being a temp worker doing menial jobs from a headhunter office. It feels more like players are oxen being led by the nose, doing these boring menial tasks, mindlessly being stuffed with fodder until you want to vomit.

Quests should feel epic, but these quest-based games have zero sense of epicness. "Go ten feet over there and pick vegetables from my garden." wow epic quest. "I'm donning my legendary sword and go farming?" Quests don't feel adventurous, meaningful any more. You just go from place to place to serve these forgettable NPCs. I did a bunch of quests in so many other MMORPGs, but I can't tell you the how, what, or even why I did them. Because they told me to, like I'm their damn intern or servant. FFXIV even call them duties. Like it's my duty as an adventurer to serve these useless NPCs.

This quest grind is more boring and lame than just camping. Which BTW AC2 had a very nice balance between quests and camping. Both types of gameplay are enjoyable in AC2. Really great liberty to play however you like.

Anyway, AC2 quest felt organic, had natural flow. It wasn't all "do step one, return to me, do step two, return to me or go to next NPC." Stupid choppy back-and-forth is disorienting, mind-numbing. No, instead, each part of AC2 quests flowed smoothly from step to step. Some steps were more involved. So devs allowed more freedom for players on how they want to pursue their goals.

Open-ended, organic, smoothly flowing, liberating, involved, mindful, purposeful--these are keywords to describe AC2 style of quests.

Games & Design, MTG, Idols, Hacking, Ergonomics