Blog

Page / - last modified by Victor Zhang on 16:38, 07/04/2020

Blog

last modified by Victor Zhang

on 16:38, 07/04/2020

Table of Contents

https://wiki.melissakronenberger.com:443/bin/view/Blog/Celsius%20to%20Fahrenheit%20conversion%20chart">

Jan 28 2021

Jan 28, 2021

https://wiki.melissakronenberger.com:443/bin/view/Blog/Celsius%20to%20Fahrenheit%20conversion%20chart">Celsius to Fahrenheit conversion chart

In the US, the unit used is still imperial, to get an intuitive sense of the temperature, a chart is a good idea. (Put Kelvin in, but it can be cutout)

However, there's no high quality chart for printing online, so I made one in Vector: [AI original] [AI 3.0] [SVG,text outlined] [PDF]

PNG with 300dpi :

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Bohem%20system%20lite%20in%20EWI">

Dec 19 2020

Dec 19, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Bohem%20system%20lite%20in%20EWI">Boehm system lite in EWI (WIP)

The Boehm system is universal in woodwind instruments, however, there is something with the arrangement of the keys that makes certain scales harder than others. For example, an alto saxophone is easiest on Eb, Bb; easier on C, F; however there will be connection that's very non-intuitive linked notes for other scales.

I haven't played Oboe/Clarinet, but talking with people who plays many wood-wind instrument, they pretty much all follows the Boehm system.

This is the Saxophone keys:

Flute key chart

There already exist this clever design of eg the flute Thumb key (B/Bb) depending on which half circle you press on. The Bb key mechanically press the B to close both hole, but B key only close higher hole. So you have a half note shift for different scale depending on where you finger is sitting, instead of relying on simutaniously press of another key usually using Pinky finger, or an awkward same hand finger switch (which is bad for linked note -which means no tonguing to seperate two notes) like the index finger/middle finger switch on both hand. This is same for saxophone, in saxophone there is also the lefthand index finger key, if you move the finger resting position from the main circle to small circle, the resting position will lower the same fingering closed position half note, accomodating the corespondent scale change.

Current EWI keys

The thumb key have changed to have more octaves when you touch on different positions, which makes it the widest range in all wind iinstrument. However, the keys even in "Easy mode transpose", they did it in software setting which makes it hard to do it on the fly.

Explaination:

Removed confusing element like K02

Removed K05, K07, and made K06 a single function key, an on-the-fly sharp # (where the piece didn't transpose, but want an out of scale note)

Kept K11,K12,K13 to lower range extender without need to switch octave

Added an auxilary position onto every main key, depending on where the finger sits, it will press both mainkey/auxkey or only the main key, which result in a half note difference. So depending on the scale, fingers can sit at different position to avoid the need of constant assist of awkward position keys.

The K09 K08 natural half-note can be kept to accomodate the traditional habit, same for K08's lowering K01 half note (But not necessarily good to keep)

Without testing, the first problem I will foresee is that it made it actually harder for absolute beginners. There will not be a very clear fingering chart for every note, each note will probably have 3~4 fingerings.

Second problem is that the habit learned using this system can not be transferred back to traditional instrument.

However the obvious pro is that if there's transpose, the fingering can just do a small shift and use all natural fingering in scale. My speculation is it will be quite easier for intermediate to play different scales. (So it fits neither beginner nor master)

It's an attempt similar to the janko keyboard, which never beat the tradition.

How to test for now

Can use some mechanism to touch the touch screen

However, most current system can only have 10 touch points, will need to be clever all those auxilary keys how they trigger the touch points (As they will mechanically also press the main key).

The pro of this method is that the microphone of the phone can be used to capture the blowing

Also can have a separate arduino to have a lot of keys to feed signals from USB port (Probably a better way to start

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Minecraft%20Fill%20size%20Limit">

Nov 18 2020

Nov 18, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Minecraft%20Fill%20size%20Limit">Minecraft Fill size Limit

Reference: https://www.youtube.com/watch?v=uAb_RldOor8

Code: this replaces the 145 x 145 from y5 to y100, ~ means relative
/fill ~ ~ ~ ~145 ~ ~145 command_block{Command:"/fill ~ 5 ~ ~ 100 ~ grass replace",auto:1b} replace

Idea is replace with command block then each commandblock do its column which is well within the limit of 32768 blocks

Doing too much will be slow, but the job will be done

To leave other blocks, the outside replace can be replace x (eg: replace water / replace air)
/fill ~ ~ ~ ~145 ~ ~145 command_block{Command:"/fill ~ 5 ~ ~ 100 ~ grass replace",auto:1b} replace water

Replacing with grass block will end up getting destroyed, do not know if it is a bug or feature.

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/%20Liquid-Phase%20Exfoliation">

Nov 15 2020

Nov 15, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/%20Liquid-Phase%20Exfoliation"> Liquid-Phase Exfoliation

Seems the two ways to produce graphene that can be done in kitchens are tape and Liquid-Phase Exfoliation.

Tape method is very slow, probably can not produce enough to be useful

Liquid-Phase Exfoliation can be done in kitchen, but will need a lot of equipment and safety measures

Source

Exfoliated graphite

Solvent

40% alcholol in water

nmp

90% ethyl acetate 10% methanol (sabesto cleaner)

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/VPS%20slow%20VNC%20console%20performance">

Jul 22 2020

Jul 22, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/VPS%20slow%20VNC%20console%20performance">VPS slow VNC console performance

VPS problem:

Can't run sudo, terminal slow

Tried rebooting vps, changing network

Maybe need to change cloud to local and run vps as a jumpboard

Problem seems to be one of the Docker container is "robbing" the VNC command line port.

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Terraria%20Mods%2C%20technical%20explorations%2002">

Jun 30 2020

Jun 30, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Terraria%20Mods%2C%20technical%20explorations%2002">Terraria Mods, technical explorations 02

Existing big mods:

Throrium

Calamity

Quite a few famous ones: https://terraria.gamepedia.com/Mods

Seems right now my intention to pay tribute to other games isn't clashing with other famous mods.

Also seems prominent mods aren't open source as I would understand they want to have some control and not having copy all over the place.

https://github.com/tModLoader/tModLoader/wiki/Advanced-Vanilla-Code-Adaption For vanilla override, need to do this.

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Softether%20on%20OpenWRT%20Trick">

Jun 23 2020

Jun 23, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Softether%20on%20OpenWRT%20Trick">Softether on OpenWRT Trick

Reason that softether on OpenWRT lose settings on reboot is because it only saves config after stopping the service, so need to tunnel in and stop the service then reboot after reconfigure

Remember to set Virtual NAT+DHCP, or else windows client autodrop.

Update: The NAT+DHCP doesn't have to be on softether, create a tap device and use the host as NAT+DHCP is possible. Setting isolation mode in Softether will block host from forwarding packets.

Meaning:

Reverst VPN is possible

Have one server connect in and DSTNAT is possible

Static DHCP through OpenWRT also possible which is good as SoftEther's DHCP can't do static, which is bad for servers

IPv4 Address. . . . . . . . . . . : 192.168.X.X
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 0.0.0.0
Seems to be bacause how windows implemented, the DHCP server still performs normally ( has 255.255.x.x and a proper gateway )

Weird behaviour:

Having Router(Mikrotik) connect to the Softether and device connected to the Router also connect to Softether

The session list in softether seems OK

However, the tap device will confuse one of the device under the router with router itself, so DHCP will have some problem (how to solve?)

Workaround will be using a machine under the router to connect to the Softether to reverse VPN

Additional setup:

As routerOS still doesn't support advanced encryption of handshaking on SSTP, will open legacy L2TP just for routers.

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Prepare%20For%20IPV6">

Jun 23 2020

Jun 23, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Prepare%20For%20IPV6">Prepare For IPv6

As the device number grow, the infrastructure will eventually transition to IPv6, so it's good to prepare server to IPv6.

First step is actually to add IPv6 to DNS server

Iptable and rule needs to change for host VPS

Set the NGINX to be compatible with IPv6

Every docker container does have a IPv6 address, however there it might not just work

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Note%20for%20POLYUCS%20Edison%20Traffic%20Light">

Jun 12 2020

Jun 12, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Note%20for%20POLYUCS%20Edison%20Traffic%20Light">Note for POLYUCS Edison Traffic Light

Download package: Source Code for arduino (Currently hard coded)

Makes use of FreeWiFi via POLYU (with a workaround)

Makes use of mqtt.eclipse.org

Announce topic: POLYUCS/esp8266/shared/pub (will have start msg and ping msg)

Config topic: POLYUCS/esp8266/devices/ESP8266Client-bcddc22df583/pub

If switch device should then be : POLYUCS/esp8266/devices/<device-id>/pub

Worked on top of Clifford Choy's implementation

Commands and example:

Set sequence timer, in ms, d[green, greenblink, yellow, red]:
{
"c": "setTime",
"d": [5000,5000,5000,5000]
}

Set blink on off time, in ms, d[ontime, offtime]:
{
"c": "setBlink",
"d": [500,200]
}

Set brightness, d:0..255
{
"c": "setBrt",
"d": 128
}

Reboot, d:<a number hardcoded>
{
"c": "reboot",
"d": 1234
}

To change Defaults (Starting from Line405):
int brt = 255;
const unsigned long max_seq_time[] = {120000, 60000, 60000, 120000}; // for now not allowing more than 2 minutes
unsigned long seq_time[] = {20000, 5000, 4000, 25000}; // default green, blink, yellow, red
unsigned long blink_time[] = {400, 200};

MQTTBox settings:

Posted by Victor Zhang · Permalink

https://wiki.melissakronenberger.com:443/bin/view/Blog/Terraria%20Mods%2C%20technical%20explorations%2001">

Jun 11 2020

Jun 11, 2020

https://wiki.melissakronenberger.com:443/bin/view/Blog/Terraria%20Mods%2C%20technical%20explorations%2001">Terraria Mods, technical explorations 01

The tModLoader ships with Terraria, so it means now it updates automatically with steam

Need to look out for API changes

TModLoader all classes

Useful vanilla fields

I don't get why the document isn't with TModLoader APIs (even appendix)

Vanilla sound IDs

Examplemod somehow has an Error in ExampleCritter.cs, so had to download the source and recompile, rightnow muted the autoupdate override of the item, however still can't findout where the out of index comes from, error message stack trace:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at ExampleMod.NPCs.ExampleCritterNPC.HookStatue(ILContext il) in ExampleMod\NPCs\ExampleCritter.cs:line 0
at MonoMod.Cil.ILContext.Invoke(Manipulator manip)
at MonoMod.RuntimeDetour.ILHook.Context.InvokeManipulator(MethodDefinition def, Manipulator cb)
at MonoMod.RuntimeDetour.ILHook.Context.Refresh()
at MonoMod.RuntimeDetour.ILHook.Apply()
at MonoMod.RuntimeDetour.ILHook..ctor(MethodBase from, Manipulator manipulator, ILHookConfig& config)
at MonoMod.RuntimeDetour.HookGen.HookEndpoint._NewILHook(MethodBase from, Manipulator to)
at MonoMod.RuntimeDetour.HookGen.HookEndpoint._Add[TDelegate](Func`3 gen, TDelegate hookDelegate)
at MonoMod.RuntimeDetour.HookGen.HookEndpoint.Modify(Delegate hookDelegate)
at MonoMod.RuntimeDetour.HookGen.HookEndpointManager.Modify(MethodBase method, Delegate callback)
at IL.Terraria.Wiring.add_HitWireSingle(Manipulator )
at ExampleMod.NPCs.ExampleCritterNPC.Autoload(String& name) in ExampleMod\NPCs\ExampleCritter.cs:line 19
at Terraria.ModLoader.Mod.AutoloadNPC(Type type)
at Terraria.ModLoader.Mod.Autoload()
at Terraria.ModLoader.ModContent.<>c.<Load>b__38_0(Mod mod)
at Terraria.ModLoader.ModContent.LoadModContent(CancellationToken token, Action`1 loadAction)
at Terraria.ModLoader.ModContent.Load(CancellationToken token)
at Terraria.ModLoader.ModLoader.Load(CancellationToken token)

Seems no one else raises the issue on the issue page?

Need to pay follow the updates

Study on the example item:

The item sound seems inconsistant between when classify as weapon and when classify as connsumable(like potion), same sound id gives different sound, but managable, just need trial and error

Item will not be able to be consumed unless overriding UseItem and return true:public override bool UseItem(Player player){
return true;
}

Also , can have UseItem(Item item, Player player)

Player according to the vanilla field can not set currentHP, so there's probably no way to directly self-inflict damage

However, it might be possible to spawn an enemy projectile that does the damage and change world state

Did not find any world state extention method, but seems possible as vanilla has world fields, need to find how to extend them

Study on ExampleMod:

Chasing projectile possible, look at the wisp example.

Custom properties with mount might be possible

The example mount car has 3 balloons that can be damaged when player take damage, also in comment, syncing modplayer can even have functional use

Same reason, the mounted mg like metal-slug style might be achievable

Tilting with terrain seems not possible, it loads static spritesheet from <mount>_Back.png and <mount>_Front.png

Posted by Victor Zhang · Permalink

« Older posts | Newer posts »