Friday, 29 August 2014

-Searching- finding like a real pro

Everybody uses search engines, but a big amount of users doesn't know that the search engines have a lot of powerful functionalities for searching, and it's no surprise! usually these functionalities are only known by tech savvy people. I will guide you through tricks that are explained using google, but most functionalities are present in all the search engines, and trust me :P if you don't know them, you're missing like 90% of the power of search engines, so even if you think you're an expert, keep reading! you might find something useful or that you don't know. I'll also include complicated search scenarios and a way to overcome them, because I believe that finding information for some topics can be complicated using the conventional ways.

Let's start with some facts and considerations about searching:
  • Google doesn't care about punctuation, so stop using "," and ".".
  • Keywords are not case sensitive. This means that apple = aPple for google.
  • The search results are affected by your location. This means that if you want to search for something in a place you're going to be on vacation, you  will want to change the location. To do this, on the search results, you can clic on Search tools and then change your location there:
  • The order of the words establish it's importance, so chose it carefully! This also means that the first results are more related to the first word the next results with the first and second word and so on. A good way to find lyrics in google is to set the word lyrics at the beginning and then the phrase or the name of the song. For example, searching for: lyrics "song of myself" will search first results containing lyrics, and then within those results, google will look for "song of myself".
  • Be specific (we will talk about scenarios were this is not the best approach).
  • Google will notify you at the top of the results, when words are being ignored.
And now let's check this search tools and recommendations:

  • Phrases. This is my favourite functionality, you can enclose words with: " to search for phrases, for example, when searching for a song that you don't remember the name, but you do remember the lyrics, you can search for something like: "and salt betrays my eyes again" lyrics.
  • Images. This is also an awesome tool! If you find a picture, and you would like to know more about it (for example, the place were it has been taken) you can save the picture on your desktop and then go to the search images in google, and then click here:                                                                                       
  • That will open a window and you can select the image you want to search. It will show results matching the same picture, and similar images.
  • Searching in a particular web site. Sometimes you know that the information you're looking for is in a web site, but you just don't remember were. For this cases, if you include: site:www.website.com plus the words you're searching for, google will look for results that are only in the web site specified. For example, searching for site:www.rainforest.org trees, will look for the word trees in the web site: www.rainforest.org.
  • Word definitions. If you want to know the definition of a word you can search for define:word. And google will look for a definition (like a dictionary).
  • Or. The word OR helps you search for one term or another. For example, if you want to search for results that contains chocolate or pie, but not both! you can do it by searching for: chocolate OR pie.
  • Wildcard. The "*" character is like the joker card for google. When you use it, google will  match it with any word. This can be very useful, used in combination with phrase searching. For example, when you're searching for the lyrics of a song and you don't remember a complete phrase, This is the result of searching for: lyrics "ever * away with me"             
  • Results of introducing a phone number. Sometimes, when you just have the phone number of a person, you can search for it using google. In order for this to  work properly, you will want to make sure that the results are searched in the location were the phone belongs. 

Now it's time for the cherry of the cake ;) I will give you advise for searching under complicated circumstances, you'll be surprised by it, give it a try when your conventional ways of searching are not producing the expected results:

  • Different pages were your info can be. Suppose that you installed a new version of an operating system and you want to update your drivers to make them work properly. Where are you going to search? usually you'll search for the driver's page and then you'll download the drivers there. But... what will you do if the page is down! are you going to wait until it is up again? For this particular case, you know that most parts of your machine are of another brand different from your computer's brand. So, for example, if your gpu driver is Nvidia, you can go and search for it in the Nvidia's page! or maybe in a page of another brand that also uses the same Nvidia gpu that you've.
  • Searching for a very specific topic. Were did you search when you want to buy something? did you use google? Of course no! you go to some online store and then you search for the item there. The same logic applies to some very specific or complicated topics, for example, when you search for a math problem that is uncommon, it's better search in sites like: http://math.stackexchange.com/.or to make questions there, usually you'll receive a response in less than a day. There are many communities online that are focused on particular topics, usually they've a very good and structured web site with lots of information and search resources. Another thing that you can do, is to search for something more generic, and then take a look at the results, and came with another more particular words to find what you're looking for.
  • Searching for something difficult to describe or for something that you don't know much about. In this case you can also try to search for something more generic, for example, if you saw a recipe for a cake with a very specific name, but you just don't remember the name, you could try searching for cake's recipes, and then get some more context to do a better search (for example, the ingredients, the country's recipe, etc). 
  • About online systems. Are you using online systems (CRM,  RP, school web sites, etc) ? if your answer is yes, remember that you can take a look at the communities of the online system for answers, they'll probably came across the same issue that you need to address.
  • Searching for images. Searching for images can be though, sometimes google image search is not good enough, so if you want to search for a set of images, that are related to some topic, you'll find a lot of resources in tumblr or flickr. Particularly in tumblr, you can find lots of accounts that are related to some topic, for example: http://strictly-mma.tumblr.com/ is a tumblr page were you can find lots of mma related images.


Ok, this post is comming to an end :) My final advise is to use common sense and create your own search heuristic based on your situation. 

I want to thank you for reading, and if you enjoy, please share! If you want me to talk about some software related topic, please let me know in the comments!


Friday, 22 August 2014

Being extremely successful at working remotely

Working remotely can be easy and awesome, you just need to realise that it is way more different in comparison with working in an office and also use a lot of common sense to be effective and successful.

These are some conditions that are -almost- always true when working remotely:

  1. You need to be available for meetings
  2. Answering and reading email is important
  3. You'll need a good internet connection
  4. A second monitor is a must
  5. You'll be at least in one meeting during the day
  6. You'll do less exercise because your home is your new office



I will present recommendations based on the given conditions, but you can always evaluate your own conditions and set up your work rules to be productive:
  1. Stay visible! Make sure that during your work hours you're always reachable. Log into your IM account and stay available during work. I suggest to not spend time messing with the IM client status. Current chat clients have ways to identify if you've been away for a period of time enough to put you in a "away from computer" status. And also, changing your status to "busy" can be bad, why will you change it? if you are going to be really busy, and you're not being available for a period of time, you can log off and let everyone know the reason. On the other hand, if you're again "available" will you remember to change the status again? if you don't, then the members of the team could think that you're busy and they'll not contact you
  2. Have a comfortable and effective work place. Let's talk first about furniture: Make sure that you have a desk with enough room for your hardware requirements. I suggest to have enough room for a laptop and a second monitor, another important piece of furniture, is a comfortable chair, make sure that you don't hurt your back or neck with it. Talking about an effective place, you've to take into account that you're probably being in meetings during the day, so I suggest to have a quiet place or make it quiet with a noise cancelling curtains for example. another important piece for this is a good headset, a "trick" that many people don't know is that you can probably use the headset of your cellphone in your laptop, those devices are usually great, good looking and using them can save money.
  3. Be communicative. Are you about to finish a task? Have you been working a lot with a co worker? Are you changing your lunch schedule? All of these situations needs to be communicated to the team. For example, if you're about to finish a task, you'll probably need to pair with a member for reviewing or actually, your manager will be assigning a new task soon depending on how much time you're planning to spend on the current task. It's a good idea to let the members of the team that are actively working with you know when you're grabbing lunch. 
  4. Be ready for stand up. Prepare a couple of minutes before stand up: check your items, your needs, open the meeting, go to the restroom, bring a cup of tea or coffee (in case you enjoy them!)
  5. Email and chat latency. Set email and chat notifications to "on" and answer them quickly. For chat in less than one minute. For email, well... depends, but ideally in less than 10 minutes, sometimes email can be a little more complex. And also, don't forget to check all the emails you receive,  no matter if they're a general announcement, you'll probably want to know if the office is being closed for a couple of days :)
  6. Schedules. Try to decide on an appropriate schedule. Set your work hours and lunch time and let everyone know. If you're going to change something for a reason, you should always send a message!
  7. Cameras. Yes! video chats are really awesome when working remotely and they're so overrated. Seeing the people of the meeting will help in understanding the point of view of your team, you will feel closer to them and then you'll communicate better. Just give it a try! it really improves overall communication. 
  8. Remote meeting tools. Try to use as much as possible tools like sharing screen, drawing in the screen, letting other person take control of your computer. Record your meetings. These tools will help in being more productive and will improve communication.
  9. Set rules based on your own context. Talk with everybody on your team and set the appropriate rules for your team. For example, if a member of the team is arriving earlier than everyone, he could probably do the tasks of database maintaining.
  10. The other side of the mirror. For those people on the team working in the office, remember that some rules also apply to you. For example, if you're working closely with someone, it  would be a good idea to let them know about your meetings and the times when you're going to be unavailable, remember that the remote team members cannot go to your place and see that you're not in your spot. In general, it's a good practice to set up a calendar visible to every member of the time with the available and unavailable times of everyone.
  11. Do more exercise!  Trust me... you'll gain some weight because you'll be doing much less exercise, so this is the right time to attend some kick boxing classes and stay in shape! -ok just kidding, but really, try to do exercise, running, hiking, martial arts, yoga, gym, whatever you decide-

As I've already say,  these recommendations are based on my experience, every team should sit and dedicate time in creating their own particular rules, these will make them more productive.

I hope you enjoy these entry! feel free to leave your comments at the end of the post.

Thursday, 21 August 2014

First entry

Hey! My name is Roberto, I'm a computer scientist, and I'll write articles about software development, effective ways of working and addressing software related issues. And hum! you might find some personal entries, but I promise to make them interesting :)

Have a look! you might find something useful, or you can suggest me to write about a topic :)