mo

Why Guilt Seems Better Than Remorse

 
You need for supplies is met here!


Guilt is the lazy way out of remorse.


You keep beating yourself up for something you've done, something in the past.


Doesn't sound fun!


So why do we keep going there?


Guilt feeds shame. It also feeds on shame.


The more shame is lurking in your subconscious, the more susceptible you are to feeling this dastardly emotion.


You believe that you should feel bad when you make mistakes or do something you wish you didn't. That carries on the shame cycle.


We're already talked about that. But here's what may be the biggest attraction...


Guilt is safe. It's easier than remorse. Remorse gives you power.


But guilt lets you off the hook.


It's easy to feel bad about the past, because then you don't have to change anything -- after all, you can't change the past! Instead of looking to how you can do better in the future, you cling to the misery of what you did before.


It's an indulgence. It's like eating watching TV instead of going for a walk. In the moment, it may feel like the best thing, but it doesn't serve you. It doesn't strengthen you. It weakens you!

 

Remorse is empowering. It gives you power over your life. Guilt makes you a helpless victim ... of yourself.


Others assign you guilt as you're growing up, and then you learn to do it to yourself. Feeling guilty makes you a victim of others, long after they're no longer in your life.


But only you can choose remorse. No one can force it on you. It's an expression of true ethics -- your own inner knowing of what is right action and what is not.


This is why remorse is empowering.


Which is more fun, in the long run: empowerment or victimisation?


Where remorse is productive, guilt is only destructive.


Guilt destroys your ... compassion for yourself, self-respect, self-worth, empowerment, and happiness.And it leads you to hurt others in a similar way. If you're going to suffer guilt, you want to make sure others suffer it too!

In every way, guilt decreases the well-being of the world.


You can't afford to indulge yourself in guilt and shame any more! They are hugely destructive. In the 2012 Transition that we're going through, forgiveness is much more powerful and productive.


Remorse is the advanced version, the 21st Century option. Remorse is a positive emotion because ... It allows you compassion for not being perfect It holds open the door to being an even better you It inspires and encourages you to do better It focuses on the future, on how you can be more of who you want to be It gives you back power over your life


With Bright Blessings




mo

The Healing Process of Remorse and Self-Forgiveness * Wicca-Spirituality.com

 


Although often confused with guilt and shame, remorse is actually a much higher calibrating "emotion." It's the 21st Century alternative to feeling bad about yourself, and making others around you feel bad too.


It not only feels better and helps you move forward in your life, but it is healing for the Earth... and as we ride the 2012 Transition, Mother Earth needs all the help we can give her!


This article explains how it works, and why you are worthy of forgiveness.

 

Remorse is a method to heal yourself, and others, after making a mistake.


After all, anything that brings a feeling of remorse is a mistake -- just a mistake. Did you know that's the origin of the word "sin"? "Sin" was an archery term; it means missing the mark. That leaves a lot more possibility for positive growth, doesn't it!


So you don't need to berate yourself for eternity. There is nothing to berate yourself for if you didn't know any better, or if you did the best you could.


And I believe we always do the best we can, with what we have in the moment.


We're not perfect. Sometimes we do things we're not proud of. But, in the moment, that was undoubtedly the best that we could do.


Maybe you gave in to your meaner impulses. If you could have held yourself to a higher ideal in that moment, you would have done so. What would you have to gain, by not?


Maybe you didn't know how to do better. You can only work with what you know.


God does not expect you to know what you do not yet know!


For whatever reason -- fatigue, stress, anxiety, confusion, distraction, etc -- maybe you didn't do the best you hoped for. Maybe it wasn't as good as you could have done another day.


But you obviously did the best you could in that moment.


Why would anyone do less than that?


God doesn't need you to burn in hell for it, not even the hell of your own harsh thoughts. She only wants you to learn from the process, and to use it to grow. That's what remorse is all about.

 

There are four parts to the process of remorse.


The first part is a pang in your Heart. There is an energy there, call it an emotion if you like, that signals you are not happy with your actions.


From here, many people get derailed into guilt, instead of continuing the process of remorse.


The second part is the most important, the core of remorse...


You accept that you made a mistake. And you make an unemotional, practical assessment of your actions.


When your actions and choices don't live up to your ideals or ethics... you figure out how you could do better, discover what was moving in you (probably subconsciously) that caused that action, and -- here's the critical bit -- resolve to do better next time.

Remorse is calm and determined. Rather than destroying your self-respect, remorse enhances it. It provides you with the opportunity to grow, to live up to your ideals.


It recognises that within you there is a perfect being, capable of the best.


And that there is always another opportunity to try.


Contrast that with shame, which says that you are worthless and hopeless. There's just nowhere good to go, from there!


Remorse doesn't take the mistake personally. It sees an action as wrong, but not you as a person.


Remorse knows that people can't accurately, honestly be judged in terms of "wrong" and "bad."


The next step is always making amends. You must undo the error, to the best of your ability. And apologise, if it won't make things worse.


We must be clear -- this step has nothing to do with being forgiven by another person. Whether they forgive you or not is about them and their process, and is not about you.


To seek someone's forgiveness when they aren't ready to give it can be a further harm.


You fix the mistake if you can. That is the only purpose of this step.


Inherent in this process is self-forgiveness. You see a mistake, you acknowledge it, you figure out what went wrong, you fix it if you can, and you determine to not make that mistake again.


When you've done all that, forgiveness is a lot easier.


You can forgive yourself, because you know you aren't a bad person who intentionally did wrong... and because you are doing your best not to slip up that way in the future.


No one is perfect. No one is expected, by the Divine, not to make mistakes. On the contrary, that's often how we learn and grow.


That's all the Divine wants of you. Not perfection. But learning and growing from your slip-ups.


So you can accept that you did the best you were able to, at the time. And forgive yourself, for being human and humanly fallible.

 

If you get stuck in guilt, look for the underlying shame. Shame is like Velcro to guilt. It tells you that you deserve to feel terrible guilt, that you are not worthy of forgiveness or compassion or kindness.


But shame LIES.


You are worthy of forgiveness, because you are not a flawed person.You are Divinity tasting life as a mortal individual -- nothing else.


It doesn't matter what your family or coworkers or boss thinks of you. It doesn't matter how you've been treated by others -- that's nothing to do with YOU, that's all about the (human) blindness of others.


You are infinitely worthy and loveable!


And when others can't see that it's only because they haven't realised that they are infinitely worthy and loveable. When people get tied down, in their minds, into one little frail animal body and one small human life, all kinds of such misconceptions arise!


But it's not the truth.


The truth is that you are eternal -- learning and growing and polishing yourself on challenge after challenge, life after life.


The soul that is truly you is infinitely worthy and Divine. The body and mind you think of as you are only a costume that put on for a while, and then point aside, to go home for dinner and a bath, a good rest, to get up and come play again.


So how do you as a mere mortal forgive yourself?


The same way you forgive anyone... With compassion for your human frailty: you really are doing our best with what you have. With perspective: understanding that this life is a playground and schoolroom, and not the life-or-death struggle it seems. With determination to not make the same mistake again.


With Bright Blessings,




mo

Rituals and Ceremonies -- Cleansing a space.

Do you have all of your SUPPLIES?


In most Pagan traditions it is very important to purify or cleanse a space prior to beginning any sort of ritual. Although there are a different ways of doing this, how you do it will depend on the tradition you follow as well as what you feel comfortable with.


Usually, when ritually purifying an area, most do it deosil and spiraling inwards to the center. There are times when moving in a widdershins direction is appropriate, most notably for Banishing Ritual.


These methods are some examples of common ways to cleanse a space for ritual.


Smudging


Smudging uses smoke, which will carry negative energy away from the area. Traditionally White Sage is used, however, other dried herbs can be added, such as Cilantro, Cedar, Lavender and Mugwort. The herbs are bound with string into a bundle, which is commonly referred to as a “stick”.


When lighting the bundle, try to make it flame for a moment if possible, then blow the flame out. This will leave you with a smoldering, smoking herb bundle. Once you have achieved the smoldering bundle stage it is time to smudge the house.


Now you don’t take the bundle and rub it on the walls and other things in the room, which would make a mess and probably ruin a few things and maybe even start a nice fire. What you do is this. Hold the smoldering bundle in one hand or in a heatproof object, like a shell. With either a fan or your free hand you waft the smoke to the edges of the room, making sure to get it into the corners.


When you have finished smudging you can either snuff out the smoldering end of the bundle by setting it into some sand or by crushing the end. An alternative method is to douse it under a bit of water, making sure to let it dry completely before attempting to use it again.


Sweeping
By long tradition, the broom is associated with cleaning and purification. The broom can be either a special one used solely for ritual cleansing or even your household broom. Use a broom or besom going around the edges of the space, with your intent being to sweep negativity away as you go. Here's a good idea. Start and finish near a door--that way, negative energy is swept outside, rather quite literally.


Asperging
Asperging is the sprinkling with a liquid in order to effect spiritual and magical cleansing. Most people will associate Asperging with the Catholic Church, however the practice is also widely used by pagans for cleansing prior to rituals.


It can be accomplished in many ways. The simplest of these is to have a premixed liquid of your choice and bundle of fresh herbs that you can dip into the water. Then you take the herbs, dip them in the liquid and with a quick flick you throw the liquid off the herb and into area or onto the object to be cleansed. You don’t want or need to have a lot of liquid being thrown though. Just small droplets are perfect. Herbs that are prefect to use are Sage, Lavender, Vervain, Hyssop, Pine, Rue and Rosemary.


Another option that can be used quite effectively to cleanse a space is the use of incense. This can be either in cone form, stick, or powder and charcoal. The incense should be for working with cleaning, purification and even protection if you want to add that bit into the cleansing.


During your cleansing and purification of your space you can also include a little chant to augment the process. There are many to be found on the Internet as well as in books. You might even have one in mind already, in that case write it down so you will remember it for the next time you want to cleanse a room.


In addition to the above, I also ensure that the space is physically cleaned as well. I try to use a non-toxic homemade cleanser to do this. How you physically clean is of course up to you.


I would be remiss if I didn’t do a shameless plug for our online store where we carry many items that are perfect for what I have just talked about. Stop by Grove of the Ancients Pagan Marketplace today and order cleansing supplies.


Blessed Be!


View the original article here




mo

ThermoMate Electric Outdoor/Indoor Patio Heater review

REVIEW – Staying comfortable outdoors has certainly evolved in the last dozen years. Gone are the days of having to start a fire to stay warm. (Fires are still wonderfully inviting and fun, just not efficient.) Ceramic heaters and radiant heaters have been used for a long time, but they are usually large and do […]




mo

Liftsync Dual Monitor Arm review

REVIEW – I’ve had my two Dell monitors for a while, but I’ve yet to find a monitor arm that fits the weight of my 32″ curved screen. I tried my heavy duty work arms, yet no matter how tight I made it, it would slide down and rest on the desk. The LiftSync Dual […]





mo

More Things Than None - One of Them


 Alt text: poire à la éléphant




mo

Which Modula 5 Mg Formulation Is Suitable For Individuals With Diabetes?

Modula 5 mg is a medication that contains Tadalafil, which is commonly used to treat erectile dysfunction (ED) and symptoms of benign prostatic hyperplasia (BPH). It works by increasing blood flow to the penis during sexual activity, which helps achieve and maintain an erection. For individuals with diabetes, Tadalafil can generally be used safely, but some factors should be considered when choosing the right formulation: Factors to Consider for Individuals with Diabetes: Impact on Blood Sugar: Tadalafil itself doesn’t directly affect blood sugar levels, but individuals with diabetes need to manage their overall health, including blood sugar levels, when using medications for ED. It’s important to monitor blood glucose levels regularly while on Tadalafil. Formulation of Modula 5 mg: Modula 5 mg is typically available in tablet form. The tablet formulation is suitable for people with diabetes, as it is not known to contain sugar or carbohydrates that could directly affect blood sugar. Oral tablets like Modula 5 mg are often preferred because they allow for controlled, consistent dosing. Side Effects: People with diabetes may be more prone to certain side effects, such as dizziness, headaches, or blurred vision. These side effects are more common in individuals who have other underlying conditions (such as cardiovascular issues) that may co-occur with diabetes. It's important to start with a lower dose, like 5 mg, and adjust based on tolerance and effectiveness, in consultation with a healthcare provider. Cardiovascular Health: Diabetes often comes with an increased risk of heart disease, which is also a concern when using medications like Tadalafil. It’s crucial to consult a healthcare provider to ensure that there are no contraindications with any existing heart conditions before starting MODULA 5 MG. Other Medications: People with diabetes may be on other medications to manage their condition, such as insulin or oral medications for blood sugar control. Tadalafil can interact with certain medications, especially nitrates (used for chest pain), leading to dangerous drops in blood pressure. Therefore, it is essential to ensure that Modula 5 mg doesn’t interact with any other ongoing treatments. Recommendation for People with Diabetes: Modula 5 mg (Tadalafil) in its tablet formulation is generally a suitable option for individuals with diabetes, provided they are managing their blood sugar levels effectively and have discussed the use of this medication with their healthcare provider. If there are concerns about side effects or interactions with other medications, starting with a lower dose or exploring other alternative treatments for ED may be recommended. Key Takeaways: Modula 5 mg (Tadalafil) is safe for most individuals with diabetes, but it's crucial to check for potential interactions with diabetes medications. Monitoring blood sugar and blood pressure regularly while using Tadalafil is essential for safety. Always consult a healthcare provider to ensure the medication is appropriate based on your medical history and current treatments. If you have specific concerns, such as interactions with your diabetes medications or heart conditions, consulting with your doctor is the best course of action before starting any treatment.



  • Новичкам о портале

mo

“Volunteering — a Way to Give Back When Money Isn’t an Option”

In today’s economy, parting with hard-earned dollars to support your favorite charity or cause just may not be feasible. Consider donating yourself and your time as a way to give back without impacting your piggy bank.

Here’s how Chris Knoll, a cartographer here at NatGeo Maps, is giving back:


As part of an ongoing effort to support access to some of Colorado’s most popular 14er mountains, I participated in a stewardship adventure with Volunteers for Outdoor Colorado who partnered with Colorado Fourteeners Initiative. The main focus of this project was to work on building a sustainable trail up to 14,172 foot peak Mount Bross; which is near Fairplay, CO (90 miles southwest of Denver). Due to numerous unmarked mine shafts and a network of unmanaged social trails, access to the summit of Mount Bross was closed in 2006 until private land owners in conjunction with the US Forest Service can come to an agreement on the new route.

This is where the volunteers come in to action. Four crews totaling about forty people were given the task of stabilizing, reconstructing, and rerouting a trail leading up to Mt. Bross. The work included building sustainable portions of trail by installing rock steps where trail erosion is present, delineating one path up the mountain, and covering up social trails by re-vegetating these areas with native tundra plants that grow at higher elevations.

After work was completed each day, volunteers were fed by VOC staff, and were given the opportunity to socialize around the campfire and even take short hikes in the area. However, nights were called in early due to early 5:45 a.m. wake up calls.

All in all, the work that was completed over the weekend was meaningful and fun. It gives me a great sense of accomplishment knowing that one day, I will be able to hike a trail that I helped to construct.

For more information on non-profit volunteer groups mentioned in this article, check out http://www.voc.org, and http://www.14ers.org.

~Chris Knoll, Cartographer, National Geographic Maps




mo

New program will see pregnant mothers and babies protected from life-threatening virus - SBS

  1. New program will see pregnant mothers and babies protected from life-threatening virus  SBS
  2. World-leading approach to protect babies from RSV  Department of Health
  3. Government-funded RSV vaccines to protect infants from severe disease  Australian Pharmacist
  4. 'Very scary': Wagga mum's plea for parents to protect babies through RSV jab  The Daily Advertiser
  5. Guild backs free RSV vaccinations  Australian Journal of Pharmacy






mo

All-time reaction to coaching ‘disaster’; Steph’s stunning clutch moment: NBA Wrap - Fox Sports

  1. All-time reaction to coaching ‘disaster’; Steph’s stunning clutch moment: NBA Wrap  Fox Sports
  2. Bike rides and Balkan music: Klay Thompson is embracing a fresh start with the Mavericks  ESPN Australia
  3. 10 unforgettable Klay Thompson moments with Warriors ahead of return  NBA.com
  4. Dub Hub: Warriors players share ‘welcome back’ messages for Klay Thompson’s return  Golden State of Mind











mo

As it happened: Donald Trump ally taunts Kevin Rudd; WiseTech shareholders launch class action - Sydney Morning Herald

  1. As it happened: Donald Trump ally taunts Kevin Rudd; WiseTech shareholders launch class action  Sydney Morning Herald
  2. Ditching Rudd over Trump insults would be ‘worst possible signal’: Turnbull  Sydney Morning Herald
  3. Senior Liberal calls for Rudd to be sacked after Trump advisor suggests US ambassador is on thin ice  9News




mo

Kristian White trial: CCTV reveals final moments before Clare Nowland Tasering in Cooma nursing home - Sydney Morning Herald

  1. Kristian White trial: CCTV reveals final moments before Clare Nowland Tasering in Cooma nursing home  Sydney Morning Herald
  2. Jury shown footage of 95yo getting stuck in tree in weeks before being tasered by police officer  ABC News
  3. Elderly woman 'unable to comply' before cop Tasered her, court hears  9News




mo

Emotional Manipulation In Fundraising

BethDunn just wrote a great post about mail fundraisng appeals and two schools of thought that are applied to them throughout the industry.

On the one hand there is the practical appeal to a donor's sense of logic and decency. On the other hand, there are the emotional appeals dripping with manipulation sent out to shock or shame a donor into action.

While On Fundraising's primary focus is telephone fundraising, this subject matter is relevant to On Fundraising for two reasons.

Mail appeals and phone appeals are generally part of the same campaign. Sometimes a donor is called first, other times they'll get a mailer and then a follow up call.

Increasingly donors are savvy enough and self-aware enough to take strong offense at the manipulative tone of fundraising letters. We live in an age where almost any information is available to those who want to find it. Todays activist donors do just that.

Donor's often know more about a subject than the front line people raising money for it. As well they should. So sending out these mail broadsides is certainly no good way to show respect for a donor's intellect or for their prior support.

The second reason this issue applies to On Fundraising, is that many telefundraisers mirror or amplify the sentiments expressed by these letters in a misguided attempt to manipulate donors into reactionary giving based solely on emotion. This works for now, however donors are self-aware and savvy enough to know when they're being manipulated. Surprisingly enough, they don't like it.

Todays donors aren't simply tithing blindly in the hopes that some good will come of it. More and more, donors support organizations as active participants in an effort to improve our world. How does a person like this feel when they receive a dunning letter dripping with sensationalized woe? Like a patsy.

All in all, these medieval scare tactics don't belong in modern fundraising. Yes psychology has its place in fundraising, but too often psychology is a euphemism for manipulation. Fundraisers who are good at their jobs are masters of speech, language, and persuasion. Its better to convince someone to give than to trick them into it .

http://smalldots.wordpress.com/2008/05/12/the-model-of-a-modern-major-fundraising-letter/




mo

Battle Of The Sexes (who gives more?)



Good fundraisers typically stick with what works in a fund raising campaign choosing not to ask to many questions about why it works. While intuitively, many fundraisers know that women tend to make more donations in a given campaign or series of campaigns and perhaps if the fundraiser is intuitive enough, that men who give, generally tend to give higher amounts overall.

It’s not always easy to understand why this is so, and therefore for a fundraiser to take full advantage of this information.

Many studies have been done on philanthropy; fewer have been done on telephone fund raising, however the research on this subject is not insignificant. Two studies that we will highlight here at onfundraising are one commissioned by the Share Group Inc on fund raising and direct mail campaigns, and the other is “The Effects of Race, Gender, and Marital Status on Giving and Volunteering in Indiana” as published in the Nonprofit and voluntary Sector Quartley, in 2006 while report focuses on Indiana, much of the reporting is general in nature and therefore suitable for this post. The study’s main purpose was to examine whether factors like race, age, education or marital status make a difference to philanthropy of volunteering.


Both studies are available on line, and are linked to at the bottom of this article.

In 2006, Share Group. Inc, of Massachusetts participated in a comprehensive study on donor characteristics .Among other things this study quantifies some of the major difference between male and female donors; something that many people knew intuitively but lacked the hard data to validate. The study also measured donor contributions by age, and gave some general insights into what age group is the most supportive of charitable organizations.

According to the study, when contacted, women are more likely to support a charity campaign than men.

This data corresponds with past studies on philanthropic giving, but is limited to telephone fund raising The data indicates the women generally are more likely to donate to fund raising efforts and are also more likely to leave bequests to charitable organizations. The research indicates that woman as a whole are more likely to donate than men are.

However, the study found that based on the statistical evidence, men who do give to a campaign are likely to make larger contributions than female donors. This information as well is corroborated by independent research.

The study observes that the optimal donor age is fifty years old. Contributions tend to dwindle as donors reach retirement age. Donors ages sixty five to seventy five were most receptive to and renewal of support campaigns.

Interestingly for fund raisers, the study found that female callers secure pledges less often than male callers, but the average size of the pledges female fundraisers secure is larger than their male counterparts.

In general, women according to the research in both studies, are more likely give a larger contribution than they have previously given (upgrade). Men who could be convinced to upgrade generally upgraded at higher percentage versus female donors.

Breaking down the data further showed that when it comes to the actual giving of money, single women give twice as much as single men. These results are consistent with what has been published in the past. Furthermore, single women are more likely than men to give to a variety of charities and philanthropic efforts. A not so surprising finding was that married men also were 2-3 times more likely to give as much as single men or single women. However, the amount of money donated by single men was found to be far greater than that of married couples.

When the race factor is assessed for donation, there is little or no difference. Whites, Blacks and other minorities are no more or less likely to give relative to each other. The one obvious finding is that donations are significantly increased when the donor is educated, earns a higher income, and is older. This finding was again observed in all ethnic groups.

The Indiana study also looked at another aspect of giving-volunteering. The results are not much different to the philanthropic study. Again, single females are more likely to volunteer their time when compared to single men. Infact single females are more likely to volunteer for many more hours (>146 per year) than single men. The one surprising finding is that there is no difference in volunteering between married couples and single individuals when it comes to volunteering. It would be expected that married couples would have less time due to their familial obligations but this is not so.

Race did not reveal any differences in volunteering- Blacks, Whites and other minorities were just as likely to volunteer.

Volunteering was found to decrease when the levels of income and education were low. In fact, there was a sharp drop in volunteering levels for those with less than a high school education relative to the general population, and this was seen across all age groups.

However, increased income did not correlate with the numbers of hours volunteered. Individuals with low income were just as likely to volunteer for longer durations of time and vice versa.

The one curious observation from the study is that when individuals were asked if they had volunteered in the past, women were more likely to recall this act. Minorities could not recall if they had volunteered. Why someone can’t remember a dignified act like volunteering is a mystery- perhaps an error in how the questionnaire was set up or comprehension difficulty. The writers of the Indiana study surmised that often minorities do volunteer work without formally characterizing it as such.

Most of the results of these studies are also supported by many previous national surveys which have also found that education and higher income are the strongest and most consistent predictors of philanthropic activity.

Why single women volunteer more is not fully understood but it is speculated that because single women have less social and financial means, they compensate this by giving more of their time as volunteers while at the same time establishing their social networks.

These studies provide some insight into differences in donors by sex, marital status, race and income. Both men and women are motivated to give to charity for different reasons therefore when communicating with donors, fundraisers are advised to take this into effect and structure their solicitations accordingly.

We can take from these studies the fact that most Americans do give to charity in one way or another. Fund raisers can best serve the causes they work for buy understanding the broad characteristics of donors and structuring their donation requests accordingly.







mo

Is it still possible to make money in online fundraising?


The short answer to this question is, yes. While the rules have changed a bit since the early days of raising money online, the necessary elements all still exist in great supply. These are; a large and motivated donor pool, innovative organizations and fundraisers and the technology that brings it all together. This post will cover this complex topic with updates to come. In the mean time, voice your opinion on the relevancy of online fundraising in the comments section below.

The first step to success in online fundraising is the cause. While its possible to raise money for just about anything, what really promotes success is having a well defined mission statement. This is something that resonates with donors quickly. The shorter it takes to express your mission statement, the more likely it is that donors will stick around to learn more about your organization and its needs. This does not necessarily mean that they'll make a contribution, but donors who leave your site out of boredom, frustration or confusion certainly wont be making any.

After a well defined cause, presentation is the next most important element of online fundraising. Donors are quick to leave sites that are'nt easy to navigate. Ideally donors should be able to make an online gift in just one or two steps, the more complicated a donation system is, the less likely donations are to be made. Simple. modern interfaces are the key to increasing online donations.




mo

The etymologies of ballot and bigot

That's all I've got, so far, for linguistic commentary on the U.S. election results. According to the OED, the etymology of ballot is < (i) Middle French ballotte (French †ballotte) small ball (beginning of the 15th cent. as †balote), small coloured ball placed in a container to register a secret vote (1498) or its etymon […]




mo

Whimsical surnames, part 2 (again mostly German)

[This is a guest post by Michael Witzel] A few months ago you published a discussion of whimsical surnames. Since then I have paid attention and have found new ones in  almost every news broadcast. It is said that there are 1 million (!) surnames in the German speaking area of some 95 million people […]




mo

October, the 8th month

Wow, this month sure went by fast. I'm sure I say that every October, as this is the busiest time of year at work, and stuff like football and Maybe The Last Nice Day This Year keep me busy.

I've been plugging away at this math/programming project, currently porting some numerical code that I don't fully understand and finding bugs in it and improving its performance. It's relaxing, at least, but there's nothing good to share here yet and I'm not sure it'll ever make an interesting story. I did make some version-2 circuit boards for a project I've been working on in parallel, too, but the next step in that one is going to be annoying ("Why won't it boot?") so I've been putting it off.

They brought the small neighborhood race called "Run Shadyside" back this year. This is a 5k course that I can easily walk to the start of, and Shadyside is about as flat as it gets in Pittsburgh, so it's a nice race to try to PR in. I've been keeping in pretty good shape (despite the setback due to illness mentioned previously), but that morning I was having some burning lungs so I didn't push myself too hard. (Could have been mold? Bad air quality? Slightly sick?) I finished in 20m19s, which is probably my third best official 5K time, although a bit disappointing since I ran several unofficial treadmill 5Ks under 19 minutes this summer. I finished 3rd in my age group. The results feature a new capitalization of my name, the elusive Stegosaurus CasE: "Tom Murphy ViI"

Craving a game that would make proper use of the GeForce 4090, I installed Call Of Duty: Cold War. Actually this game is a couple years old, and graphically it's not anything particularly special. I am liking the single-player campaign more than usual for these kinds of games, and avoiding getting sucked into multiplayer. I gave the "zombies" mode a shot and I think I finally understand it, like playing a roguelike on a single seed. I think I'm at the point where I need to set myself some kind of challenge and complete it and retire to more artful things, though.




mo

Of all homonymic months, August is the most majestic

I’m traveling for the long weekend. Either I’m having bad luck with the epic heat waves or there have been a lot of epic heat waves, because again the short road trip threatens to be tyrannized by the hot air. It did at least touch 100°F this time, so at least it is a proper respectable heat wave. We are in a place called Hocking Hills, whose AirBnB has these OBX-style stickers that say “HHO”, which could either be confusingly “Hills, HOcking,” or perhaps “Hocking Hills, Ohio”, but not “Hocking hills OHio” as one might expect. I plan to stick the sticker upside-down for “OHH”, as in “Ohh yeah, I need to write a post on Tom 7 Radar for the month of August, and I need to do it on this mediocre wi-fi which Google Internet Speed Test describes as ‘fine’ while everyone else drinks beers outside.” Fair enough: This is a self-imposed curse and one that’s easily tended to at any time during the month.

During the month: I worked again on making my own video codec, which is a very bad way to spend one’s time, but I don’t think there are any modern lossless codecs that would be suitable for my use case. And I do like a data compression project because of the inherent benchmarkability. The use case is for the increasingly common situation where I have a program generating a series of video frames (e.g. BoVeX is making an animation), which I usually do by writing a sequence of PNG files to disk. I’m way ahead of PNG files so far even without doing any inter-frame stuff, which is not impressive, but does make me feel like it’s at least not totally pointless. (Still, it’s quite pointless: Sure I can make these files smaller at significant cost of complexity and encoding times, but these animations typically use space similar to like one second of 4K 60fps XF-AVC footage.)

Sometimes programming your own lossless video codec is a bit too fast-paced so you need to write a Wikipedia article from scratch about Clairton Coke Works by digging through newspaper archives. I haven't even gotten to the last 30 years of its history yet! I also rounded out the Cyrillic in FixederSys though I don't think I've uploaded a new version of that yet. As usual I did some hacking on secret projects.

UHH, elsewise, I did finish off Animal Well which I liked very much. My spoilerless advice to you is: Don't try to 100% this game without at least looking at a spoiler-controlled guide! But I did have fun once I felt like I was stuck-ish finishing the remaining postgame puzzles. I have also been playing Chippy, a bullet-hell twin-stick shooter that is quite hard (I usually feel good at this genre) and has several new good ideas in it. It's essentially all boss fights, and the chief innovation is that you fight the giant bosses by disconnecting pieces of them. I'm on the last boss so I will probably finish that one soon. As I have confessed many times, I like dumb first-person shooter games, and I played through Trepang 2 this month as well. It does have a few moments, but it was mostly pretty dumb, like I wanted. And then I started Touhou Luna Nights, which is a "Metroidvania" fan-game with great pixel art and music.

OK, I should get back to this vacation!




mo

Tasteless - Moi?

When the current third-runway project was in its first flush of 'yes we can, no we can't' I said something rather tactless to my then Bench Chairman. I grew up near Heathrow (although I knew it as London Airport, but we shall let that pass).

To a Hayes boy, who went to school in Uxbridge, the way to the airport on spotting days went through the unprepossessing suburbs of Sipson and West Drayton. The airport brought great prosperity to the area, but its hinterland remained grim.

My then Chairman lived in Sipson, in a house that had been purchased on generous terms by the airport people, but which stands (as it still does, but for how much longer I cannot say) and is at pretty much the exact point where the airliners' wheels will meet the tarmac, with that puff of blue smoke from the tyres. So in my rather thoughtless way I ventured the opinion that most of West Drayton and Sipson would be improved by a thick layer of ferro-concrete. He sniffed and walked away.





mo

Money, Money, Money (or private affluence and public squalor)

I sat in my crumbling courthouse a couple of months ago, having edged past the permanently-stuck gate on the justices' car park, and made my way up the nearly-new lift to the assembly room. It is a handsome room, built in 1907 but has sadly not seen a lick of paint in the last decade-and-a-half and more.

Everywhere are signs of decay and neglect - but no matter. I understand the desperate need for the government to bring expenditure under control, even if that means denying resources to the public service that I have served unpaid these thirty years. There are still biscuits (amazingly) and most of the lights come on when you press a switch. There is some mysterious  kit that we think might be for use in the new all-electronic courthouse. It still bears the protective film that we see on expensive audio visual stuff to protect it on its long journey from a Chinese sweatshop.

I have recently received an email from  www.gov.uk/annual-tax-summary setting out the tax that I paid in the last fiscal year setting out the tax that I paid (direct tax only, so forget the taxes on consumption such as liquor duties and Council Tax (fifty quid a week on my modest Thames Valley bungalow).

Much more interesting is the breakdown of where it went, revealing how little our fellow citizens know of what is done with the country's collective cash.

Not that much goes on the justice system.




mo

To the Moon, Mars, and beyond with the 2024 NASA Authorization

If passed, it would be the first standalone NASA authorization since 2017.




mo

Explore the Cosmos with The Planetary Society and Lerner Publishing

The Planetary Society and Lerner Publishing Group have teamed up to bring young readers an engaging series of books that make space science fun and accessible.




mo

Cloudy skies, smooth sailing

A Martian cloud atlas, LightSail wins big, and multiple missions coast toward launch.




mo

Europa Clipper launches on its journey to Jupiter’s icy moon

NASA’s Europa Clipper spacecraft launched today aboard a SpaceX Falcon Heavy rocket from NASA’s Kennedy Space Center in Cape Canaveral, Florida.




mo

Glenmorangie A Tale of Ice Cream Single Malt Scotch Whisky




mo

YUKA 2000 Robot Lawn Mower




mo

Fomorian Shields from Hobbycraft

yesterday I popped to Hobbycraft to see if they had any pieces I could use for the new Midgard rules. I couldn't find any goblets but I did track down the beads needed for heroic deeds.

While I was travelling through the bead tray, I saw one that I thought would make a great Celtic shield.

It has a nice wrap around curve to it but more importantly, sports a nice Celtic swirly pattern.

Ancient Irish warriors fight with the sea devils.
It has a good level of detail to make it look well crafted and ornate. Once I sculpt a boss for the centre I think it will look just the ticket. Nice deep grooves that will catch ink and weathering very well. The swirl too is a very Celtic looking design.

 This tub was £4 which is unbelievable for an armies worth of shields. I might end up using these beads as heroic deeds markers too as they won't roll unlike the rounder ones.

You can get a next size up in container to fill with your beads for £8, again for hundreds of shields this isn't bad. The small tub should be enough though.




mo

Fomorian Coastal Scenery

Here are some rock pools to add to a coastal game mat. I've added some kelp seaweed to make them a bit more North sea.







There are also a couple of other prints that I plan to use as Fomorian shrines. Places where they honour their dead and stack weapons and armour in tribute.
To save on the greenstuff, I switched to Milliput as it's cheaper for bigger pieces. 

I'll add some more skulls and weapons etc to these bases.
Update: So the Fomorians crawled out of the icy North sea in the night and adorned the pools with their burial goods.
Fomorian skulls and weapons now litter the swallow pools, soon to be covered by the rising tide.


Barnacles were just grit stuck with PVA glue. After the glue was dry I gave the grit another wash of the glue. This should make it stand up to a good dry brushing.
One of the new swirly shields gets placed in the pool. I gave the water a coat of PVA glue just to get rid of the 3D printing texture.
I will add a little more seaweed now the skulls are in.

Update: These models were sprayed black then dry brushed with grey and white. Contrast colours were then painted over the highlighted pools.



To make them look a bit more aquatic and fantasy, I included colours like blue and purple into the palette.



Here we can see a highlighted model before the Contrast paint washes.








Update: started to pick out the barnacles and shields etc.









mo

Scott L. Burson: Comparison: FSet vs. Sycamore

[BULLETIN: Quicklisp now has the latest version of FSet.]

Sycamore, primarily by Neil Dantam, is a functional collections library that is built around the same weight-balanced binary tree data structure (with leaf vectors) that FSet uses.  While the README on that page comments briefly on the differences between Sycamore and FSet, I don't feel that it does FSet justice.  Here is my analysis.

Dantam claims that his library is 30% to 50% faster than FSet on common operations.  While I haven't done comprehensive micro-benchmarking, a couple of quick tests indicates that this claim is plausible.  A look through the internals of the implementation confirms that it is clean and tight, and I must commend him.  There may be some techniques in here that I could usefully borrow.

Most of the performance difference is necessitated by two design choices that were made differently in the two libraries.  One of these Dantam mentions in his comparison: FSet's use of a single, global ordering relation implemented as a CLOS generic function, vs. Sycamore's more standard choice of requiring a comparison function to be supplied when a collection is created.  The other one he doesn't mention: the fact that FSet supports a notion of equivalent-but-unequal values, which are values that are incomparable — there's no way, or at least no obvious way, to say which is less than the other, and yet we want to treat them as unequal.  The simplest example is the integer 1 and the single-float 1.0, which have equal numerical values (and cl:= returns true on them), but which are nonetheless not eql.  (I have a previous blog post that goes into a lot more detail about equality and comparison.)  Since Sycamore expects the user-supplied comparison function to return an integer that is negative, zero, or positive to indicate the ordering of its arguments, there's no encoding for the equivalent-but-unequal case, nor is there any of the code that would be required to handle that case.

Both of these decisions were driven by my goal for the FSet project.  I didn't just want to provide a functional collections library that could be called occasionally when one had a specific need for such a data structure.  My ambition was much grander: to make functional collections into a reasonable default choice for the vast majority of programming situations.  I wanted FSet users (including, of course, myself) to be able to use functional collections freely, with very little extra effort or thought.  While Lisp by itself reaches a little bit in this direction — lists can certainly be used functionally — lists used as functional collections run into severe time complexity problems as those collections get large.  I wanted the FSet collections to be as convenient and well-supported as lists, but without the time complexity issues.

— Or rather, I wanted them to be even more convenient than lists.  Before writing FSet, I had spent years working in a little-known proprietary language called Refine, which happened to be implemented on top of Common Lisp, so it was not unusual to switch between the two languages.  And I had noticed something.  In contrast to CL, with its several different predefined equality predicates and with its functions that take :test arguments to specify which one to use, Refine has a single notiion of equality.  The value space is cleanly divided between immutable types, which are compared by value — along with numbers, these include strings, sets, maps, and seqs — and mutable objects, which are always compared by identity.  And it worked!  I found I did not miss the ability to specify an equality predicate when performing an operation such as "union".  It was just never needed.  Get equality right at the language level, and the problem goes away.

Although FSet's compare generic function isn't just for equality — it also defines an ordering that is used by the binary trees — I thought it would probably turn out to be the case that a single global ordering, implemented as a generic function and therefore extensible, would be fine the vast majority of the time.  I think experience has borne this out.  And just as you can mix types in Lisp lists — say, numbers and symbols — without further thought, so you can have any combination of types in an FSet set, effortlessly.  (A project I'm currently working on actually takes considerable advantage of this capability.)

As for supporting equivalent-but-unequal values, this desideratum flows directly from the principle of least astonishment.  While it might not be too surprising for a set or map implementation to fail distinguish the integer 1 from the float 1.0, it certainly would be very surprising, and almost certainly a source of bugs in a compiler that used it, for it to fail to distinguish two uninterned symbols with the same name.  (I saw a macro expansion recently that contained two distinct symbols that both printed as #:NEW.  It happens.)  A compiler using Sycamore for a map on symbols would have to supply a comparison function that accounted for this; it couldn't just compare the package name and symbol name.  (You'd have to do something like keep a weak hash table mapping symbols to integers, assigned in the order in which the comparison function encountered them.  It's doable, but FSet protects you from this madness.)

Along with those deep semantic design choices, I've spent a lot of time on developing a wide and featureful API for FSet (an effort that's ongoing).  FSet has many features that Sycamore lacks, including:

  • seqs, a binary-tree sequence implementation that holds arbitrary Lisp objects (Sycamore ropes hold only characters, which is certainly an important special case, but why restrict ourselves?)
  • default values for maps and seqs (the value to return when the key is outside the domain is associated with the collection, not supplied at the call site; this turns out to be a significant convenience)
  • generic functions that operate on both lists and FSet collections, to shadow the CL builtins
  • the powerful map-union and map-intersection operations (I'll blog about these in the future)
  • more ways to iterate over the collections (the FSet tutorial has a good summary, about 3/4 of the way down)
  • speaking of the tutorial, FSet has lots more documentation

Let me digress slightly to give an example of how FSet makes programming more elegant and convenient.  Joe Marshall just put up a blog post comparing Go(lang) with Common Lisp, which is worth a read on its own; I'm just going to grab a code snippet from there to show a little bit of what programming with FSet is like.  Here's Joe's code:

 (defun collate (items &key (key #'identity) (test #'eql) (merger (merge-adjoin #'eql)) (default nil))
   (let ((table (make-hash-table :test test)))
     (dolist (item items table)
       (let ((k (funcall key item)))
         (setf (gethash k table) (funcall merger (gethash k table default) item))))))

 (defun merge-adjoin (test)
   (lambda (collection item)
     (adjoin item collection :test test)))

And here's what I would write using FSet:

 (defun collate (items &key (key #'identity))
   (let ((result (map :default (set))))
     (dolist (item items result)
       (includef (@ result (funcall key item)) item))))

(Well, I would probably move result outside the dolist form to make it clearer what the return value is, but let's go with Joe's stylistic choice here.)

For those who haven't used FSet: the form (map :default (set)) creates a map whose default is the empty set, meaning that lookups on that map will return the empty set if the key is not in the map.  This saves the includef form from having to handle that possibility.

My version makes assumptions, it's true, about how you want to collect the items with a given key; it doesn't give you other choices.  It could, but what would be the point?  It's already using a general set with better time complexity than lists, and saving you from having to write anything like merge-adjoin.  The extensible global equivalence relation means you're not going to need to supply a :test either.

I think the FSet-enhanced code is cleaner, more elegant, and therefore clearer than the plain-CL version.  Don't you agree?  Maybe you wouldn't say it's a huge improvement, okay, but it's a small example; in a larger codebase, I would argue, these small improvements add up.

* * * * *

To summarize: if you just want a library you can call in a few places for specific purposes, Sycamore might work better for you (but think hard if you're writing a comparator for symbols).  FSet can certainly be used that way, but it can be much more.  If you want to see one way in which Common Lisp can be made into a better language, without giving up anything that we love about it, I urge you to give FSet a try.

FSet has changed the way I write Lisp programs.  — an FSet user

(UPDATE: the magnitude of the performance difference between FSet and Sycamore surprised me, and inspired me to do some profiling of FSet.  It turned out that I could get a 20% speedup on one micro-benchmark simply by adding some inline declarations.  Mea culpa, mea culpa, mea maxima culpa; I should have done this years ago.   With that change, the generic function overhead appears to be the only significant cause of the remaining ~20% performance difference.  I tried creating a Sycamore set using a thin wrapper around fset:compare, and the resulting performance was very similar to that of FSet with its new inlines.)




mo

vindarel: Running my 4th Common Lisp script in production© - you can do it too

Last week I finished a new service written in Common Lisp. It now runs in production© every mornings, and it expands the set of services I offer to clients.

It’s the 4th service of this kind that I developed: - they are not big - but have to be done nonetheless, and the quicker the better (they each amount to 1k to 2k lines of Lisp code), - they are not part of a super advanced domain that requires Common Lisp superpowers - I am the one who benefits from CL during development, - I could have written them in Python - and conversely nothing prevented me from writing them in Common Lisp.

So here lies the goal of this post: illustrate that you don’t need to need a super difficult problem to use Common Lisp. This has been asked many times, directly to me or on social media :)

At the same time, I want to encourage you to write a little something about how you use Common Lisp in the real world. Sharing creates emulation. Do it! If you don’t have a blog you can simply write in a new GitHub repository or in a Gist and come share on /r/lisp. We don’t care. Thanks <3

We’ll briefly see what my scripts do, what libraries I use, how I deploy them, what I did along the way.

Needless to say that I dogfooded my CIEL (beta) meta-library and scripting tool for all those projects.

Table of Contents

Scripts n°4 and 2 - shaping and sending data - when you can write Lisp on the side

My latest script needs to read data from a DB, format what’s necessary according to specifications, and send the result by SFTP.

In this case I read a DB that I own, created by a software that I develop and host. So I could have developed this script in the software itself, right? I could have, but I would have been tied to the main project’s versioning scheme, quirks, and deployment. I rather had to write this script on the side. And since it can be done on the side, it can be done in Common Lisp.

I have to extract products and their data (price, VAT...), aggregate the numbers for each day, write this to a file, according to a specification.

To read the DB, I used cl-dbi. I didn’t format the SQL with SxQL this time like in my web apps (where I use the Mito light ORM), but I wrote SQL directly. I’m spoiled by the Django ORM (which has its idiosyncrasies and shortcomings), so I double checked the different kinds of JOINs and all went well.

I had to group rows by some properties, so it was a great time to use serapeum:assort. I left you an example here: https://dev.to/vindarel/common-lisps-group-by-is-serapeumassort-32ma

Dates have to be handled in different formats. I used local-time of course, and I still greatly appreciate its lispy formatter syntax:

(defun date-yymmddhhnnss (&optional date stream)
  (local-time:format-timestring stream
                                (or date (local-time:now))
                                :format
                                '((:year 4)
                                  (:month 2)
                                  (:day 2)
                                  (:hour 2)
                                  (:min 2)
                                  (:sec 2)
                                  )))

the 2 in (:month 2) is to ensure the month is written with 2 digits.

Once the file is written, I have to send it to a SFTP server, with the client’s codes.

I wrote a profile class to encapsulate the client’s data as well as some functions to read the credentials from either environment variables, the file system, or a lisp variable. I had a top-level profile object for ease of testing, but I made sure that my functions formatting or sending data required a profile parameter.

(defun send-stock (profile &key date) ...)
(defun write-stock (profile filename) ...)

Still nothing surprising, but it’s tempting to only use global parameters for a one-off script. Except the program grows and you pay the mess later.

SFTP

To send the result through SFTP, I had to make a choice. The SFTP command line doesn’t make it possible to give a password as argument (or via an environment variable, etc). So I use lftp (in Debian repositories) that allows to do that. In the end, we format a command like this:

lftp sftp://user:****@host  -e "CD I/; put local-file.name; bye"

You can format the command string and run it with uiop:run-program: no problem, but I took the opportunity to release another utility:

First, you create a profile object. This one-liner reads the credentials from a lispy file:

(defvar profile (make-profile-from-plist (uiop:read-file-form "CREDS.lisp-expr"))

then you define the commands you’ll want to run:

(defvar command (put :cd "I/" :local-filename "data.csv"))
;; #<PUT cd: "I/", filename: "data.csv" {1007153883}>

and finally you call the run method on a profile and a command. Tada.

Deploying

Build a binary the classic way (it’s all on the Cookbook), send it to your server, run it.

(during a testing phase I have deployed “as a script”, from sources, which is a bit quicker to pull changes and try again on the server)

Set up a CRON job.

No Python virtual env to activate in the CRON environment...

Add command line arguments the easy way or with the library of your choice (I like Clingon).

Script n°2 and simple FTP

My script #2 at the time was similar and simpler. I extract the same products but only take their quantities, and I assemble lines like

EXTRACTION STOCK DU 11/04/2008
....978202019116600010000001387
....978270730656200040000000991

For this service, we have to send the file to a simple FTP server.

We have a pure Lisp library for FTP (and not SFTP) which works very well, cl-ftp.

It’s a typical example of an old library that didn’t receive any update in years and so that looks abandoned, that has seldom documentation but whose usage is easy to infer, and that does its job as requested.

For example we do this to send a file:

(ftp:with-ftp-connection (conn :hostname hostname
                                   :username username
                                   :password password
                                   :passive-ftp-p t)
      (ftp:store-file conn local-filename filename))

I left you notes about cl-ftp and my SFTP wrapper here:

Scripts n°3 and n°1 - specialized web apps

A recent web app that I’m testing with a couple clients extends an existing stock management system.

This one also was done in order to avoid a Python monolith. I still needed additions in the Python main software, but this little app can be independent and grow on its own. The app maintains its state and communicates it with a REST API.

 

It gives a web interface to their clients (so my clients’ clients, but not all of them, only the institutional) so that they can:

  • search for products
  • add them in shopping carts
  • validate the cart, which sends the data to the main software and notifies the owner, who will work on them.

The peculiarities of this app are that:

  • there is no user login, we use unique URLs with UUIDs in the form: http://command.client.com/admin-E9DFOO82-R2D2-007/list?id=1
  • I need a bit of file persistence but I didn’t want the rigidity of a database so I am using the clache library. Here also, not a great activity, but it works©. I persist lists and hash-tables. Now that the needs grow and the original scope doesn’t cut it any more, I wonder how long I’ll survive without a DB. Only for its short SQL queries VS lisp code to filter data.

I deploy a self-contained binary: code + html templates in the same binary (+ the implementation, the web server, the debugger...), with Systemd.

I wrote more on how to ship a standalone binary with templates and static assets with Djula templates here:

I can connect to the running app with a Swank server to check and set parameters, which is super helpful and harmless.

It is possible to reload the whole app from within itself and I did it with no hiccups for a couple years, but it isn’t necessary the most reliable, easiest to set up and fastest method. You can do it, but nobody forces you to do this because you are running CL in production. You can use the industry’s boring and best practices too. Common Lisp doesn’t inforce a “big ball of mud” approach. Develop locally, use Git, use a CI, deploy a binary...

Every thing that I learned I documented it along the way in the Cookbook ;)

Another app that I’ll mention but about which I also wrote earlier is my first web app. This one is open-source. It still runs :)

 

In this project I had my friend and colleague contribute five lines of Lisp code to add a theme switcher in the backend that would help him do the frontend. He had never written a line of Lisp before. Of course, he did so by looking at my existing code to learn the existing functions at hand, and he could do it because the project was easy to install and run.

(defun get-template(template &optional (theme *theme*))
  "Loads template from the base templates directory or from the given theme templates directory if it exists."
  (if (and (str:non-blank-string-p theme)
           (probe-file (asdf:system-relative-pathname "abstock" (str:concat "src/templates/themes/" theme "/" template))))
      ;; then
      (str:concat "themes/" theme "/" template)
      ;; else :D
      template))

He had to annotate the if branches :] This passed the code review.

Lasting words

The 5th script/app is already on the way, and the next ones are awaiting that I open their .docx specification files. This one was a bit harder but the Lisp side was done sucessfully with the efficient collaboration of another freelance lisper (Kevin to not name him).

All those tasks (read a DB, transform data...) are very mundane.

They are everywhere. They don’t always need supercharged web framework or integrations.

You have plenty of opportunities to make yourself a favor, and use Common Lisp in the wild. Not counting the super-advanced domains where Lisp excels at ;)


Links

I have done some preliminary Common Lisp exploration prior to this course but had a lot of questions regarding practical use and development workflows. This course was amazing for this! I learned a lot of useful techniques for actually writing the code in Emacs, as well as conversational explanations of concepts that had previously confused me in text-heavy resources. Please keep up the good work and continue with this line of topics, it is well worth the price! [Preston, October of 2024]




mo

"Dragons of Paris" and the Role of Time in the Mongolian Wizard Series

 .

The kind people at Reactor Magazine have posted my two latest Mongolian Wizard stories, one yesterday and the other today. Thursday's "Halcyon Afternoon" took place during a rare moment of peace for Franz-Karl Ritter. But in today's "Dragons of Paris," it's warfare as usual. 

Time has always been a little tricky in this series. The first story was clearly set in the Nineteenth Century but, though only a few years have passed, the series has now reached what is recognizably World War I. Mostly this occurred for reasons explained in "The Phantom in the Maze" and "Murder in the Spook House." (And which I anticipate giving me increasing difficulties in writing the next ten stories.) But also, in a more literary background sense, I wanted to cover the transition from a way of life now alien to us to something more modern, if not contemporary. 

So time may get a bit more slippery in the future. That's if, of course, the stories go in the direction I intend. Sometimes the fiction has its own ideas where it wants to go and the author can only follow along meekly in its wake.

You can read the story here. Or just go to the ezine and poke around. It's a good place to poke around.


Above: The illustration is by Dave Palumbo. I'm grateful for that.


*








mo

bro cmon america

Today on Married To The Sea: bro cmon america


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!




mo

dont show me your damn emotions

Today on Married To The Sea: dont show me your damn emotions


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!




mo

wheed smoke

Today on Married To The Sea: wheed smoke


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!




mo

mom were home

Today on Married To The Sea: mom were home


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!