Vision Summit 2016 is probably my craziest conference trip to date. It took 25000 kilometres in distance and over 30 hours of travel just to attend 2 days event. Did I mention that I decided to go and bought all my tickets 5 days before? Yes, it was pretty crazy :–)
Was it worth it? Hell yeah! It was a huge VR conference, with over 1000 participants and lots of cool things to see :–) .. Plus, apparently all devs taking part in the event are going to receive free HTC Vive dev kit – nice surprise!
In my opinion, the best quote of the conference goes to Jeff Noris from NASA, when he was talking about possible future applications of VR in space exploration:
sorry to tell this will not be the future - this is happening today
Watch the full keynote to experience it.
I would like to share with you 3 demos I enjoyed the most. What they have in common, is that I was able to forget about VR hardware and just enjoy the experience. The list:
And 3 more demos, that I really liked:
If you haven’t yet tried latest generation of VR hardware on well made content, like mentioned above – you have to try.
Your mind might be blown away and you have to experience it to understand what I mean.
]]>A well known fact – many of us are afraid of speaking in front of an audience.
Actually, many people fear public speaking more then they fear death – sounds pretty serious :–)
Did you know that practicing in virtual reality can remove this fear? It may not be obvious at first, but speaking in front of a virtual audience can boost your confidence in the real world.
There is some research to back this up, for example:
Higher perceived audience interest (in VR) increases self-rating and reduces public speaking anxiety.
or Virtual Reality Therapy: An Effective Treatment for Psychological Disorders that talks about application of VR to threat phobias.
A few years ago in Toastmasters, I’ve learned about a technique that helps me focus on the audience when practicing speech at home.
It involves finding some old magazines with people on the cover and setting them up around the room, so that you are facing a “virtual audience”. It’s not a very responsive group of folks, but there are very patient :–) Anyway, the technique helps with things like maintaining eye contact.
Another tool I’ve learned, is “positive visualization”. Basically, you imagine that you are delivering your speech and the audience is happy and smiling. This, in turn, makes you more relaxed and confident when you get to deliver your speech for real.
Recently I’ve combined what I’ve learned in Toastmasters with the research I’ve found on-line. “Public Speaking for Cardboard VR” was born :–)
In the app, you are standing in front of a very receptive and supportive audience. They look cartoonish which will have a relaxing effect on you.
The app helps you learn to maintain eye contact with members of the audience, by rewarding you every time you do it. Look one of the avatars in the eyes, and he will give you a standing ovation.
Last but not least, because you will be presumably wearing VR goggles, there is no way to rely on notes. By mastering your speech by heart you will be able to keep your audience engaged by maintaining eye contact throughout the speech.
Please share in comments your feedback on the app. How to make it better? How to make it more useful for you?
Maybe you had an important speech to deliver and you used the app to practice… Please comment below and tell us all about it :–)
Get the “Public Speaking for Cardboard VR” now.
]]>I am working on MarineVerse together with Olga, with a great result. For example, check out the awesome logo :–)
Currently I am using Unity to build simple cardboard apps and also experimenting with GearVR. Below you can see me showing an early version of “Point of Sail” app.
Also, finally I’ve signed up to a sailing club in Melbourne and with a start of Feburary I will be joining a sailing course. Looking forward to it :–)
Coming back to MarineVerse, I am working on it with full steam ahead. There is a landing page and blog.
Please follow MarineVerse on twitter and like it on Facebook. Cheers :–)
]]>It was 4 days event held on a camp site in Queensland, Australia. Imagine mixture of conference, hackathon and social event. It works great and I highly recommend this format :–) ( Checkout the photos on twitter )
Thank you everyone who made CampJS a blast :–)
During the weekend I’ve decided to experiemnt with virtual reality in the browser.
I’ve used webvr-boilerplate to build simple virtual art gallery prototype.
To make it more fun, I’ve used websockets so you can be in the gallery with someone else.
Below list of images I’ve used in the demo:
Please have a look at a demo – it works the best in VR :–) (open in browser on the phone and click VR icon)
PS. One of the great things abotu CampJS was ability to show what you are building and get ideas and feedback from people around you. Ben from SceneVR showed me how easy it is to build something similar in SceneVR. It’s really cool project, check it out :–)
]]>It’s pretty much in the name :–) Have a look at screenshot to get an idea of what it is.
What is special about this “Game of life” is, that you get to experience it in Virtual Reality, giving you a new, unique perspective.
You can learn more about Cardboard here and read about Game of life on wikipedia.
The app is made using Unity 5. I’ve started learning Unity recently and I am impressed how easy it’s to get started. They have good tutorials that get you going and assets store full of things you can use in your apps.
It’s really simple implementation written in C#, using SDK.
I’ve seen a great qoute on VR sometime ago:
Virtual Reality is BY FAR the biggest delta I've ever seen between what it looks like from the outside vs what it feels like on the inside.
— Marc Andreessen (@pmarca) October 26, 2015
I agree, and what it means is that you really need to get your hands on a Cardboard and try out the Game of Life for yourself. :–)
]]>One definition could be:
Delivery engineering team enables others to deliver business value faster.
Others, in this context, relates to product/project software delivery teams.
It seems to be a fairly new term, judging by the lack of definition in google or a recent tweet from #devopsdays in Melbourne:
Finally an appropriate name for what i actually do - Delivery Engingeering. Thanks #devopsdays
— griggle (@griggle) July 16, 2015
Another, maybe more common name seems to be “tooling team”.
It’s definitely not a “devops team”.
In the delivery engineering team, that I am a part of, some of the metrics we are trying to improve are:
I guess there are many ways to go about moving above, but in the teams I’ve worked with, the day to day often was:
The product teams should have full freedom and responsibility to run their apps in production.
So it’s not the responsibility of a delivery engineering team to:
Some of the techniques and practices important for a delivery engineering team:
Maybe :–)
You most likely need delivery engineering, and if you are big enough, you may decide to form a team around it. The size I have experience with and seems to work OK, is one small delivery engineering team for roughly three product teams. To use spotify terminology, delivery engineering team is part of a tribe and supports squads.
This is based on my experience, what do you think? :–)
Are you a member of delivery engineering team? What do you think is important to share?
Are you a “customer” of delivery engineering team, for example a member of product team? What are your toughts on having a delivery engineering team?
]]>So what is it about?
Functionally, the vision is to have a platform to track how you feel and generate insights into your health.
Adults get an average of two to four colds per year(source) I’ve got mine over the x-mas break. Not fun, but a good motivation for a pet project.
From technology point of view, it’s just an excuse to learn more about tools involved (Android, Rails and machine learning + more?).
So how can you get involved?
You can help by just getting on board, using the tool and providing feedback.
It’s early days, but you can already easily capture how you feel. Over time I plan to add features around analysing the data. Maybe one day HeCoSiRe will be able to notice: every time you start feeling sick and you eat a lemon you actually don’t get sick.
There is a website hecosire.com where you can create an account.
You can also get an Android HeCoSiReApp.
Last but not least, there is a Twitter and Trello if you want to interact about the product.
It’s a pet project and as much as I am interested in the product I also want to learn how to use tools involved.
For example I am new to Android and I’m building an Android app. I am sure the way it’s done at the moment it’s not the best way to do it. Overtime I hope to learn and improve, but in the meantime feedback and pull requests are welcomed.
Yes – HeCoSiRe is open source, you can find it on HeCoSiRe github.
This also means, that if there is a feature you would like to see in HeCoSiRe, you can add it ;)
HeCoSiRe – what a strange name? Yes I know, I needed something quickly for my “rails new” ;) It’s from “Healthy, Coming down, Sick and Recovering” cycle that I decided to use in the app.
If you are reading this, next step is to create a HeCoSiRe account and start tracking :)
]]>Unless your Jenkins project just stopped building with this exception hudson.plugins.git.GitException: Failed to fetch from git@github.com
you are unlikely to get much of this post ;)
I guess there might be bunch of the reasons why you could see this message, but here is what happend to me..
My project hosted on github suddenly started to fail when building in jenkins. Initially I had no clue why and I’ve done bunch of google searches:
1 2 3 |
|
Thinking a little bit more about my situation. We have a Jenkins that is connecting to GitHub using different ssh keys depending on project (deploy key approach ). So I continued to google:
1 2 |
|
That led me to additional debugging commands: ssh -vvvT git@github.com
and adding in ~/.ssh/config
1 2 |
|
While checking out projects from github and looking and debugging output problem became quite clear. Git, while using SSH, was authenticating using incorrect ssh key.
In the end, what happend was that previous day I’ve replaced ~/.ssh/config
on Jenkins box. Among other things, there was a problematic bit of config:
1 2 3 4 |
|
ControlPersist – that automatically starts a background ssh(1) multiplex master when connecting. This connection can stay alive indefinitely, or can be set to automatically close after a user-specified duration of inactivity
Above configuration was causing issues, when different projects were being build on Jenkins that were meant to use different ssh keys (while talking to github).
Removing above config solved the problem.
]]>During last 12 months or so, I was luckly enough to work in a team that was interested and happy to practice it. Also, teams around me were curious about it and I’ve run a few introductory sessions.
Together with Ilya, I’ve written up a short blog post explaining a little bit why and how we have been practicing it. You can find the blog post here.
]]>Why use different name? After the last internal Code Retreat we speculated that the “legacy” was a put off for some people, that would otherwise enjoy the event:
Legacy code during weekend? I see enough of that during the week!
So this time, we are changing the name, trying to make it more attractive ;)
Anyway, why should you attend? In my opinion, Legacy(Refactoring) Code Retreat is worth your time because:
You can register for Refactoring Code Retreat in Melbourne here.
If you would like to learn a little bit more about Legacy Code Retreat, have a look here.
]]>If you are a speaker, at the end of the meeting Ah-Counter will tell you how many times he caught you making inappropriate interjections, for example:
…
Greg - 7 times.
Mark - only 1 time.
…
This always leaves me wondering: “When exactly do I make those sounds?”. Reports like this are delivered too late, after I had already finished speaking.
I’ve seen clubs solve this problem – Ah-Counter has a ring and uses it anytime he catches you. “Ding!” and immediately you are reminded to stop making “um”.
My current assignment is to get a dinging device for my club – Docklands Toastmasters. I’ve spent some time today going around shops looking for something like this:
but I couldn’t find any… So instead I’ve made an app ;)
You can get Dinging Ah-Counter Android App for free here.
]]>If there are changes, we want to precompile assets and push any changes back to repo.
Here is example deploy script that does it:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Interesting bits:
config/database.yml
which was problematic combined with RAILS_ENV=production
git push
work. Also, you will need to add extra ssh key to be able to push.1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
I coundn’t google it myself, so I hope this helps!
]]>I’ve managed to ask simple questions like “With whom do I have the most contacts in common?” or “What is the most popular first name in my network?” (Piotr & Marcin)
I have decided to use inmaps from Linkedin. Below you can see screenshot of my network:
By using Chrome Developer Tools you can see Network traffic made by inmaps. There are 2 interesting resources for us:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
I’ve saved content of both on my file system. This is the data that we can now import into Neo4j.
First you need Neo4j, you can get it here: http://www.neo4j.org/download
I’ve used simple Ruby script similar to this in order to import data:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
Once data was imported I went to http://localhost:7474/browser/ and started experimenting with queries.
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 |
|
1 2 3 4 5 6 7 8 9 |
|
That’s it for today ;)
]]>Recently we had an situation were CloudTrail was invaluable tool in finding out what happened. The only issue was usability of the logs.
We are new to the tool, so at the time we had a logging enabled, but not much more. When the incident happened we pretty much just run s3sync sync
and than worked with logs “by hand” in a manner similar to this:
1 2 |
|
It worked, but left me with a feeling that there must be a better way.
Talking with colleague on the tram an idea emerged in my head. How hard would it be to get something useful out of ElasticSearch and Kibana? I never used either, but I’ve been told I should be pretty easy.
I am here to report, it was easy and fun.. taking less than 2h to get to interesting results.
In the end, I had a great interactive tool that enabled me to interact with logs in a fun an engaging way. I could easily ask questions like:
So how have I done it?
To maximize fun and learning factor, I’ve decided to do everything in Docker.
Getting docker – I am using boot2docker and my first step was updating it..
Choosing container – I’ve started with centos. Unfortunately I had issues with getting ElasticSearch to work (missing commands) and in the end I’ve decided to try ubuntu. This proved much easier, so ubuntu was my base image.
Base ElasticSearch image – preparing it was quite easy. The main thing I’ve learnt was to use --rm
flag to enable container internet connectivity (this was needed in order to access package repositories). I’ve installed java, apache, ElasticSearch and Kibana. Once I was done, I’ve made sure to run docker commit 8cc7b46cXXXX elasticsearch
.
Running container with ports exposed – docker run --rm -i -t -p 80:80 -p 9200:9200 elasticsearch /bin/bash
Uploading CloudTrail logs – I’ve found cloudtrail-elasticsearch-import project on github, which made it quite easy and matter of running node import.sh.js --elasticsearch http://IP:9200 --bucket BUCKET_NAME -r REGION -p PATH/2014/06/
Profit – At this stage I had my Kibana dashboard ready for me to start playing with.
A few days later, I’ve decided to play with ElasticSearch a little bit more.
Nice side effect of using Docker – I still had my ElasticSearch image without any data on it. I’ve decided to do something different this time – visualise my bank transactions.
Long story short, it worked – the main challenge was how to upload exported CSV into ElasticSearch.
Apparently, the way to copy file from my laptop into running container involves netcat:
1 2 3 |
|
Once the file was there, I used elasticsearch-river-csv plugin to load it. Just make sure elasticsearch
user has access to that file and can create files in the directory. (As always, looking at /var/log/* helped in understanding what was going on.)
Happy hacking!
]]>In this short post I will share some of the things I have been doing to get myself on the right track again.
This is maybe the most difficult question, but once you get it figured out everything else becomes easier.
In the past I used following system with good results:
Recently, I have been introduced by Andy to intermediate objective maps. They complement the system I’ve been using, by visualising it nicely. I’ve created small little tool for myself to make creation of intermediate objective maps easier.
Check it out and let me know what you think.
The best tip Andy gave me was to share my map with my peers and get feedback. I am going to implement this advice soon :)
As a bonus, few weeks back I was wondering how much time actually I have before I am 30, hence this little tool, the age calculator.
To visualise what I am working on at the moment (and where my attention should be) I’ve started using recently virtual board provided by Trello.
At the moment my personal kanban board has following columns: “Thinking about”, “To do”, “Doing”, “Waiting / Tracking” and “Done”.
I am experimenting with the on-line tool for this, as it gives me a lot of flexibility. Trello has a good mobile client and nice web UI.
During a normal week I have heaps of interesting thoughts. They are inspired by conversation I have, tweets & blogs I skim over, etc. It’s quite easy to move on and forget about them.
To avoid this, I am capturing all those little thoughts and ideas in my “Inbox” Evernote notebook. Every Saturday I go through my “Inbox” and I triage the notes. This gives me a chance to action some of them, or at least plan what to do next.
Evernote again is great for this, as it has easy to use mobile client that doesn’t get in the way. For triage, Evernote desktop client is efficient and enjoyable to work with.
Hope you are inspired to try some of these ideas out. What tools and techniques are you using to stay focused?
]]>Two years ago a bus full of employes of 1 company department was heading for a team event. I was sitting on this bus and chatting with a person next to me.
“Hey, did you notice that in our department we are quite good at knowledge sharing?”
“You know, we show each other what are we working on, we practice together”
“How about other departments? We don’t share so much with them?”
“Yeah, let’s do something about it!”
and we did.
If you are working with other people, and sometimes you want to change things then please listen. I would like to share with you 3 simple techniques you can do, to introduce new ideas successfully.
The first technique is called “Brown bag”. It’s a informal meeting held over lunch , hence the name, as people are bringing their own lunches.
How can it help? In the office, people are often busy, have conflicting meetings, and generally don’t have time to brain storm and listen to your new ideas. That was certainly the case in my situation. The problem I & my friend wanted to tackle was inter department knowledge sharing. We were thinking about organising internal conference and that certainly meant involving bunch of people across different departments. By having our kick off session over lunch, we were able to gather bunch of otherwise busy people on very short notice. In the session, we shared and explained our idea and we used the second technique that I would to cover next..
“Ask for help” – it’s so much easier when you have people helping you make your idea happen. In our case, organising a conference was certainly not a 1 person or even 2 people job. So many things needed to be done: Securing sponsorship and approval of management, organising food and venue, finding speakers, creating posters and many other small jobs. By asking for help during brown bag we got a few volunteers that would help us take care of some of those areas. By asking for help we decreased our workload and we made our idea more likely be successful. One of the volunteers helped us with using the third and last technique I would like to mention today..
“Corporate angel” is high level execuctive who has an interest in your idea and supports it. We identified 1 of the company directors as our corporate angel, and luckily he liked our idea. He said his executive team was in fact thinking how they can engage employees more. By having him on board it was much easier to secure sponsorship or negotiate with middle management. We were planning on having our conference during business hours and we wanted to have as many people attending as possible. Some of the managers we talked to were concerned how this will affect their projects and were suggesting that we try something smaller instead. This was against our goal of reaching to people we don’t know across different departments and organising something extraordinary. By having support of the company director it was possible to get a green light and do it despite some concerns from our managers.
We used more techniques than “Brown bag”, “Ask for help” or “Corporate angel”. You can read about those and more in a book by Linda Rising and Mary Lynn Manns called “Fearless change, patterns for introducing new ideas”, I highly recommend this book.
In the end, we managed to organise our conference. It was a great success, with 2 tracks, around 10 speakers and almost 100 people attending. This all started by 2 people having a crazy idea in the bus.
In a big company, two normal workers, like you and me. So if we could do it, you can do it. Go, read the “Fearless change” book and made your ideas happen.
]]>I am quite happy with this purchase, it’s really convenient to be able to see who is calling or read a message at simple glance. I have chosen Sony Smart Watch, mainly because it runs Android and supports my Nexus phone.
I have created my first app in two sessions on consecutive weekends (two Sundays). The first session was about being able to deploy simple “Hello World” app to the watch.
As I never developed before for Android, the first challenge was how to put my phone into debug mode. It’s quite easy:
At the “About” screen, scroll to the bottom and tap on “Build number” seven times.
If your device is in debug mode, you should be able to run, and see:
1 2 3 |
|
Then, I was following instructions from Sony Developer website and I was able successfully deploy my “Hello World”. Yay!
The second sessions was about actually developing the app. The app is truly a minimum viable product, created and deployed to Play store within one day ;) The problem I’ve decided to tackle was “when is the best time to leave home/office in order to catch a tram?”.
I’ve based my solution on “SampleControlExtension” provided with the SDK. Using it as starting point, step by step I’ve transformed it into the final form. The app is very simple. It consists of “Preferences” screen on the phone, where you setup your tram stops and routes, and simple screen on the watch displaying next 2 tram arrival times.
The app let’s you configure 4 different routes. When you open the app on the watch, 4 background tasks like this will be started:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
The end result looks more or less like this:
The MelbTram app is available for free in Google play store, check it out!
]]>As always the day was full of fun and learning :) In Melbourne we had a good mixed group of around 25 developers. People were programming in Ruby, JavaScript, Java, PHP and probably some other languages as well.
CodeRetreat was hosted by REA with food sponsored by ThoughtWorks. REA was hosting us for the second time in the last 2 months – not so long ago we had run an internal CodeRetreat there.
As far as our CodeRetreat goes, we followed a fairly standard format. We started the first session at around 10AM and we had 5 sessions in total. “Multi-facilitation” was interesting experiment we tried. Our main facilitator was Ilya Paripsa, however he had 4 other people helping him. So the first session was facilitated by Ilya and Luke, second session by Luke and Qing and so on. The setup worked reasonably well, with the main benefit of giving more people an opportunity to have a go at facilitating. I wouldn’t recommend it as a default arrangement2, but it might be something to consider when you have many volunteers.
Our main theme of this CodeRetreat was Test-Driven development. What exercises have we tried?
1 2 3 4 5 6 7 8 9 10 |
|
I am looking forward to the next CodeRetreat, hopefully within the next few months :)
]]>