00:00
00:00
Gimmick
Thanks for dropping by!
NOTE: My outbox is full, so I may not be able to reply to PMs directly - might PM a reply via my alt or through comments.

Student

Somewhere

Joined on 8/20/08

Level:
28
Exp Points:
8,430 / 8,700
Exp Rank:
4,725
Vote Power:
6.96 votes
Rank:
General
Global Rank:
402
Blams:
1,969
Saves:
23,283
B/P Bonus:
48%
Whistle:
Silver
Medals:
2,487

Gimmick's News

Posted by Gimmick - 4 days ago


I'll spare you all the details, here's the executive summary:

  • joined the local japanese conversation exchange in the beginning of the year
  • visited banff for the first time (yes, I really went half a decade without visiting banff despite being close to it, sue me)
  • faced a weird sort of crunch time at work
  • moved out of my old house
  • took the JLPT N4
  • vacations

not looking forward to getting back to work tbh


Tags:

2

Posted by Gimmick - June 18th, 2024


まとめ

一昨日2024年6月15日は僕が日本語を学び始めたから1年が経った。その時から学んだことはたくさんと思うけど、道はまだ長い。下記には理由、歴史(履歴混じってる)、方法など書いてある。


なぜ?

歴史話なんですけど、最初には私は日本語に興味がほとんどいなかった。たまたまアニメを見るときさえ全然気づかなかった。でも、聞いたことは一つだけだった:それは「この言語は超難しい」のだ。ファインマンの自伝、「ご冗談でしょう、ファインマンさん」に書いてあった。その言葉を汲み取るのはまだ子供のころだったーおそらく2009年に。


数年が経った。2015年に大学に入ったばかりか、兄と一緒にもう一度アニメを見ることになった。その時にアニメにも日本語にも興味を持ち始めた。でも、日本語は無理だと思うのは当然だった。なぜなら、それは今無意識な意見だったかもしれない。大学には日本語のコースがあったのに、私はフを選んだ。簡単だし、幼いころから両親はその言語を学ばせていた(その時まったく学べなかったくせに。)その語には興味も持つようになった。


ある日、「妄想代理人」を見始めた。そのOPにはとても感心。

iu_1223471_2555669.webp

漢字があったときにも、何か「あーこの言語がいつか学びたい」と思った。浅くてくだらない動機なんですけど、過去よりましだったかもしれない。


数年も経った。学士を取り、修士を狙ってカナダに行くことになり、あそこに住む場所は一番安いのを闇雲に選んだ。幸運かどうか、その場所は日本人の年を取った夫婦と一緒に同居だった。けど、私は全然考えなかった、ただ普通の生活を送った。行く前にフランス語には興味深いだったのに、学習に邪魔したからそれを結局やめた。


研究の挙句は修士を得て、すぐ働き始めて社会人になった。それは去年だった。でも、何か不満で物足りない気がした。毎日働き、そして夜までYoutubeで動画を見て繰り返した。楽しかったけど、不満がだんだん溜まっていた。


去年の誕生日のころは多くのことが起こった。要するに、複雑な気持ちが湧いてきた。多分寂しさやら退屈やら感謝やらけど、一瞬決めていた、日本語を学ぶことを。多分時間がたったのをついに気づいたかもしれない。でも、「この都合のいいところは二度とこない」とよく分かるようになった。日本人の同居人の大家さんたちに話せることは幸いなのだ。多分過去の意見はただ思い込みだった。後悔しないように。ああいうことと思って、覚悟ができた:これから日本語をできるだけ学ぶ。


TheMoeWayなどのサイトで資料もガイドも受け取って、一生懸命に勉強していた。まー、そう思うけど、多分現実は違う。ひらがなとカタカナを学び、二週間後Ankiで…もちろん、暗記しはじまり、同時に話を読んだり、アニメを視聴した。けど、こっそりでそうしていた。最初にばれたら多分水泡に帰するかもしれない(だって、お正月の後はみんな運動かどうか始めるのを告げるのに、短期の後は誰も続かないでしょう?)


3~4ヵ月の後でようやく告げられるようになった。その時はお婆さんの大家さんに練習した文。「実は、私は6月に日本語を勉強始めた」ー恥ずかしさのあまりにしどろもどろでもごもごと言ったのに、大家さんは嬉しそうで励ますように「日本語は上手です!」と言った(いや、全然と回答したのに。)


それから続行。毎日アニメを見たり、本や諸説を読んだりーーを繰り返した。大家さんも日本語でしゃべってくれた。だんだん上手ようになると思う。

現在、去年の予感した状況がようやく来てくる。原因も理由も多いけど、大家さんたちは今家を売って新しくて小さな家に引っ越すつもり、ましてや私も家探ししなけりゃ。できることもなくなってしょうがない。でも、言えることは一つ。


何一つ後悔はない。


どう?

上記のサイト、TheMoeWayには資料はたくさんある。僕はその「30DayGuide」をついた。まずはひらがな、そしてカタカナ、そしてAnkiで言葉と漢字を学んだ。月日が経つと別のこともした。例えば、最近ある和英言語交換エベントを毎回出席している。


アニメ

今まで見たアニメは:

  1. のんのんびより (Non Non Biyori):2023年7月3日に終わった
  2. ID: INVADED:2023年7月15日
  3. ハマトラ (Hamatora):2023年8月26日
  4. 僕だけがいない街 (ERASED):2023年10月19日
  5. ふらいんぐういち (Flying Witch):2023年10月8日?(よく分からない)
  6. 闘牌伝説アカギ 〜闇に舞い降りた天才〜 (Mahjongg Legend Akagi):2023年11月6日
  7. ひげを剃る、そして女子高生を拾う (Higehiro):2024年1月12日
  8. ひなまつり (Hinamatsuri):2024年1月17日
  9. ノラガミ (Noragami):2024年1月25日
  10. ヨルムンガンド (Jormungand):2024年2月11日
  11. この美術部には問題がある!(This art club has a problem!):2024年3月18日
  12. メカクシティアクターズ (Mekakucity Actors):2024年3月27日
  13. ブギーポップは笑わない (Boogiepop and Others):2024年4月2日
  14. サーバントサービス (Servant x Service):2024年4月13日
  15. ハコヅメ~交番女子の逆襲~ (Police in a Pod):2024年4月23日
  16. ブリーチ~千年血戦編~ (Bleach: TYBW):2024年5月2日
  17. ブリーチ~千年血戦編ー決別譚~(Bleach: TYBW The Separation):2024年5月2日
  18. デミちゃんは語りたい (Interviews with Monster Girls):2024年5月18日
  19. 刻刻 (Kokkoku):2024年5月28日
  20. 東京グール (Tokyo Ghoul):2024年6月1日
  21. 坂本ですが (Sakamoto Desu Ga):2024年6月11日
  22. 文豪ストレイドッグス (Bungou Stray Dogs):視聴中 (currently watching)


本:

Newgroundsの読書会のおかげで今年6+本を読むようにする!

  1. NPO Tadoku Graded Readers:2023年7月から2023年12月まで
  2. 時をかける少女 (The Girl who Leapt Across Time):2024年2月4日
  3. 魔上の宅急便 (Kiki's Delivery Service):2024年3月18日
  4. ハリーポッターと賢者の石 (Harry Potter and the Philosopher's Stone):2024年4月30日
  5. ⁂セーラー服と機関銃:2024年5月21日
  6. コンビニ人間 (Convenience Store Woman)*:2024年6月1日
  7. ⁂夜市+風の古道*:2024年6月17日


⁂:この本は英語に翻訳されていない (these books have not been translated into english)

*:ま読書会に投稿していない (haven't yet posted these to the reading club)


現代:

成果

一年後のできることは下記です。

  1. 1ヵ月後:ひらがなもカタカナが読める。でも、4ヵ月まで間違いは多い。
  2. 5ヵ月後:アニメを見る時に登場人物の言うことがたまたま分かる。難しいのに。時々喋れる。
  3. 7か月後:短編小説が読める。まー、辞書のおかげで。調べることも多い。しゃべるときに最初よりあんまり緊張していない。
  4. 10ヵ月後:見るアニメの字幕は大体読める。登場人物の言うことは辞書なし大体分かる。字(筆跡)がだんだん読めるようになる。
  5. 1年後:しゃべるときはほとんど緊張していない。たまたまだけです。もっと難しい本がだんだん読めるようになる。
  6. この先:あまり違いない。だんだんうまくなるかもしれないけど、進歩を測るのも難しくなる。去年よりらちが明かない気がするかもしれない。


欠陥

  1. 文法には時々間違う。凡ミスほど。
  2. 喋るときは長文がほとんど出ない。
  3. たまたま、相応の言葉を使わない。
  4. サイトを読むのはまだ難しい。
  5. まだ楽に人と語り合わない。


狙い

今年末、僕は日本語能力試験が受験したい。そこでN4かN3にたどり着いたらいい。N3はちょっとむずかしくなるかもしれないが。


ーーーーーー


ここまで読んでくれてありがとうございます!振り返ると、実際、大家さんたちには本当に感謝してお世話になっておりましたーー最初に私は別の家に引っ越したら、人生はどうなるかも。未だにも、日本語ができる想像できなっかた私はできるのが信じられない。未来はなんなんだ、誰も分からないけど、この1年間のことはとても楽しかった。


お互い頑張りましょう!


5

Posted by Gimmick - June 11th, 2024


I'm 26


(I just realized I made no post for when I turned 25. Oh well.)


1

Posted by Gimmick - January 12th, 2024


Je suis (un peu) triste de vous tous dire que je n'etudiera pas le francais tant qu'avant. Non, si je precise un peu, c'est que je ne veux pas ameliorer mon francais comme je faisais fin 2018-2019. J'essaiera a rester en forme, mais ca serait un peu difficile parce qu'il n'y a pas beaucoup de choses francaises qui m'interessent ces jours-ci. Alors, il se peut que mon niveau de francais diminue lentement de plus en plus. Ce qui m'a pris, par example, 10 minutes a ecrire peut maintenant prendre 15, ou 20.


I'm a bit sad to say that I won't be studying french as much as I had in the past. Well, to be more specific, I don't want to improve my french like I'd done at the end of 2018-2019. I'll try to keep in touch with the language, but it's gonna be a bit difficult because there aren't too many french(-related) things that interest me these days. So, it's possible that my level of french decreases slowly over time. Something that took me -- for example -- 10 minutes to write might now take 15, or 20.


Mais merde, je n'ai meme plus un clavier francais, donc tout ce que j'ecris c'est sans accents, circonflexes et tout ca. Bon, tout etant dit, je peux au moins dire que j'ai

  • pas tout oublie
  • eu du fun dans le passe en apprenant la langue

et peut-etre, a l'avenir il y aurait des opportunites a utiliser la langue plus frequemment ? Maintenant, meme en etant au Canada, je l'utilise presque jamais, parce que je vis dans un cite totalement anglo, donc il n'y a personne qui parle francais au quotidien autours de moi, ni besoin non plus.


Like hell, I don't even have a french keyboard anymore, so everything I'm writing has no accents, circumflexes or what-have-you. Well, all said and done, at least I can say that I've:

  • not forgotten everything
  • had fun in the past when learning the language

and maybe (just maybe) in the future there might be more opportunities to use the language more frequently? Now, even though I'm in Canada, I almost never use it, because I live in a city almost entirely anglophone, so there's almost nobody who speaks french around me in daily life, nor is there any need to speak french either.


Mais ce n'est pas la fin, en revanche, sachez qu'il y a toujours un debut. Mais ca c'est une autre histoire...


Tags:

4

Posted by Gimmick - March 19th, 2023


AT LONG LAST, LET'S FUCKING GOOOOOO

iu_925984_2555669.png

So this is what it feels like to win the lottery lol


Tags:

17

Posted by Gimmick - March 11th, 2023


In my previous newsposts I mentioned I'd been working on ASBoxer/HitShaper/name TBD, and, well looks like time can make a codebase degrade even if nothing's been done to it. It's almost a decade since I first started the project (and 4 years since I stopped working on it) and while the code is readable, it's of somewhat suspect quality.


The document class, main.as, has 7724 lines. 7724. While it's no yandere dev nightmare of if-else chains, and most of the code there serves a purpose (...mostly handling UI stuff...) it's still a warning as to why people shouldn't work on projects solo for continuous periods of time - when you get used to the code base, it can sprawl real quick. And sure, it's probably "necessary" in that there's no duplication, but splitting it off into different classes also felt wrong at the time?


In any case, this was my reaction in a nutshell (warning: loud)

I almost want to just open-source this and make this someone else's problem, but then I realize I'd be a) exposing others to my terrible code (and it's coded in AS3, so insert terrible pun about flashing others ahahaha) and b) nobody's gonna work on it.


Funnily enough the application works, it's just a few parts here and there that are borked to the high heavens. Unfortunately those are the core parts to until I fix those, it's just a shiny user interface and not much else.


Posted by Gimmick - August 3rd, 2022


I'm learning Godot 4! Or at least, as much as I can given all the other stuff on my plate, haha.


I'm definitely going about it in a very roundabout way that I don't really recommend for others, given that I've always learnt this way and others may find it better to learn in a systematic manner. So I'm getting started with Godot scripting and coming from an AS2/3 background, I'm finding a lot of similarities between Godot's event system and Flash's event system. It's not surprising since both use a tree-like structure (Flash uses the Display List, whereas Godot uses Nodes, but both are effectively the same as the Document Object Model).


This newspost is an attempt to document the equivalent events / methods when moving from Flash to Godot. It's highly likely that I'll be proven wrong about my initial assumptions as I use the engine more, which is why this isn't a thread in the Game Development Forum yet.


Each bullet point in the sections below shows the event as it is named in Flash (AS3), with the AS2 equivalent (if available) and the Godot equivalent following it. All Godot examples use GDScript.



Constructor

public function ClassName() {
    //init
}

AS2:

onClipEvent(load) {
    //init
}

Godot:

func _init():
    pass

Event.ENTER_FRAME

import flash.events.Event;
function run_every_frame(evt:Event):void {
    //run
}
sprite.addEventListener(Event.ENTER_FRAME, run_every_frame)

AS2:

onClipEvent(enterFrame) {
    //run
}

Godot:

func _process(delta) -> void:
    pass

(There's also _physics_process(delta) which is independent of frame rate, but the direct equivalent is just _process since almost everything in Flash is dependent on the frame rate)


Event.ADDED

Triggered whenever a DisplayObject is added as a child of a DisplayObjectContainer, regardless of whether they are on a Stage or not.

import flash.events.Event;
function added_to_other_mc(evt:Event):void {
    //added to other mc
}
sprite.addEventListener(Event.ADDED, added_to_other_mc)

AS2: N/A

Godot: The direct equivalent appears to be "NOTIFICATION_PARENTED"

func _notification(id) -> void:
    match id:
        NOTIFICATION_PARENTED:
            pass

Event.REMOVED

The counterpart to Event.ADDED. Like ADDED, does not require the DisplayObjectContainer to be on a Stage or not. However, this is -for some reason- triggered before the object is removed, rather than after. This has historically lead to some hacks involving Timers or ENTER_FRAME events when running code after it is removed. A better name would have been "Event.REMOVING" as that could have also allowed it to be cancelable, but...oh well.

import flash.events.Event;
function removed_from_other_mc(evt:Event):void {
    //will be removed
}
sprite.addEventListener(Event.REMOVED, removed_from_other_mc)

AS2: N/A

Godot: It appears NOTIFICATION_UNPARENTED is the closest equivalent. I'm not sure whether this runs before or after the node is removed from its parent. Looking at the docs, it appears to be run after it is removed, but I haven't run it to verify.

func _notification(id) -> void:
    match id:
        NOTIFICATION_UNPARENTED:
            pass

Event.ADDED_TO_STAGE

Triggered when a DisplayObject is added to a Stage (yes, multiple Stages can exist in Adobe AIR, and this triggers whenever it is added to any of them)

import flash.events.Event;
function added_to_stage(evt:Event):void {
    //added to stage
}
sprite.addEventListener(Event.ADDED_TO_STAGE, added_to_stage)

AS2: I believe onClipEvent(load) does the same thing here, but the reference says onLoad runs whenever a MovieClip is added to the Stage (there's only 1 in AS2).

movieClip.onLoad = function() {
    //added to stage
}

Godot: Looks like _ready is the main equivalent here.

func _ready():
    # added to scene
    pass


I might add more as I work with Godot more. Depends on how much time I can afford to put into this right now.


First impressions: GDScript and Godot seem to be very clean and minimalistic in terms of verbosity. I think the design philosophy of Godot is that each Node has only 1 script and so an event system like Flash's doesn't make much sense in this context, but looking at the _notification function, it seems a bit clunky to have a sort of "master" function that gets an ID and then delegates it to other functions / branches. Of course, I'm biased towards how AS3 does it, but I think something like an

addListener(NOTIFICATION_ID, function)

might have been cleaner here. Looks like time will tell as I get used to GDScript.


Update: So it seems like Signals in GDScript are the equivalent of Listeners in AS3. However, I'm unsure as to why there's both signals and notifications. It sounds like it would be better to have just signals be used, with each Node subscribing to notifications the same way they would signals...but I'm not sure if or why that's not done.


Tags:

5

Posted by Gimmick - June 11th, 2022


i'm 24


2

Posted by Gimmick - March 19th, 2022


What is this?

I had a discussion with @The-Great-One a while ago on how to make editing the Newgrounds Tank Tribune easier. In my experience, VS Code is a very good text editor with a load of features designed not only for editing code - despite the misleading name - but also for more general-purpose text editing like Notepad++ and others.


That being said, this CAN be used for making newgrounds News and Forum posts! I’ll show the process below. In my initial comment I had suggested using Pandoc, but turns out it wasn’t needed either because of a set of fortuitous circumstances!


Fortunate circumstances

That is, I had assumed that ‘RTF’ was the only format that Newgrounds supported. Turns out it also supports HTML; this is great because it vastly simplifies our workflow - the default Preview in VS Code for “AsciiDoc” can be used - so you can copy the generated preview and paste it directly into the newspost box!


Here’s the process for creating a News post using just VS Code and AsciiDoc:

  1. Install VS Code, and install the AsciiDoc extension.
  • Press Ctrl+Shift+X to open the Extensions panel, and search for AsciiDoc (install the one by asciidoctor)
  1. Create a blank file and type up the content using asciidoc. This is fairly straightforward if you have a decent grasp of asciidoc already, but given that it’s not as common as markdown there’s going to be a short learning curve attached.
  • If you need syntax highlighting to make it easier - see the option in the status bar at the bottom right corner that says Plain Text? Click on it, and type AsciiDoc. It’ll then highlight valid asciidoc syntax where it can.
  • Here’s a quick reference for AsciiDoc.
  1. Press Ctrl+Shift+V to open up the preview.
  • Alternatively, press Ctrl+Shift+P to open up the Command Palette, and type asciidoc open preview or similar.
  1. Select all the text and copy it: Ctrl+A, Ctrl+C
  2. Open up the newgrounds news post page and paste the contents in the text box.
  3. Voila, you’ve converted asciidoc to a newgrounds post!


Press Ctrl+Space to open up a list of the frequently used words using IntelliSense. This will open up a list of frequently used words, which is especially useful if you’re repeating them, e.g. in the case of usernames.


Including images works! Unlike markdown, asciidoc has the option :data_uri: directive which means that all images will be embedded using data URIs, so you can copy those directly into the newspost. Just remember to include it in the top of every doc, just below the main header, and you’re good to go. The only downside is that large images can make the preview take a while to generate, because it’s effectively converting it to text. Still, that’s a small price to pay for the convenience!


Caveats

Unfortunately, IntelliSense/Ctrl+Space does not seem to work well with usernames with hyphens in them, and it doesn’t recognize the @ as belonging to a username mention, as it only seems to look for whole words in a programming context (i.e. variable name rules - words_separated_by_underscores are treated as one, but words-separated-by-hyphens are not; @ is not considered a standard part of a variable, so it doesn’t show words that begin with an @ like @Gimmick or @The-Great-One on Ctrl+Space)


Videos aren’t supported, period - those will have to be embedded manually. Even though AsciiDoc supports embedding videos, it won’t be ported to the newspost because the embed metadata is stripped when copying the text from the preview. Unless Newgrounds supports uploading AsciiDoc files for posts, it’s not likely that you’ll have newsposts achieve 100% asciidoc → news post feature parity (although 90% isn’t bad).


Also, paragraph info is stripped out when you copy from the preview to the post. That is, empty lines are stripped from the clipboard when pasting into the file. As a workaround, you can have empty lines by pasting {sp} + into a new line between each paragraph. Perhaps this will be less inconvenient in the future if blank lines are included between paragraphs when copying HTML into the newspost box.


Finally, the preview includes a "Last Created at <date>" footer which is also selected when you select all text. You’ll need to remove that manually.


Closing thoughts

This section is primarily addressed to @The-Great-One, as it concerns the Tank Tribune.


Hopefully this speeds up your workflow a lot, especially if you make an asciidoc template. And what better way to prove it’s possible than by dogfooding? Yes, you read that right - this entire post (title notwithstanding as that’s a separate text field) has been written using the above steps.


And to help you get started, I’ve included a template of last week’s Tank Tribune so that you can get an idea of how it works! Alternatively, just replace the text in the paragraphs with content for the upcoming weeks.


There’s obviously far better templates that could be made but this is a starting point. (Someone experienced with AsciiDoctor could probably make a far better one, and would probably also be appalled with the one I threw together.) Download the repo as a zip, extract the files to a folder and open the .adoc file in VS Code and you can get started editing right away.


DOWNLOAD TEMPLATE


Tags:

3

Posted by Gimmick - June 10th, 2021


i'm 23


14