From 325ca2ec09475a0d035333094a726ae4236238d4 Mon Sep 17 00:00:00 2001 From: chimchooree Date: Sat, 13 Mar 2021 19:18:06 -0600 Subject: [PATCH] working on XML still but everything else is fine --- src/diary/entries/210304 | 4 +- src/diary/entries/210318 | 30 +++++++ src/diary/entries/210401 | 15 ++++ src/diary/entries/extra/agile | 153 ++++++++++++++++++++++++++++++++ src/diary/entries/extra/ideabox | 23 ++++- src/diary/entries/extra/patreon | 22 +++++ src/index.py | 96 ++++++++++++++++++++ src/static/css/nothing.css | 0 src/static/xml/rss.xml | 100 +++++++++++++++++++++ src/views/contact.tpl | 10 +-- src/views/presskit.tpl | 2 +- src/views/rss.tpl | 15 ++++ 12 files changed, 462 insertions(+), 8 deletions(-) create mode 100644 src/diary/entries/210318 create mode 100644 src/diary/entries/extra/agile create mode 100644 src/diary/entries/extra/patreon create mode 100755 src/static/css/nothing.css create mode 100644 src/static/xml/rss.xml create mode 100644 src/views/rss.tpl diff --git a/src/diary/entries/210304 b/src/diary/entries/210304 index 4f1715b..56f379d 100644 --- a/src/diary/entries/210304 +++ b/src/diary/entries/210304 @@ -3,7 +3,7 @@ march 4, 2021
#godotengine #json #python

-Similar to Magic: The Gathering and Guild Wars 1, the functionality of my skills is composed of keywords. For instance, a skill with the 'damage' keyword + 'bleeding' keyword will inflict pure damage + a bleeding status effect.
+Similar to Magic: The Gathering cards, the functionality of my skills is composed of keywords. For instance, a skill with the 'damage' keyword + 'bleeding' keyword will inflict pure damage + a bleeding status effect.

Since skills derive their effects from existing keywords, each individual skill has very little to no unique code. Repetitive, formulaic tasks are better left to scripts, so I wrote a skillmaker to write skills for me.

@@ -137,3 +137,5 @@ The output is a nested directory of all the skills, so I can just copy + paste t
If I only had ten or eleven skills, then probably not. I'm planning on having around 40 skills per class, though, and I'm only one person. Since the skills are very formulaic, I'd rather have Python do all the copying + pasting for me while I worry about what makes my skills unique!

+last updated March 6, 2021
+
diff --git a/src/diary/entries/210318 b/src/diary/entries/210318 new file mode 100644 index 0000000..1ce8352 --- /dev/null +++ b/src/diary/entries/210318 @@ -0,0 +1,30 @@ + +

making an rss feed

+march 18, 2021
+#rss #webdev
+
+After a few months of quietly running my blog as practice, I want to start sharing my articles with other people. I looked over my favorite gamedev communities and saw that GameDev.net apparently allows you syndicate a blog through RSS. I never thought about making an RSS feed, so why not?
+
+

what is RSS?


+Before the massive centralized content platforms came into the mainstream, the internet was more like a constellation of individual websites. In lieue of algorithm-driven feeds + push notifications from major social media, RSS was designed to bring content from individuals into one place.
+
+RSS and its predecessors have been around since the 90s. RSS 2.0 (what blessfrey.me uses) was published in 2002. Even through it's old and falling in popularity, it's still used by some large aggregator websites today like Google News
and Spotify.
+
+RSS files themselves are written in XML. They should contain the latest 10-15 entries with their things like their title, link, summary, date, and author.
+
+

how to make an RSS feed


+Blogging platforms like WordPress already take care of the RSS feed, but there's no shortage of third-party RSS creators on the internet. Since I have already written code to display + summarize my articles on the diary page, the 'latest' box in the diary's sidebar, and the 'news' box on the index page, I'm confident the process for generating an XML file with the same info won't too different.
+
+Apparely I need a DOM or ElementTree or something +

examples of RSS feeds


+Here's a few examples from around the internet:
+ +
diff --git a/src/diary/entries/210401 b/src/diary/entries/210401 index b5fc651..4304886 100644 --- a/src/diary/entries/210401 +++ b/src/diary/entries/210401 @@ -32,3 +32,18 @@ april 1, 2021
  • Made the credits more compliant with Godot Engine's Complying with Licenses page.

  • +

    friday, march 5

    + +
    +

    saturday, march 6

    + +
    diff --git a/src/diary/entries/extra/agile b/src/diary/entries/extra/agile new file mode 100644 index 0000000..07d8410 --- /dev/null +++ b/src/diary/entries/extra/agile @@ -0,0 +1,153 @@ +Finish your project with Spiral + AGILE + +Hello. I'm learning gamedev, and teaching is part of learning. I hope sharing my notes on process helps a little. + +Do you never actually finish projects? Software methodologies draw a road map to release something. + +Videogames are complex and potentially neverending projects without limitations and a thoughtful approach. Exploratory programming can be enlightening, but a lack of limitations leads to nothing anyone will ever use. Moving forward with a clear process reduces the risk of the feature creep, too much complexity, and scope issues that leads to delays and project abandonment. There are a number of software methodologies that help manage software projects in particular. I’m using a spiral methodology with AGILE. + +Spiral + +Spiral methodology’s name is self-explanatory – You work through iterative cycles of planning, risk management, developing, refactoring, and testing. You will naturally discover flaws in your original design or be inspired to add new features throughout the project, so you can always go back to the planning phase to properly consider them. If you are trying to force a solution through code, you can return to planning. You test early and often, gaining insight from yourself and playtesters on shortcomings and successes of your design and execution. You refactor periodically to reduce complexity and review your code critically, which paves the way for smoother development in the future. You also are encouraged to keep moving – you can’t over-analyze, overdo, over-optimize any particular step of the process. + +Stage 1 is Planning by setting objectives, considering alternatives, and setting constraints. Stage 2 is Risk Management. Emphasize uncertain features when prototyping. Stage 3 is development and testing. Stage 4 is Evaluating. And back to Stage 1. + +AGILE + +AGILE is used by big important tech companies like IBM. It’s cyclical with consistent time-frames (called “sprints”) of planning, working, and evaluating. It’s different from spiral, though, as AGILE is more of a philosophy. At the end of a sprint, every team member is encouraged to review every part of the process as a group. Everyone stands up. Everyone talks candidly for a few minutes. Consider the value of your design, your tools, the length of the sprints, the nature of the review itself, everything. If any part of the process is flawed, catch it and change it early. Be flexible in your pursuit of the best process for the team. + +MVP + +Together, using a spiral methodology with AGILE, you should shoot for a minimum viable product (MVP). This could be a vertical slide, a horizontal slice, a demo, or something functional like that. Approach your project how Bob Ross approaches a painting. He doesn’t spend a season on a little tree in the corner; he works the whole canvas and builds on his happy accidents. Find the joy of programming. Your game should be playable as soon as possible – maybe ugly and dumb and pointless but playable. At any step, no matter how far you are from finishing, have something that works as a finished project. + +To do that, you need to decide what the most essential and defining features of your game are and work on them first. Move on to less essential features as time goes on until your game’s done. Or until you’re done working on it. Either way, you’ll have a playable game to offer people. + +Prototype + +If you're not even sure if your game is fun or possible, it's better to quickly test with a prototype. You can find a way to abstract your problem or distill it into something smaller to build or present to potential players. Use cut paper, quick sketches, action figures, free tilesets, whatever can represent your game cheaply and quickly. Maybe you can build a board or card game on paper that demonstrates your mechanic. Maybe you can make a room in your engine and spawn in too many items to test performance. Maybe you can share some key concept art or mockups with potential players and gauge responses. If you don't like your results, it's way easier to edit 20 minutes of construction paper than six months of production code. + +When is my concept ready? + +Your concept is all of your interesting ideas for your game. If it sounds like a fun game with concrete features, you’re ready. + +I keep my ideas in a personal wiki so I can see the inter-connectivity of my concepts. I also jot notes into a notes app on my phone. Writing it down is always better than keeping it floating in your head. + +Make your concept actionable + +Next, reword your concept into a series of unambiguous items that can be demonstrated clearly through your code. These are functional requirements. There are nonfunctional requirements, too, including the target framerate on specific hardware or the paradigm necessary to make modding more accessible. Just start writing them out in bullet points. You don’t need to know all your function requirements yet, and you will have to rework parts of your project later anyways. If you use an iterative methodology, you’ll return to evaluating and planning phases plenty of times before release. + +Pick a theme + +Build your first functional requirements around a theme that is central to your game. I think AGILE calls it a story. For an RPG, it could be combat, maybe characters… Give each requirement a code to make them easily track-able. + +Code your list + +I start with character. Down the list, I name them AA, AB, AC, AD… + +Functional Requirements - Character + +• AA - A character has a name. Demonstrate that a character has a name by making a character and printing its name. + +• AB - In a game, there can be multiple characters. Demonstrate that you can add a character and remove a character by printing the names of the existing characters. + +• AC - A character can have abilities. The abilities belong to the character. Demonstrate by having multiple characters and printing their names and abilities. + +• AD - There is a pool of abilities the character knows. There are abilities that they have equipped. Demonstrate by printing the abilities they know and the abilities they have equipped with their name. + +• AE - Abilities can be added or removed from a character. Demonstrate by printing the list of abilities you know and the list of abilities you're using. Then add a new ability from the list you know to the list you are using and print the list of abilities you're using. + +• AF - A character may not know all the possible abilities. Demonstrate by listing all of the abilities in the game. Then list all the abilities the character knows. + +• AG - The character can't use abilities he doesn't know. Demonstrate by trying to add an ability from the list of all abilities in the game that the character doesn't know to the list of abilities the character is using. Print that you cannot do that. + +• AH - The character can't have the same ability equipped more than once. Demonstrate by trying to add an ability the character already has equipped. Remove original from the slot it is in and add new ability to that slot. Print abilities character is using. + +• AI - Skills go in slots and slots can be empty. Demonstrate by having no abilities in the character's slots and printing the list of skills the character is using. Put abilities in the slots and print what abilities is in each slot. Remove abilities from the slots and print what abilities is in each slot. + +• AJ - When putting a skill in a slot that already has a skill, the skill is replaced. Demonstrate by having a skill in a slot then putting a new skill in that slot. Print the skill that is in that slot. + +• AK - An item has a name. Demonstrate by printing an item's name. + +• AL - There are items that can be put in a character's inventory. Demonstrate by adding an item to the character's inventory then printing what is in the inventory. + +•AM - Characters have equipment slots. Demonstrate by adding an item to the equipment slots then printing what is in the equipment slots. + +Rate by difficulty + +Next, assign a difficulty level to each item. Do not focus on what you know; focus on what you do not know. The goal is to express your unknowns about the task. If you need to remember how to meet a requirement, if you don’t know how to do a requirement, if you need to learn new tools in order to meet a requirement, you’ll face varying levels of unknowns. Unknowns increase risk, so they increase your difficulty rating. + +I use Fibonacci numbers (1, 2, 3, 5, 8, 13,...) to represent difficulty levels. 1 is no problem at all, 3 is easy but with vague uncertainty, 13 has uncertainties upon uncertainties and should be broken into less risky tasks, etc. + +There are two methods to rating difficulty. Assign your lowest difficult value to the easiest item on the list. (That’s what I do.) Or, find an item with an average difficulty relative to your list and assign it a middle number. If you are working on a team, you need to vote on each rating. The rating should represent the difficulty of the items for your team because you have not assigned individual work yet. Next, rate the other items relative to the it. If anything is rated conspicuously high, see if it can be broken into smaller, more manageable items. + +This is an entirely subjective estimate. Don’t worry too much about the exact difficulty you assign – just approximate it. You’ll give more accurate and meaningful ratings with practice. + +Choose length of sprints + +Choose a time-frame with enough time to get practical work done that is still granular. Don’t worry too much about the perfect length of time – you can always change the length of sprints at the next evaluation phase. I choose a week. + +Choose this sprint’s functional requirements + +Using the difficulty ratings, determine what is a week’s worth of work. Obviously, you can only pick items with prerequisites if you are also doing the prerequisites during the same sprint. Use the ratings to avoid being overwhelmed. You’ll get better using your ratings with practice. + +For a real company, you take this list and do it and no more for the duration of the sprint. You have other team members, other teams, clients, and all kinds of people who rely on the schedule. Disrupting that hurts the process of other people. If it’s just you or your team is small, you have more freedom to adjust your schedule if you severely misjudge the difficulty of your work. I finished the “week’s” worth of work in a few hours and was able to just add more requirements since it’s just me. + +My initial first week’s requirements... + +• (1) – AA - A character has a name. Demonstrate that a character has a name by making a character and printing its name. + +• (3) – AB - In a game, there can be multiple characters. Demonstrate that you can add a character and remove a character by printing the names of the existing characters. + +• (5) – AC - A character can have abilities. The abilities belong to the character. Demonstrate by having multiple characters and printing their names and abilities. + +• (5) – AD - There is a pool of abilities the character knows. There are abilities that they have equipped. Demonstrate by printing the abilities they know and the abilities they have equipped with their name. + +• (8) – AE - Abilities can be added or removed from a character. Demonstrate by printing the list of abilities you know and the list of abilities you're using. Then add a new ability from the list you know to the list you are using and print the list of abilities you're using. + +Next, write code that meets the requirements. Here’s some output that demonstrates meeting the requirements: + +Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 + +Type "copyright", "credits" or "license()" for more information. + +>>> + +========== RESTART: C:\Users\Toma\Pythons\Dungeon_Girls\src\game.py ========== + +AA: A character has a name: Chloe + +AB: There can be multiple characters. + +AB: Characters: [Chloe, Willa] + +AB: You can add a character. + +AB: Characters: [Chloe, Willa, Destry, Eden] + +AB: You can remove a character. + +AB: Characters: [Chloe, Willa, Destry] + +AC: Characters can know skills. Chloe: [Cure, Summon Archangel, Candlelight] & Willa: [Fireball, Demonspeak] + +AD: Characters can know skills and have skills equipped. + +AD:Chloe's library: [Cure, Summon Archangel, Candlelight] & skillbar: [None, Summon Archangel, Cure, Candlelight, None] + +AE: Skills can be added to a character. + +AE: Chloe: [Identify, Summon Archangel, Cure, Candlelight, None] + +AE: Skills can be removed from a character. + +AE: Chloe: [Identify, Summon Archangel, Cure, None, None] + +>>> + +Then you'll be able to evaluate your code and process, plan your next steps, maybe prototype something, maybe develop something, maybe refactor something, test, and continue the spiral. If you follow a methodology, I think your chances of finishing at least something is pretty good. + + + +Thanks for reading. + +Follow for more game development on Twitter @lilchimchooree. diff --git a/src/diary/entries/extra/ideabox b/src/diary/entries/extra/ideabox index 2de4ebe..eb790f1 100644 --- a/src/diary/entries/extra/ideabox +++ b/src/diary/entries/extra/ideabox @@ -27,6 +27,7 @@ bandit king basil bell tower birthday dress +birthday girl birthstone black bear black market @@ -42,6 +43,7 @@ blue blood blue rose bluebell bonfire +bossa nova box garden breath of life bubble bath @@ -72,6 +74,7 @@ chalcedony chameleon chamomile chandelier +chant charmeuse cheese bread chiffon @@ -86,6 +89,7 @@ citrine city of the dead clipart clover +cloud gray cobweb coin flip cold iron @@ -109,6 +113,7 @@ dark hour dark paradise death's-head hawkmoth deep space +denarius diadem Diana diorama @@ -121,6 +126,7 @@ double life dragonfruit dragonstone dreamweaver +dryad dump truck Dymer dystopia @@ -129,6 +135,7 @@ edelweiss egg hunt El Dorado elemental +elf elipse elixir of life emberlight @@ -145,6 +152,7 @@ fairy lights fairy ring faun favored soul +feather femme covert femme fatale fiery sword @@ -153,7 +161,7 @@ fire opal firebrand fishing village floating -flower woman +flower girl flying folklore fountain of youth @@ -182,6 +190,7 @@ gold standard golden apple golden orb weaver golem +Grand Canyon gray weather griffon grove @@ -193,6 +202,7 @@ hand of God the hanged man hanging garden happy place +haunted haunted house headscarf heart @@ -228,6 +238,7 @@ kaleidoscope kesi silk kigurumi kingdom +koi pond La Belle Sans Merci labyrinth lady cat @@ -245,6 +256,7 @@ lighthouse lily lip gloss lip oil +litany Little Red Riding Hood lizardman lobster @@ -310,7 +322,9 @@ mural muse naga necromancer +nectar nightlight +nightmare nocturnality nymph oneiromancer @@ -323,6 +337,7 @@ orb orchid orichalcum orphan +painted lady palace panda eyes paper crane @@ -361,8 +376,10 @@ proverb psalm pseudonym pumpkin carving +qirin quiz show rainbow +rainy day raw honey reaper reclining woman @@ -405,6 +422,7 @@ sheep shipwreck shoegaze shooting star +shoujo manga silk silk embroidery singing sword @@ -425,6 +443,7 @@ spellbook spelunking spice cookie spiderweb +spire spirit animal spy stained-glass @@ -438,6 +457,7 @@ stinky cat stone circle stone face stone people +stonewash storm cloud strawberries and cream strawberry blonde @@ -456,6 +476,7 @@ terrarium three women tide pool tiger's eye +time traveler toasted marshmallow topaz topiary diff --git a/src/diary/entries/extra/patreon b/src/diary/entries/extra/patreon new file mode 100644 index 0000000..a04fa5b --- /dev/null +++ b/src/diary/entries/extra/patreon @@ -0,0 +1,22 @@ +Hello! +I'm chimchooree, the dev behind the Dungeon Girls RPG. Right now, it's just me handling the programming, pixel art, animations, and story-writing during my free-time. + +What's Dungeon Girls? +Dungeon Girls - Active development Dungeon Girls is an after-school RPG that encourages experimenting with skills and making your class fit your play-style. Play smartphone apps while your friends gear up at the shopping center before jumping into the local dungeon. + +Gameplay - You will make AI companions and rely on managing your team's skillsets to find creative strategies for combat and environmental puzzle solving. Each character's skillbar has limited slots and can only be modified in safe areas. You will build your skillbar based on the enemies' weaknesses, party needs, and skill synergies. Skills are not only useful in combat. Use skills to gain deeper interactions with NPCs, explore the map, and craft useful items. + +When you're not fighting, hang out with friends, keep up with schoolwork, and uncover the mystery of the town. + +Explain the Tiers +My tiers are simple and help keep the game development flowing. Documenting, reflecting, and planning is part of my natural process. It helps keep my vision consistent. I hope you appreciate the behind-the-scenes look. + +Visitor - Everyone can read my blog and see pictures I upload. +$1 Fireball - Gain access to voting in polls. +$5 Alchemy - Receive a monthly micro webzine of my progress, whether it's in coding, art, animation, or planning. I already keep a daily diary on my computer, so I will edit for interest and make it a little pretty for you. +All patrons can participate in closed and open betas during beta periods. I need lots of different kinds of people to test the game. Contact me with bugs and if any part of the game feels awkward, ugly, or confusing. You'll help me polish the game. If you have any ideas, suggestions, or feedback, I'd love to hear it! +All patrons receive a game key on the platform of their choice whenever I release a game. + +What's Patreon? +Patreon manages monthly payments in exchange for perks. If you're looking for a one-time tip jar, try https://ko-fi.com/chimchooree. +Have a nice day! diff --git a/src/index.py b/src/index.py index eaa2d8b..565c085 100644 --- a/src/index.py +++ b/src/index.py @@ -1,6 +1,75 @@ import datetime, os, re from bottle import error, response, route, run, static_file, template, TEMPLATE_PATH +def clean_tags(raw): + cleanr = re.compile('<.*?>') + cleantext = re.sub(cleanr, '', raw) + return cleantext + +# rss feed + +# RSS Generation +def make_rss(): + loc = 'diary/entries/' + list_items(gather_and_sort(loc)[0:15]) + info = {'items': list_items(gather_and_sort(loc)[0:15])} + +# Delete old version +def clear_file(f_name): + if os.path.exists(f_name): + print("removing " + f_name) + os.remove(f_name) + f = open(f_name, 'a+') + +# Return list of items using list of articles +def list_items(articles): + f_name = "static/xml/rss.xml" + loc2 = 'https://www.blessfrey.me/' + loc = 'diary/entries/' + loc3 = loc2 + loc + result = [] + + for article in articles: + path = loc + article + text = [] + a = [] + length = 0 + text = article2list(article, loc) + a.append(find_title(text)) + a.append(find_url(path)) + a.append(clean_tags(prepare_rss_summary(text, path))) + a.append(find_timestamp(text)) + result.append(a) + + clear_file(f_name) + f = open(f_name, 'w') + f.write("" + '\n') + f.write("" + '\n') + f.write("" + '\n') + f.write("blessfrey.me" + '\n') + f.write("chimchooree's dev space" + '\n') + f.write("https://www.blessfrey.me/" + '\n') + f.write("en-us" + '\n') + f.write("chimchooree@mail.com" + '\n') + + for r in result: + f.write("" + '\n') + f.write("" + r[0] + "" + '\n') + f.write("" + loc3 + r[1] + "" + '\n') + f.write("" + r[2] + "" + '\n') + #f.write("en-US" + '\n') + f.write("" + "Mon, 22 Feb 2021 19:01 EST"+ "" + '\n')#r[3].replace('\n','') + "" + '\n') + #f.write("chimchooree" + '\n') + f.write("" + '\n') + + f.write("" + '\n') + f.write("" + '\n') + f.close() + + return result + +# recommendations + def list_rec(page): loc = 'diary/entries/' result = [] @@ -119,6 +188,13 @@ def find_content(text): pos += 1 return content +# Snip article and close any open list tags +def prepare_rss_summary(text, path): + content = snip_sentence(find_content(text), path) + if content.count(''): + content += '' + return content + # Snip article and close any open list tags def prepare_article(text, path): content = snip_article(find_content(text), path) @@ -142,6 +218,14 @@ def clean(result): result = result.replace('','') return result +# Return first two sentences of article + " ... " +def snip_sentence(article, path): + article = clean(article) + limit = 100 + result = article[0:min(len(article),limit)] + result = result.rsplit(' ',1)[0] + return result + " ... " + # Return first 300 words of article + " ... " def snip_article(article, path): article = clean(article) @@ -205,6 +289,11 @@ def serve_img(filename): def serve_extra(filename): return static_file(filename, root='static/extra', mimetype='text/plain', download=True) +# Serve XML +@route('/static/xml/')#re:.*\.xml>') +def serve_xml(filename): + return static_file(filename, root='static/xml', mimetype='text/xml') + ## Routes ## # 404 Error Page @@ -306,7 +395,14 @@ def ideabox(): info = {'css': 'box', 'title': 'blessfrey - idea box - a collection of inspiring concepts', 'words': fill_ideabox(), 'limit': 5, 'year': datetime.datetime.now()} return template('ideabox.tpl', info) +# RSS feed +#@route('/rss') +#def rss(): +# """rss feed""" +# return static_file("static/xml/rss.xml", root='static/xml', mimetype='text/xml') + ## Main ## if __name__ == '__main__': + make_rss() run(host='127.0.0.1', port=9001) diff --git a/src/static/css/nothing.css b/src/static/css/nothing.css new file mode 100755 index 0000000..e69de29 diff --git a/src/static/xml/rss.xml b/src/static/xml/rss.xml new file mode 100644 index 0000000..197b64e --- /dev/null +++ b/src/static/xml/rss.xml @@ -0,0 +1,100 @@ + + + +blessfrey.me +chimchooree's dev space +https://www.blessfrey.me/ +en-us +chimchooree@mail.com + +python writes my skills for me +https://www.blessfrey.me/diary/entries//diary/entries/210304 +Similar to Magic: The Gathering cards, the functionality of my skills is composed of keywords. For ... +Mon, 22 Feb 2021 19:01 EST + + +february 2020: AI +https://www.blessfrey.me/diary/entries//diary/entries/210301 +I just feel like rambling about games. week 1, february 1-6 #design #localization #writing tuesday, ... +Mon, 22 Feb 2021 19:01 EST + + +refactoring characters: black box +https://www.blessfrey.me/diary/entries//diary/entries/210218 +The character script was one of blessfrey's first scripts. Since it's never seen a serious ... +Mon, 22 Feb 2021 19:01 EST + + +new year's resolution - making the most of 2021 +https://www.blessfrey.me/diary/entries//diary/entries/210204 +Everyone had difficulties during 2020. A small part of that was losing my energy for programming ... +Mon, 22 Feb 2021 19:01 EST + + +january 2020: new year +https://www.blessfrey.me/diary/entries//diary/entries/210201 +week 1, january 1-2 friday, january 1 - New Year's2020 is over. Things probably won't be ... +Mon, 22 Feb 2021 19:01 EST + + +web development resources +https://www.blessfrey.me/diary/entries//diary/entries/210121 +I'll collect frequently used resources for web design here. CSS Grid Generator - build a ... +Mon, 22 Feb 2021 19:01 EST + + +inventory as a system diagram +https://www.blessfrey.me/diary/entries//diary/entries/210107 +System diagrams illustrate how components interact within a system. It saves so much headache to ... +Mon, 22 Feb 2021 19:01 EST + + +december 2020: holiday season☆ +https://www.blessfrey.me/diary/entries//diary/entries/210101 +I didn't keep a diary very well this month;; This is mostly pieced together from my git history. I ... +Mon, 22 Feb 2021 19:01 EST + + +blessfrey graphic updates + mockups +https://www.blessfrey.me/diary/entries//diary/entries/201224 +I iterate over the graphics periodically, so I can practice without worrying about polish. Here's ... +Mon, 22 Feb 2021 19:01 EST + + +common tropes from media +https://www.blessfrey.me/diary/entries//diary/entries/201210 +I like collecting common tropes from games I play. Maybe it can it root out cliches? Or inspire ... +Mon, 22 Feb 2021 19:01 EST + + +november 2020: dear diary +https://www.blessfrey.me/diary/entries//diary/entries/201201 +on topic Between the 8th and 15th, I wrote a Python script for generating Godot skill scenes from ... +Mon, 22 Feb 2021 19:01 EST + + +pretendOS - a game inspired by windows XP +https://www.blessfrey.me/diary/entries//diary/entries/201126 +Getting started with blessfrey's AI was overwhelming, so I took a break and worked on a new game. I ... +Mon, 22 Feb 2021 19:01 EST + + +tidying up my skill phases +https://www.blessfrey.me/diary/entries//diary/entries/201112 +In Godot Engine, you can call methods from a parent class by prefixing it with a period (.). So to ... +Mon, 22 Feb 2021 19:01 EST + + +october 2020: a blog that works +https://www.blessfrey.me/diary/entries//diary/entries/201101 +week 1 #bottle #python #regularexpression #website thursday, october 1 blessfrey.me's diary ... +Mon, 22 Feb 2021 19:01 EST + + +blessfrey in japanese +https://www.blessfrey.me/diary/entries//diary/entries/201029 +Instead of hard-coding text, keep it in a spreadsheet instead. It's easier to organize, edit, and ... +Mon, 22 Feb 2021 19:01 EST + + + diff --git a/src/views/contact.tpl b/src/views/contact.tpl index e6a7c43..318e9de 100644 --- a/src/views/contact.tpl +++ b/src/views/contact.tpl @@ -4,19 +4,19 @@

    chimchooree


    hello


    - I'm just a US-based indiedev who's learning to program through game development + web development. My hobbies include enjoy studying Japanese, translating isekai manga for others, and playing 90s/00s CRPGs + JRPGs.
    + I'm a US-based indiedev who's learning to program through game development + web development. My hobbies include enjoy studying Japanese, translating isekai manga for others, and playing 90s/00s CRPGs + JRPGs.

    - To practice different languages, I bounce among a few solo projects in Godot Engine, Java, and Python. My main project is a widely scoped ARPG dungeon crawler called Blessfrey, which I hope to release a demo for soon.
    + To practice different languages, I bounce among a few solo projects in Godot Engine, Java, and Python. My main project is a widely scoped ARPG dungeon crawler called Blessfrey. Hopefully there will be a demo out soon, so keep watching!

    Feel free to say hello, especially if you're interested in gamedev, too.

    general + business contact


    - +




    diff --git a/src/views/presskit.tpl b/src/views/presskit.tpl index 92d5902..ad1d525 100644 --- a/src/views/presskit.tpl +++ b/src/views/presskit.tpl @@ -73,7 +73,7 @@

    Contact


    - Please message me on Twitter @lilchimchooree. + Please email me at chimchooreeOBFUSCATION@mail.com or message me on Twitter @lilchimchooree.
    diff --git a/src/views/rss.tpl b/src/views/rss.tpl new file mode 100644 index 0000000..a4e9865 --- /dev/null +++ b/src/views/rss.tpl @@ -0,0 +1,15 @@ + + + +% for i in items: + +{{i[0]}} +{{i[1]}} +{{i[2]}} +en-US +{{i[3]}} +chimchooree + +% end + +