Menu

TECHNOLOGY


5 Reasons to go to a Hackathon
5reasonshackathon

Last weekend I flew to Zurich to attend my second "Hack Zurich", the biggest hackathon in Europe. Overall that was the fifth time I went to a hackathon and while I got on the plane I found myself thinking, "Why do people go to hackathons? What is it that makes people want to spend their whole weekend working on a project they've just come up with?" So during the weekend I tried to find out several reasons to got to a hackathon.

1. Meet cool people. At a hackathon you don't just get to work on a project for the whole weekend, but you can meet lots of different people. People might think that when you hack you're just absorbed in your own task, but hackathons are really quite social events. I've met a lot of smart, interesting, and passionate people at hackathons and for me it's definitely the number one reason to keep going to these events.

img_5082

2. Learn new things. Hackathons provide the perfect opportunity to learn something new. If you are, for example, a back-end developer you can try doing some web design. Or you can design an app for a specific cause you don't know that much about yet and learn more about a topic while researching it. If you work together with people you've only just met you will probably discover new ways of solving a problem. And you will most likely learn something about yourself, about the things you like to do and how you work in a team with new people.

3. Get inspiration. I find hackathons very inspiring. I get inspired by how driven people are to work on something for 48 hours straight. It's really cool to see people work with so much passion and it makes me excited to work on projects myself. Moreover, you hear and see lots of cool ideas during hackathons, which can help you come up with project ideas of your own.

Screen Shot 2016-01-02 at 22.07.12

4. Challenge yourself. A hackathon is also the perfect opportunity to challenge yourself. Of course, going to a hackathon in the first place is already a big step for most people, but once you're a regular hackathon goer you can still step out of comfort zone by trying to do something new. Instead of using the programming language you always code in, you can try out a completely new language. Or if you're not a developer you can try to do a hack focussed on a topic you don't know that much about.

5. Win prizes. If all the above reasons can't convince you to go to a hackathon, then maybe the prospect of winning a cool prize can. Most hackathons have lots of different sponsors that provide (technical) challenges and give prizes to the best hacks. I personally don't care too much for winning something, but if you're set on making an award worthy hack, you should probably already do some brainstorming in advance and get together a strong team.

img_3274

Of course, these reasons don't just apply to technical hackathons. Two of the hackathons I attended were Empowerhacks, where you focus on solving problems faced by female refugees rather than winning a prize. And a friend of mine recently pointed out that she thought a hackathon sounds a bit like project runway where you have to make a piece of clothing in a limited amount of time. So yes, actually you can hack anything and in my opinion everyone should go to a hackathon or do some hacking every once in a while.

Have you ever been to a hackathon and what did you like about it? Or would you consider going to one in the future? Let me know your experiences and thoughts in a comment :)

Follow me on: Bloglovin - Instagram - Twitter

Comments



Using front-end frameworks
newdesignframeworks.jpg

I haven't written a post in a while now, because I've been quite busy with work and also because I was working on a new design that is now live!

For my job as software engineer I only write back-end code in Java, so I try to keep my knowledge of front-end design up to date by doing small projects now and then. I really enjoy writing front-end code, because it's very visual. Actually, I find front-end engineering quite addictive, because you get immediate feedback when you've changed something and I often get really caught up in it, spending a lot of time trying to find the perfect font, or adjust the border of an image to perfectly align with another image etc..
This is the third design I made for my website, and this time instead of trying to do everything from scratch I decided to use front-end frameworks to make my life a bit easier. I started off looking at AngularJS and quickly found angular material cards, that looked exactly like what I wanted for my new layout. I managed to make my posts appear in a card format, but I found it was quite difficult to align them in a nice way, with my most recent post having twice the height and width of the other featured posts. I googled a bit to find a way of aligning things in a good and simple way and came across Bootstrap's grid system, which divides a page into columns and makes scaling your layout for phones and tablet a incredibly easy.

To be quite honest, the way I scraped pieces from different libraries together to get what I want is probably not the best way to design a web page. In fact, a professional designer will most definitely not do it this way. Because I already had styling for my website, adding the frameworks interfered with my custom styling, especially where I used very standard tags such as 'body' and 'page-header'. I already wrote a post with Tips and tricks for making a website from scratch, but I wanted to give you some more tips about what to do and what not to do when you're making a new front-end design for your website.

  1. Explore existing frameworks and choose one that best fits your requirements. Do this, preferably, before you write any styling in css at all. The ones I am using now are: Bootstrap and AngularJS

  2. Build your website in a systematic way and use appropriate tag names to identify different components. If you find it hard to this, try finding a (professional) website that has a layout similar to what you want, and have a look at their source code to see what types of tag names they used.

  3. Try not to change too many things at once, because it will be very hard to keep track of what piece of code did what, especially if you're using frameworks. Try to get to your desired design step by step, and you will have to spend less time cleaning up messy and confusing code.


I'm very curious to know what you think about the new look of my website, so please leave a comment! :)

Follow me on: Bloglovin - Instagram - Twitter

Comments



Hacking for female refugees
empowerhack_header About a year ago I attended my first hackathon and I have been to a couple more since. I always enjoy going to hackathons and find them inspiring. Recently I went to a really special hackathon which I found worth writing about again. Screen Shot 2016-01-02 at 22.07.12 Screen Shot 2016-01-02 at 22.02.13 The hackathon is called Empowerhack and, unlike traditional hackathons, is not just about technology. This hackathon focusses on finding solutions for challenges that are faced by female refugees around the globe. Moreover, the projects that were started during the weekend aren't "done". We will continue working on them and possibly pass them on to the next Empowerhack to eventually really use them in the refugee camps, urban settlements or any other places where the projects could be used by refugees. Also, because this wasn't a regular tech hackathon, the people who attended Empowerhack were a lot more diverse. There were designers, front- and back-end developers, and also people who work in refugee camps. This last group of people was especially valuable because they had first-hand experience with female refugees, our target group, and so they could give us advice on how to make our projects most valuable. Screen Shot 2016-01-02 at 22.04.39 I really liked how for this hackathon people were building something for others rather than work on their own technical portfolio or win a prize. At first, I had to get used to the fact that we were talking a lot rather than actually coding, but this really helped in determining the needs and situations of female refugees. Moreover, because we focussed a lot on content and we could ask questions to people who work with refugees, I feel like the projects are well on their way to being deployed in the real world. 12291253_1015903805138163_1027451616593108085_o My team created Coding for refugee women, an informative website that encourages women to start coding and provides them with a lot of available on- and offline coding resources. This website is targeted at women who have reached their "final" destination and are ready to start thinking about a future in which they can work again. Not all women have worked before and others might not be able to continue the work they did because their diplomas and skills are not recognised in their new country of residence. Learning how to code can lead them towards new career opportunities. The reasons why we decided to focus on coding are firstly, because the three of us are all women who are very passionate about coding, secondly, you don't need any prior knowledge or skills to learn how to code, thirdly, the only thing you need is access to a computer, and lastly, coding is in high demand and so the chances are quite high that you will find a job if you know how to code. 12311221_10153907044878081_282150345944390232_n The website is live, but it's still under development. At the moment, only part of the website is available in Arabic so we need to translate the rest and possibly translate it in other languages as well. We want to provide more extensive information and explanations about coding in general, and we also have some ideas about extending the website to a mentoring/buddy platform where women can find other women who'd like to help them learning how to code or follow courses together. I personally learned a lot about the refugee crisis and understand more about the problems especially female refugees are facing. It would be great to see the projects we started develop further and hopefully some of them will end up being used by refugees. If you feel passionate about helping refugee women as well, make sure to join the Empowerhack Facebook and I might see you at the next event :) (All photos by Will Edgecombe) Screen Shot 2016-01-02 at 22.06.47 Follow me on: Bloglovin - Instagram - Twitter

Comments



#FromWhereICode
fromwhereIcode

While writing my dissertation I did a small creative project on the side inspired by the hashtag #FromWhereICode. I spent three months on my research, about half of which was coding. I coded at home, at university, in cafes, and even on holiday in France, and I tried taking pictures of as many of my coding spots as possible. And this is the result! The photos from top to bottom were taken: early in the morning at home in London, at Timberyard (a nice cafe on Old Street), in the train from London to Edinburgh, at home in London again, in the garden of the house in France we were staying at, another spot in the garden, at the swimming pool, in the train from Lille to London and in the garden at home in the Netherlands.

IMG_4386

IMG_4394

IMG_4510

IMG_4502

IMG_4614

IMG_4641

IMG_4643

IMG_4524

IMG_4820

Follow me on: Bloglovin - Instagram - Twitter

Comments



Ode to my dissertation
odetomydissertation

I haven't written a post in a really long time, and the reason why: I was writing my dissertation. But I'm finally done now! On the one hand, this makes me incredibly happy and relieved, but on the other hand it makes a bit sad too, because this means I'm officially not a student anymore.. I'm a bit reluctant to accept this fact, and so I have decided to not completely let go of my thesis yet and dedicate this blog post to the research I have conducted over the past three months.

"Function Approximation and Solution of Differential Equations Using Particle Swarm Neural Networks". That's what my thesis is about. Don't worry if you don't understand a word in that title. To be honest, I had no idea what function approximation was about or why anyone would want to do it either before I started. And the same goes for Particle Swarm Neural Networks. But now I suppose I'm a bit of an expert so I'll try my best and explain what I did.

Functions are used for lots of things, such as running processes in machines, or doing calculations. The machines they are used in vary from your own computer to safety critical machines such as power plants. As you can imagine, it's desirable for the functions that are used to run quickly and smooth. Some functions are very well suited for solving certain problems, but they are very time consuming. This is when function approximation is used. The goal is to find a function that approximates the original function used, so it solves the problem almost as well as the original function, but takes less time.

Function approximation can be done in a lot of different ways. In my research I used artificial neural networks. These are learning models inspired by the human brain. The brain itself is a network that consists of brain cells, called neurons, connected to each other. An artificial neural network is built up of neurons as well. They are used, for example, for classification problems (such as handwriting recognition) and robotics. These networks are trained to learn things in different ways. For my project, I used Particle Swarm Optimisation (PSO).

PSO is a type of algorithm that is based on the interactions and dynamics of a flock of birds or school of fish. The algorithm solves optimisation problems by moving particles, which represent birds, that each have their own randomly initialised velocity and position towards the solution in the problem space. In real life a problem for a flock of birds could be finding food. Imagine the food is hidden somewhere in a field above which the birds are flying. Some of the birds are closer to the food than others, and some are better at finding the food than others. The one bird that is closest and best at finding the food, is the global best bird/particle. At each iteration the birds' positions and velocities are updated, until the training time of the network is over. The positions and velocities are updated in such a way that both the decisions an individual bird/particle makes based on its own reasoning and experience about finding a solution to the problem, as well as the part of an individual’s decision making that is influenced by what the leader of the group does are taken into account.

hugeFlockOfBirds

In my research, I used PSO to approximate two non-linear functions and to solve a differential equation. The goal was to get accurate results by using as small networks as possible, because the smaller the network the less computation power is needed. I won't go into all the details here, but the results I found were quite mixed. For some, but not all, of the experiments networks trained with PSO proved to be a better at approximating functions than networks that were not trained with PSO. I also found that for some tasks small networks (with only 5 neurons) gave incredibly good results, but for others it was better to use larger networks (75 neurons). For those who are interested in reading my full research, you can find my dissertation here.

Although at times, this project drove me absolutely crazy, I really enjoyed working on it. Doing research was for me a really unique and essential part of my whole university experience. I will miss being a student, but for now I'm really excited for what the future holds :)

Follow me on: Bloglovin - Instagram - Twitter

Comments



How to follow a website
RSS_feed
I've recently done some research on how you can follow a blog or website that is not made using a big blog platform, like my own website. When you have a blog on Wordpress, Blogger, Squarespace or something similar, it is very easy for readers to 'follow' your blog. If they have a blog themselves on the same platform they can just click a follow button and whenever you write a new post it will appear in a feed on the homepage of the blog platform together with all new posts from the blogs they follow. Most blog platforms also provide widgets that allow people without a blog to signup for your blog and receive an email every time you post something new. However, if you have a custom blog (like me) you'll have to make these follow plugins yourself. At first I had no idea how to do this, but after googling for a bit I found the solution: RSS.

RSS stands for Rich Site Summary and is basically a document with a summary of your updated content. A lot of websites use RSS and it's quite likely you have seen the RSS icon. "Subscribing to a website RSS removes the need for the user to manually check the website for new content. Instead, their browser constantly monitors the site and informs the user of any updates." (Wikipedia)

If you use a blog platform, the RSS feed of your blog is automatically updated whenever you write a new post. This document is then constantly checked by the browsers of people who follow your blog. If their browsers find that the RSS feed has been updated, they show that updated content. So in fact, clicking a 'follow' button means subscribing to the RSS feed of a page. Because I don't use a blog platform I have to update my RSS feed manually but that's very easy once you've figured out how to do it.

RSS is written in XML format which ensures compatibility with many different machines and programs. You can write as little or as much in a summary as you want, but you at least have to include a Title, Link, and Description. I personally also included an image and publishing date. I'd recommend following this tutorial if you want to create your own RSS feed. This is the XML I wrote for my last post:

RSS feed
Whenever I upload a new post and update my RSS feed, your browser will know this. That is, of course, if you somehow 'subscribe' to my website. There are lots of different ways to do this. I have tried the following:

  1. Bloglovin - Bloglovin is used by a lot of bloggers. It looks very stylish and you can download it as an app as well. The only downside of bloglovin is that you need to create an account and it's quite female focused. My blog on bloglovin: https://www.bloglovin.com/blogs/merel-theisen-14144975

  2. Chrome plugin - This is a Google Chrome plugin where you can add the feeds you want to follow. It shows you if any of the feeds have been updated and allows you to immediately click on the new post. The cool thing about this plugin is that you can follow any site that has an RSS feed, not just blogs. For example, you can follow newspaper sites, reddit, and so on. This is the link you have to add to follow my site: www.mereltheisen.com/feed

  3. Feedreader - Feedreader is similar to bloglovin, but more basic. It's suitable for any kind of user and you can also log in using Facebook or Google+. And just like with the chrome plugin you can follow any kind of website. Use this link to follow my blog: www.mereltheisen.com/feed

So from now on you will be able to know whether I have written a new post without having to manually check my website!

Comments



Tags
Tags

Recently, I've been working on a new feature for my website: tags. On my wordpress blog I can automatically put my posts in a category, and I decided to implement this on my website as well. In this post I'll explain how I did that. If you don't know how to code, but would like to understand what I'm talking about, you should check out Codecadamy, Udacity, or Coursera and take an introductory coding class :)

The way in which I post my blog entries on my website is by filling in a form, where I enter the title and content for my post. For adding tags I had to, first of all, adapt the form to include an option of selecting which tags apply to the post. I decided to restrict my tag choice to Fashion, Food, Life-style, Technology, and Travelling, and added checkboxes for each of these categories. So when I write a post, I can check the checkboxes for the tags that apply to the post, which can vary between no tags or all of them. post form

Then I had to include a function in my Python code that gets the value of the checkbox, when it's checked the tag will be added to the post.

get checkbox value

When it's checked I want the tag to appear underneath the post, otherwise it shouldn't show. So I had to make sure the checked tags actually appeared underneath the post by adding some lines to the HTML.

no if statements html

What this code does, is that it adds the value of each tag that has been acquired by the Python code above. So if I have checked the 'fashion' checkbox this line: fashion = self.request.get('fashion') will find that the box has been checked and then this line:

p = Post(parent = blog_key(), subject = subject, content = content, password= password,
#TAGS:
fashion = fashion, food = food, lifestyle = lifestyle, technology = technology, travelling = travelling)

will put the value fashion = 'Fashion', and this will be then added to the post.

Of course, I didn't just want the tag to appear, but I wanted it to look pretty too, so I styled it in CSS and added a tag icon in front of the tags which I found on Font awesome.

I tested my code on my local host and everything looked great. Unfortunately, this wasn't exactly the case when I deployed my code. The problem was that for all my old posts (the ones I added without tags)  it showed the tag icon with None None None None None.. What happened was that my code was checking whether I had checked any checkboxes or not, but at the time I wrote those posts I didn't have the checkboxes yet. So I figured the code was showing "None" to indicate that the checkboxes weren't present. I solved this by creating a couple of if statements that checked whether there was a value for p.fashion at all. p.fashion will have the value 'Fashion' if the checkbox has been checked and it will have no value if the checkbox hasn't been checked or if there wasn't a checkbox at all. is tag true

You might say it would've been easier to just edit my old posts and add tags to them, but unfortunately it seems like you can't edit old database entries with Google app engine. It's a problem that I keep running into (when I restyled my website) so if someone has a solution for this, please let me know!

I managed to get it all working, so now I just had one other step to finish: get posts with a certain tag to appear on a page dedicated to that tag. For example, all posts that have the fashion tag should be on the fashion page as well as on the home page. I did this by creating an HTML page for each of the categories and also added these to the menu. Then on each of the pages I added code to make sure that all posts with the belonging tag appear on that page. This is the code for the fashion page:add post to right page

Specifically the line  {% if p.fashion %} checks whether the post has the fashion tag and if it does it should appear on this page.

I was quite happy with the result at this point, but I still wanted to somehow get my older posts without tags on these pages as well. One option, was just to copy the posts' content into the HTML, but that isn't a very elegant solution, and it makes the HTML quite lengthy. So I decided to make a horizontally scrolling bar with a picture of each old post belonging to that category, and linking that picture to the whole post. Which I did like this (of course the LINK TO PAGE should be an actual link and IMAGE OF POST an actual image):

horizontal html

horizontal css

And now you're looking at the result! I'd love to hear your opinion on this new feature, so let me know in a comment :)

Follow me on: Bloglovin - Instagram - Twitter

Comments



Django Girls
djangogirls

I'd like to dedicate this post to an amazing organisation called Django Girls. Django Girls wants "to inspire women to fall in love with programming". They empower and help women to organise free Python and Django programming workshops by providing tools, resources and support. In the workshops they help you build your first application using HTML, CSS, Python and Django. A typical workshop takes 8 hours and people work in small, 3-person groups with a coach dedicated to each group.

They organise events all over the world and on the 20th and 21st of March I'll be joining them in London as coach! I'm really excited to help people writing their first application and making them enthusiastic about coding. And I'm sure I'll learn a lot myself too! Unfortunately, you can't apply for this workshop anymore, but they have lots of events coming up in other places, such as Groningen, Paris, New York, and Cardiff. If you're a woman who's curious about programming but doesn't have any coding experience yet, I'd definitely recommend going to a Django Girls workshop.

I must say that in general I feel that organisations should be a bit careful with organising tech events just for women, because I think we should strive for equality in tech and I don't think excluding men from events will help to achieve this. Moreover, such events might give women a wrong idea about what it's like to work in tech, since in the real world it's not very likely that you'll be working just with women. In fact you'll probably be one of the few or maybe even the only woman working with just men.

Nevertheless, I think Django Girls is a great initiative and I guess taking your first steps into the world of computer science as a woman is not that scary if you're surrounded by other women instead of a lot of guys who have coded since they were 15 and make Star Wars jokes all the time (yes, I have experienced this). In fact, I think if such an organisation would have been around when I was younger, I might have started coding earlier on. So grab this chance and fall in love with coding! :)

P.S. I'm currently working on some new features for my website, such as tags which will categorise my posts into fashion, food, life-style, technology and travelling. You might have seen that these pages are still quite empty but they will be filled soon! And have you noticed you can now 'Like' and share my posts directly on my website? :)

Follow me on: Bloglovin - Instagram - Twitter

Comments



Condé Nast International Hackathon 2014
hackathon_collage

In the weekend of 22 - 23 November I participated in my first ever hackathon. Yes that's right hackathon. For the people who have no clue at all what that entails and might be thinking that hacking is all about stealing nude photos of celebrities, a hackaton is an event that generally lasts 24 hours where developers come together to work intensively on software projects. You're right, It probably can't get any more geeky than that, but my first hackathon was organised by Condé Nast International (the big publishing firm that publishes amongst others, Vogue, Wired, Tatler and GQ). So a it was bit more glamorous than the average hackathon ;) This video was made during the event and shows quite accurately what happened:



The whole weekend was a fantastic experience and I would recommend anyone who's interested in developing or designing software to participate in a hackathon at least once in your life. I was really surprised by how much you can achieve in just 24 hours (including sleep, yes I know, I cheated..). Everyone was extremely motivated, which really inspired me. It is really cool to be working with people from different developing backgrounds and I certainly learned a lot from my teammates. Even though we only just met, our group became quite close and our hard work definitely paid of because we won the third prize! So that means I'll receive a year's subscription to one of the fabulous Condé Nast magazines :D

Follow me on: Bloglovin - Instagram - Twitter

Comments




Older posts in Technology