SHA-1 Is Dead, but Not Quite Yet

Even though SHA-1 has been considered deprecated for many years now, it is still widely used. About a month ago, it was broken in practice, rendering it useless as a cryptographic hash function. At this point, most people will probably stop using it for security related purposes. An insecure “secure hash algorithm” is basically useless, isn’t it?

Well, I don’t think so. Obviously, it’s a very bad idea to rely on SHA-1 for security. However, the algorithm still converts input into a short binary or hex string of fixed length, which might be useful for some fun projects. You could map pretty much anything to a SHA-1 hash: color values, coordinates, musical notes, words,… – you get the idea.

Actually, that sounds like a great idea for a mini project: I will generate (almost) unique identicons with SHA-1 hashes. More stuff to blog about, yay!

MVC and Observer Pattern

Since I’m working on a rather small project, I decided to implement a simple version of the Model-View-Controller pattern. Here’s the basic idea:

trainer
|
\_ model
:  |_ app.py
:  |_ data.py
|
\_ view
:  |_ res
:  |_ view.py
|
|_ main.py

In the package model there are two modules: data, which knows relevant data (e.g. letter codes), and app, which contains logic. The class app.App should be used for requests from other modules.
Code related to the look of individual views can be found in view.view. Image resources are saved in the subfolder view.res.

The program is started by executing main.py, which contains the Controller. It loads app and view, instantiates classes and connects Observers with Observables.

Continue reading “MVC and Observer Pattern”

Quiz Design

When building a GUI, I tend to spend way too much time on style decisions. I’m pretty sure that there are ways to speed up that process, but I have yet to figure them out. For my Amino Acid Trainer project, I’m trying to make decisions faster by structuring objectives in a TODO list and working my way through.

My TODO List

  • Choose general style (modern, retro, funny, cute, professional,…)
  • Choose fonts
  • Find fitting color palette
  • Sketch layouts for most views (positions and sizes – no color!)
  • Decide how buttons should look (mostly shape, but also a few color ideas)
  • Color all elements on my sketches (revisions might be necessary)
  • Create images (buttons,…)
  • Implement most views with dummy data
  • Add missing parts

Doesn’t seem too complicated, does it? Let’s take a closer look at my objectives.

Continue reading “Quiz Design”

The Next Project

It’s time for a new project – let’s see if I can apply what I’ve learned.

Since I’m terrible at learning things by heart, I’ve always struggled with amino acid formulas and letter codes. However, when working with ion channels or similar biomolecules, you need to know these things really well. Therefore, I’ll build a small quiz to help me (and maybe some other people) memorize structures, one-letter and three-letter codes. Continue reading “The Next Project”

Time to Start Blogging.

Hi! I’m Mailea. About a year ago, I enrolled at TU Vienna to study informatics. In order to get more coding experience, I work on personal projects as well. Whenever I realize I’m especially bad at something, I try to find tasks to help me improve in that area.
That’s where this blog comes into play: I noticed that I’m having a very hard time writing descriptions for my projects. I really need to get better at writing English texts! For this reason, I’m starting to blog.

Blogging also offers another important advantage: By documenting my progress, I’ll be able to analyze what works for me and what doesn’t. Maybe this will help me avoid typical mistakes and improve faster.

What I’ll Be Writing About

Most posts will be about current projects, ideas and problems I run into. However, I also want to blog about a few other topics, e.g. my hobbies or interesting articles I find online.

Let’s get started!