Block category of sites (gaming) at certain times on a Ubiquity USG

I’m writing this as a reminder to myself, but it might also help others since it took me quite some time to figure out all the bits and pieces. It uses DPI (Deep Packet Inspection) to classify network traffic and therefor doesn’t work for everything. For example, it didn’t block Minecraft.

How to

Open a terminal and ssh to controller with username and password that you find under USG Settings -> Site

ssh <username>@192.168.1.1

Enter configuration mode

<username>@ubnt:~$ configure

Save the configuration file

<username>@ubnt:~$ save file

Open another terminal and SFTP to controller

sftp <username>@192.168.1.1

Download file

sftp > get /config file

Open file in text editor which can save with unix line endings, for example Notepad++.

Add

name DPI {
    default-action accept
    rule 10 {
        action drop
        application {
            category Games
        }
        time {
            starttime 09:00:00
            stoptime 14:59:59
            weekdays Mon,Tue,Wed,Thu,Fri
        }
    }
}

(mine is in between “name AUTHORIZED_GUESTS” and “name GUEST_IN”)

Upload the configuration file with SFTP

sftp> put file

It gets uploaded to /home/<username>/

In the first terminal, where you are in configuration mode, load your new file

<username>@ubnt:~$ load /home/<username>/file

Try out the settings by committing the change. Committing means that your config is applied until next reboot.

<username>@ubnt:~$ commit

If it works as intended, save the changes.

<username>@ubnt:~$ save

Resources

To view category for a site

<username>@ubnt:~$ sudo /usr/sbin/ubnt-dpi-util search-app amazon

I followed this guide first to create the rule for blocking according to DPI, then downloaded the config, added the time specifications and then uploaded and applied the modified config.
https://help.ui.com/hc/en-us/articles/218732788-EdgeRouter-Create-a-Firewall-Rule-using-Deep-Packet-Inspection-DPI-

Here is where I found someone adding times
https://community.ui.com/questions/Firewall-source-Mac-address-fails-on-commit/f416b90d-8f71-4c43-8fdc-7afcc92889b8#answer/de3f0b91-9d97-4d48-9d30-95bb03510be0

X Unit Tests, 0 Integration Tests

Sometimes a gif says more than a thousand words. In this case, what happens when you only focus on unit tests and don’t test anything else?

 

Here is my personal collection of “X unit tests, 0 integration/usability tests”

 

unittest_faucet.gif

The faucet works, the sink works…

 

 

 

unittest_truck.gif

The tunnel works, the truck runs…

 

 

 

unittest_blower.gif

The trash can works, the dryer works…

 

And my personal favorite:

 

unittest_lock.gif

The lock works!

Looking for a programming job

Here is my full resume as PDF: UlrikaMalmgren-Resume
LinkedIn profile
(Unfortunately I’m not interested in consulting, relocating from Stockholm or remote work at this point in my life)

I’m looking for a job as a programmer. Even though I’ve been working with software development for 10 years, I’ve never written production code for money. There has been the occasional helpful tool, automated testing and such but never anything a user has seen. After a year as an agile coach, I’m dying to dive into programming!

(But why? I think partially because of this)

What I’m looking for is a team where I’ll spend most (all?) of my time working together with the team members and where people share my love for quality. I want to spend my time pairing or mob programming. I don’t know what kind of programming I want to do, I’m just ready to explore.

Even though this will be the first time I dive into production code programming, I’m not a Software Development rookie.

What I bring to a Software Development team

  • knowledge and understanding about testing. What it is, what it isn’t.
  • experience as a team coach
  • knowledge and understanding (and love!) of Kanban principles
  • problem solving intuition
  • pushing on to finish: I have the endurance to get things done. I mean really done with all the details.

I have basic understanding of git, terminals, unit testing, java, python, ruby, cucumber, selenium. This means that I’m able to do some basic programming projects without spending too much time on Stack Overflow. 😉

I feel that my Master of Science in Information Technology studies have helped me reach good intuition about problem solving and troubleshooting which I’ve been developing ever since. I have to be honest, I do love a good troubleshooting from time to time. KTH also boosted my self confidence. After all the operating system, parallel computing and message passing labs, I feel that there is nothing I can’t conquer.

From my time as a tester I’ve learned many ways in which things can go wrong. Testers quickly learn that their work is not done until the i’s are dotted and the t’s are crossed which means that there is no room for sloppy work. You need to fire up IE7 even though no one in their right minds wants to use it.

As team coach, I’ve developed an arsenal of techniques to help a team from slicing work into meaningful pieces to getting to know each other’s personal values. I’ve also experienced what benefits a pull system can bring to a team. I believe these to be helpful for any team.

 

My Software Development values

(If we don’t match in values, there is no point in going further than this)

  • one small thing at the time: it’s just better and faster. Not everything can be highest prio.
  • get feedback quickly: we need to know if we’re on the right track. Let’s not plan in details too far ahead.
  • working together: it’s better for quality and creativity. It’s a waste of time to not pair.
  • take time for improvement: you need to carve out time for improvements and use it well. This is as important as features.

 

So there it is: junior developer but senior team member. What do you have for me?

Here is my full resume as PDF: UlrikaMalmgren-Resume

LinkedIn profile

 

 

 

 

I want to be selected for my gender

There is a lot of discussion regarding picking keynote speakers, speakers in general or even recruiting. Some say we need more women speaking but many women say that they don't want any special treatment, they want to be selected based on merit.

Like many, I dream of a world where this isn't an issue. In my dream world, there is a natural mix of people from different origins, ages, sexes, etc in our industry. In my dream world, I even leave room for people who prefer Star Trek over Star Wars (I'm generous that way).

Until that it is a reality, I'm not scared of being selected based on my gender. I used to feel sad about it, getting job offers and invitations to speak just because I'm a woman (you can often tell. Sometimes because they say "we need a woman".). I questioned if it really was my competence that was attractive or just my gender.

But I have come to realize that the truth is that because I'm a woman I bring more to table than my male equivalent.

You know what, I even bring more to the table than then my male superiors!

What we are lacking in our industry isn't talent. There is plenty of talent to go around. What we lack is diversity and all of the benefits diversity brings with it.

So I'm not only bringing the audience competent ideas, I'm showing that it's as normal for a woman to have competent ideas and to present them on stage. I'm bringing in my perspective on things and unfortunately, because we raise our boys and girls differently, my perspective will differ in a general sense from men's. By bringing all of this, the audience's world is growing.

Until we have a more equal proportion of women and men as speakers, I'll always wonder if I was picked based on gender or merit. But I have decided that this will be the price I have to pay in order to give more women the ability to speak at conferences. I'm willing to pay that price because I believe in the end result.

I have come to realize that my ideas + my gender is more valuable than just great ideas and one particular piece of information made me change my mind.

I listened to Sharon Vosmek presenting at Stanford Entrepreneurial Thought Leaders Series and she talked about some interesting research.

Researchers at MIT discovered that three factors have an impact on the collective intelligence of a team:

  • the ability of the team members to interpret other's feelings (can I tell that you are sad?)
  • the equality in the conversation (is everyone given enough room to speak?)
  • the number of women in the team.

The natural question is of course, up to what proportion do women increase the collective intelligence of a team? Up to a 100% according to the researchers. The theory is that women are in general better at the two first factors than men (probably from how boys and girls are raised).

The implications are huge. It means that we should acknowledge that the interpersonal skills are very important for software development. It means that you can favor picking a women over a man without feeling bad about it. It might even mean that you are making a bad decision if you don't.

My wish is that more women would accept that the world right now is unequal and that they, like me, start to pay this uncomfortable price to pave the way for more equality.
My wish is also that more men would make the equally uncomfortable choice of picking women over men sometimes to pave the way for more equality.

Until we are in an equal world, I want you to pick me for my gender.

From insecure teenager to appreciated consultant

A fixed mindset almost made me quit computer science

Video of the talk (swedish)

For me, university was hard. I guess in a way it is for most people, but the reasons for each person are different.

Here’s my reason: I was stuck in a fixed mindset. It wasn’t until I heard Linda Rising at the Agile Turku Day that I realized this had been the problem. Linda explained the work of Carol Dweck, a professor in psychology and the author of Mindset.

In short, you can either see your abilities as fixed and static the same way as your height for example. Or you can see them as muscles, being able to grow. If you see them as fixed, you either have an ability or you don’t.

So this happened to me in a programming class: I felt like all of the others understood things faster than me which meant their ability for learning programming was better than mine. This also meant that I would not be able to learn as much programming as them. And worst part: there was simply nothing I could do about it!

It got so bad that I almost gave up. I thought “I apparently don’t have any talent for this. What’s the point in even trying?!”.

Now, I don’t even believe in talent. Perhaps, the very best in the world could have something special with regards to the topic they excel at. But then again, the very best in the world have spent an incredible amount of time practicing that particular topic…

This means I live by a growth mindset nowadays; given enough time I could learn anything. My biggest issue now is prioritizing all of the topics I want to learn and making sure I pick one at the time to focus on. Otherwise my stress level goes up.

Yesterday I gave a talk about this at my old university, the Royal Institute of Technology in Stockholm, at an event called Future Friday. The goal of the event was to attract students to apply to the master of science program in information technology. The attendees were 18-19 year old and trying to decide what to study.

The title of my talk was “From insecure teenager to appreciated consultant”. About 100 people came to listen and 95% of them were girls. It makes me wonder, is this something we need to talk about more? Not the success in your career, but your struggle in your career. What was hard for you when you worked your way to where you are now?

Either way, I think everyone should know about the concept of fixed or growth mindset because everyone I talk to has a story related to it and as long as the concept of “talent” is out there people are going to believe that abilities are static. So, read Mindset, and spread the word!

Agile Testing Days 2013

For the second year in a row, I take a taxi from Tegel airport in Berlin late in the evening and spend half an hour being transported through the dark towards the Dorinnt hotel in Potsdam. There is something odd about traveling in dark, feeling the journey in your body but not seeing it with your eyes. I also know that the journey back will be the same, same darkness and same road, same weird sensation.

Maybe that’s why I can’t help but think that there might be something to it when last year Scott W. Ambler kept referring to “the real world” during his keynote (as opposed to us in the audience). Maybe Potsdam isn’t part of the real world? Do I really know if Potsdam exists if I don’t even know what the way to get there looks like? Later during the conference, a perfect walk in the sunshine and the cool air with the trees wearing their autumn colours, passing by beautiful buildings which seem to be part of a film set makes me wonder again: is this for real?

I also know that the people I met and bonded with so quickly are people I might never meet again. A transient and intense connection, because we are there and sharing the experience, but what do we have when the experience is over?

It could be that we’re all passing a portal to this imaginary land where people are friendly, where ideas have worked out perfectly, where teams perform the best they can and where software is cheap, fast and helpful to all of its users. Maybe Scott W. Ambler is right, the Agile Testing Days isn’t the real world.

So what?

It’s the entire point of the conference.
To be inspired.

It might sound weird, but I do want to believe that there is place for rainbows and unicorns out there. I want to hear from people excited about successfull experiments in their teams. It’s fun to know that somewhere, some technique helped a team get closer to their product owner. To be honest, I also love to listen to the person talking about his 145 people team with releases once every two years (they used to have it once a year, but you know, educating the users takes so much time…). Because when I talk to him about my 4 person team with weekly releases, I’m the one in unicorn land.

So that’s what you get when you travel to another place and attend a conference like this one: an exceptional experience. But what do you make of that? Your conference budget for the year all spent for a couple of days in the fairy tale world. What I’m trying to do to bring the magic experience back home is to pick one (just one!) of those lollipop-ideas and actually try it for real.

In the real world.

It might become my tale to tell next year.

(Speaking of bonding quickly, my new record is 2 minutes starting from striking a conversation in the ladies room to handing out my business card hoping intensely she would email me and not just throw it away)

The window is opened

I didn’t renew my contract for my part-time job after the end of this month. I really want to finish my master’s thesis and now I’ll be able to do it full time.

So, the window is opened. I’ll be done in the beginning of march, and I’ll need a job!

About me:
– I believe in agile methods
– I feel good when I TDD
– I own a xkcd t-shirt
– I really know how to sell myself

(“The window is opened” is a reference to HIMYM (S05E10). My favorite sitcom.)