How to stop eating bad food

Seriously, I can’t stop you from eating bad food, and there is no magic trick either, but I sure can help you with this one trick that really works.

If you want to stop eating something, or at least eat less of it, let’s say potato chips for example, just don’t buy any! So when you’ll get hungry at home, you won’t have any lying around and you’ll eat something else. It doesn’t make it any easier the rest of the time, but if you’re eating at home or eating food that comes from your home 80% of the time, we can say that 80% of the time you won’t be eating chips, which is probably already better than what you’re currently doing.

It doesn’t mean to eat less, but to eat better food, instead of buying chips, buy more vegetables/fruits/nuts or even meat if you want. Even if it doesn’t taste as good, when you’ll actually be craving for something, there’s a chance you’ll be too lazy to go to the convenience store and you’ll manage to eat what you already have instead of going out.

It really works, I do it, if I buy chips, I think about eating them as long as there are some left in the bag, but when I don’t have any, I eat anything else that I have and I manage to survive anyway. I still eat them sometimes, because life is not only about suffering, right? But I reduce access to it as much as possible so I can have more control over what I eat.

I used the potato chips as an example, but it should work with pretty much everything else, if you don’t have easy access to a particular type of food, you have a lot less chances of eating it.

The return of KromycKs

After another break, I am finally back at drawing comics. But this time, I have actually made a few changes that will hopefully allow me to have a consistent upload schedule.

As I already said many times in the blog posts of the old KromycKs website (I didn’t bother bringing those back on the new website because the content was only relevant to the moment they were posted), for quite a while now, I have been quite irritated by the whole process of drawing comics. The way I was doing it seemed rather inefficient and the results were never really up to my expectations. So it isn’t that I don’t have inspiration or desire to draw them anymore, it is just that it ends up being a pain in the a$$ to do.

So now that I finally got the motivation to start drawing comics again, I needed to make some changes to be able to enjoy it. Here is what the changes are:

Use the right tool for the job. Over the years, I’ve used a few methods and softwares for drawing my comics, I started with stick figures in black and white and quickly switched to more detailed drawings in color. I made some of them with vector graphics while some others were made in raster graphics (pixel-based drawing). What I recently found out, is that nothing prevents me from using multiple tools on the same drawing, by using the appropriate one for each type of job. What it means, is that instead of struggling to draw everything in a single software (characters, texts, bubbles, borders, etc), I could make each individual part with the one that is more suited to the job.

Do what you are good at. As I became more accustomed to the tools I was using, I always wanted to do a little more each time. In my case, a little more meant adding more details and drawing better shapes and characters. But I am not good at “details”, I’m more of the “big picture” type. So because the attention to detail is not natural for me, I ended up spending so much time getting everything perfect that I started hating the comic before finishing it. What is also particularly interesting about this is that I have always felt that my drawings were bland, even if I spent a great time “polishing” them. Then I remembered, when I used to play pool (billards), if I took too long to aim, I would generally miss the shot. My best shots were the ones where I didn’t took time to think, I just did it. This is the minset that I want to apply to my comics now, at least from the drawing perspective, do what feels right without overthinking it. This will make comics that contain many imperfections but will hopefully result in drawings that are more pure, more true to myself.

Have a good delivery. So as I said in the last paragraph, I want to think less about drawing and just do it. But I don’t want to apply that to the actual delivery of the “message” or “punchline” of my comics. The reason why is quite simple, finding ideas can be done at any moment of the day while doing anything else. And while I think about comics, I’m not thinking about the end of the world, so it’s a win-win situation. Also, thinking about the best way of presenting the comic is something that I enjoy doing, so I don’t consider it a nuisance. Ok, so the jokes won’t change much, but there will still be a change, and this change is closely related to the previous point. Because drawing is the most time consuming and annoying part for me, the choosing of the best delivery will depend on the complexity of what has to be drawn. So until I get really good at drawing, or more patient in general, I will find comic ideas that won’t require drawing complex scenes.

Recycle. This one goes hand in hand with the delivery. As you may have already noticed, most of the recent comics I made used the same image at least 3 times. This is something that I will try to prioritize in the upcoming comics, because it saves me time. So recycling panels and focusing a little more on dialogues. It doesn’t mean that I will completely stop making visual jokes though, because I still enjoy it, it only means that it won’t be the main focus.

As for the schedule, I want to keep the same as before which is to publish a new comic every week, around monday or tuesday evening. I still have many other projects, like writing articles, making music, working at my real-life job, so I can’t commit to more than that at the moment.

About the new website

LeKrocK has a new website, and it isn’t only about the looks.

For me, this new website is a turning point in my artist’s “career”, because I didn’t code it myself. It may not seem like a big deal but as a former programmer, when it comes to anything IT related, I like to do things by myself. So coding the website was a necessity for me. But the problem is that I am not doing it as a job anymore because I hated it, so I’m not that up-to-date with the latest tools and methods as I used to be, especially concerning security and design. I still have no trouble getting around writing Python scripts and coding some C++ but only to my own standards. This becomes a problem when building a website, because everything changes so quickly that you constantly have to adapt to those changes. Not that I have anything against learning and bettering ourselves and our techniques, but it’s just that this particular subject is not my cup of tea. I like coding desktop applications rather than coding for every existing web browser.

So what made me switch from a self-made PHP website to a WordPress one? Security is a big factor in this decision. For the same reason I decided to pay for a hosting service instead of hosting the website on my own home server. I don’t have enough knowledge on the matter to provide a safe environment for the users. I know the basics about password hashing, SQL-injection, GET/POST methods, HTTPS, firewalls, etc. But what about everything else that I don’t know about that are standard in the industry? Some people make a living out of learning and applying those concepts while I would have to spend a great amount of my free time learning about them only to clumsily apply them on my own website and server. Such time that I wouldn’t have to perfect my craft. So I decided to trust that these people will do a better job than I would, which I’m sure they do. I am well aware that WordPress is widely used on the internet, which makes it an easy target for malicious people, although I consider that it still is light-years ahead of what I could possibly make by myself alone.

An other factor in my decision, as I mentioned above, is that I can spend less time managing and more time creating. Coding and testing a website (or any kind of computer program) is a long task. Diving back into your code six months later to make an update can also be quite long and fastidious. Adding a new feature can also be long, depending on the complexity of the said feature, especially if it involves understanding the old code and changing it in addition to actually creating the new feature. And testing it all once done will also take some time. So now, all this coding and testing time can be invested in drawing more, writing more and making more music.

A factor that will make the most difference for the actual users, is that the website will provide the basic features of any modern website: the ability add comments, filtering options, a good looking design, efficient navigation, etc. Such things that I decided on not providing for the old website just to save time.

The last reason is that, to save time, I also didn’t add any admin features, which means that every time I wanted to upload something to the website, I had to interact directly with the server’s filesystem and the website’s database, which is not the most efficient workflow.

So here it is, the new website, that will hopefully make your experience and mine a lot better than it was.

Tk Grid Form Resize

Most of the places that explain how Tk’s grid works will tell you the following:

(The examples are made with Python but should work with any language that supports Tk.)

Use “columnconfigure” and “rowconfigure” with a “weight” of at least 1 on each column and row inside the frame. So for a 2×2 grid:

myFrame.columnconfigure(0, weight=1)
myFrame.columnconfigure(1, weight=1)
myFrame.rowconfigure(0, weight=1)
myFrame.rowconfigure(1, weight=1)

Use the “sticky” option for every widget that needs to stick to at least one side of its container. So let’s say we put a button into each cell created above and make them stick to all four sides of their cell:

myButton1.grid(column=0, row=0, sticky=(N,S,E,W))
myButton2.grid(column=1, row=0, sticky=(N,S,E,W))
myButton3.grid(column=0, row=1, sticky=(N,S,E,W))
myButton4.grid(column=1, row=1, sticky=(N,S,E,W))

But even after doing this, which can take quite some time on large interfaces, it still doesn’t seem to work. The missing element, which no one seems to tell, is that the “root” container also has to be set to a weight greater than 0 with “columnconfigure” and “rowconfigure”. In this case we just need to do it for the cell (0,0) because the frame takes care of all other divisions of the window. So as it is suggested in various places, you probably have something like this in your main file:

root = Tk()
root.title("My application")

Which means that “root”, too, has to be configured by adding:

root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)

And now, your widgets should stick to what you set them to.
Here’s the full code of the example:

#!/usr/bin/python

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("My application")
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)

frame = ttk.Frame(root)
frame.columnconfigure(0, weight=1)
frame.columnconfigure(1, weight=1)
frame.rowconfigure(0, weight=1)
frame.rowconfigure(1, weight=1)
frame.grid(column=0, row=0, sticky=(N,S,E,W))

button1 = ttk.Button(frame, text="Button1", command=lambda: print("Button1"))
button2 = ttk.Button(frame, text="Button2", command=lambda: print("Button2"))
button3 = ttk.Button(frame, text="Button3", command=lambda: print("Button3"))
button4 = ttk.Button(frame, text="Button4", command=lambda: print("Button4"))
button1.grid(column=0, row=0, sticky=(N,S,E,W))
button2.grid(column=1, row=0, sticky=(N,S,E,W))
button3.grid(column=0, row=1, sticky=(N,S,E,W))
button4.grid(column=1, row=1, sticky=(N,S,E,W))

root.mainloop()

Access Databases

I don’t know how it’s possible that someone at Microsoft decided that Access was still relevant in 2018. I can understand that at some point in the past, it could have been useful in some cases. But now that IT has evolved to what it is now, how can such aberration still exist?

Ok, I studied computer science a few years ago and worked in the field for a few years, so I consider that I have a respectable amount of knowledge and experience in IT, yet I still have a hard time doing the basic things with this software. I believe that Microsoft has great engineers that know a lot more about computers and programming than I’ll probably ever know, so how can something like Access even exist?

A little while ago, I had to get back into Access do to a few tasks that I would describe as “basic”, without getting into details about what I did exactly, let’s say that I had to build a database, and build forms and reports that made the data usable by the common mortal. And I almost failed at it! I would probably have done a better and faster job coding the whole thing in C# and SQL.

In the past, I also had to work with older versions, to as far as Access 97, and frankly, I don’t think anything changed in those 20 years, it just seems like the same software with a more modern user interface (mostly the top ribbon, the rest is just the same old gray color). The same old features and ways of doing things, without much improvement in overall usability.

I can understand that there is definitely a market for something in-between Excel and SQL Server, but why does it have to be this. If I can find my way into Excel and SQL Server, why would it be hard for me to understand how Access works? And I’ve never heard of any fellow coder having a favorable or even neutral opinion about that software, we all hate it.

There must be a reason, I guess it’s because it is a piece of s**t of a software. In general, as IT specialists, we can get around in pretty much any software, no matter if we have used it before or not. Because most applications follow similar guidelines when it comes to the features they provide. But Access seems to get away with doing its own thing and not caring about the rest. (not sure why I’m thinking of Internet Explorer at the moment…)

Maybe it still lives nowadays just to allow companies that are stuck with it to continue using their tools without investing in a real database server? But if it is so, why not scrap Access and do a user-friendly version of SQL Server and SQL Server Management Studio? Like some kind of standalone application that manages its own local server (if they haven’t already done it) that can live on a standard PC/workstation and be passed around, just like Access, but with the features and predictability of a real SQL server. Or just make a front-end for SQLite, which does a pretty good job at managing server-less databases.

I don’t expect any business owner or any non-IT worker to learn SQL, but if a software provided a user-friendly way of using databases like Access does while also having a real SQL engine under the hood, wouldn’t it be nice for all of us poor coders that will inevitably have to help those people at one time or another?

Task pairing

If you’re like me, you can’t stay focused on something for more than a few minutes, and it can become quite hard to get things done. I found a way to be able to keep working without having to take breaks every 15 minutes (or every 5 minutes for some tasks). And this is what I call “task pairing”.

The name should be speaking for itself, it’s about doing tasks in pairs. More precisely, alterning between two tasks on relatively short intervals of time.

Here’s a real-life example to illustrate it:

Let’s say that it’s saturday afternoon and I’m thinking about what I would like to get done before supper. I would like to read a chapter of a book, draw a comic, update my website and study for an upcoming test. In my case, writing and drawing for too long give me funny feelings in my hand, so I try to not overuse the same body parts in my pairings. So if my study method requires me to write things, I won’t pair it with drawing. And if studying requires some reading, which is probably the case, I won’t pair it with book reading either, or else the pairing will lose its meaning.

So if you catch my drift here, a good pairing is about doing two things that are not related, that don’t use the same habilities/senses and that use different body parts, whenever possible. The goal here is to alternate between two tasks that are different enough to eliminate boredom. In the case of the example above, I’ll choose to pair “Reading a book” with “Drawing a comic” and pair “Updating my website” with “Studying for my test”.

Now that my pairing is decided, all I have to do is to start doing those tasks. My personal way is to switch between the two tasks everytime I start to lose focus, which amounts to approximately every 5-10 minutes. So in short, it can look like this: 9 minutes of reading a book, 7 minutes of drawing, 12 minutes of reading a book, 6 minutes of drawing, and so on. Then when I consider that I’ve done enough reading and drawing, I’ll do the same thing with the “Update my website” and “Study for my test” pair.

By using this method I feel “fresh” while accomplishing my tasks and my overall work time is greater, which isn’t the case if I try to do the same activity for a whole hour without break. The time interval doesn’t have to be random, you can adjust it to something that fits your liking or depending on the nature of your tasks, like a fixed time of 15 minutes for each task for example. But if you come to the point where you switch after more than half an hour between tasks, I don’t think that the effect will be noticeable and you probably don’t have much attention deficit.