<![CDATA[Raul HC blog]]>https://raul-hc.github.io/https://raul-hc.github.io/favicon.pngRaul HC bloghttps://raul-hc.github.io/Ghost 1.25Sun, 07 Oct 2018 17:40:46 GMT60<![CDATA[Places I've been vs places I want to visit]]>
]]>
https://raul-hc.github.io/places-ive-been-vs-places-i-want-to-go/5bba439aaf885b4c8a81c57dSun, 07 Oct 2018 17:35:18 GMTPlaces I've been vs places I want to visit
Places I've been vs places I want to visit
]]>
<![CDATA[Live abroad]]>Since the age of 16 years old, I've dreamed of living in another country. Maybe it is because I don't like the way some things are dealt with in my country, maybe it's the desire of knowing something different from what I've used to. I really don't know. But I

]]>
https://raul-hc.github.io/why-i-would-like-to-live-abroad/5bba35c5af885b4c8a81c57bSun, 07 Oct 2018 17:28:12 GMT

Since the age of 16 years old, I've dreamed of living in another country. Maybe it is because I don't like the way some things are dealt with in my country, maybe it's the desire of knowing something different from what I've used to. I really don't know. But I do know I want to live abroad at least for some years of my life.

“It's better to regret what you have done than what you haven't.”

Because of the above I have been trying to think about some of the things that living in another country would mean for me:

  • Getting out of my comfort zone. The process of adapting myself to a new home will help me to discover more about myself. Besides the more you know the more creative you are ;)
  • Learn to be alone. I think a huge amount of people are not able to be alone and deal with loneliness and I really believe this is a critical skill in the world we live these days.
  • Learn new languages. I have realized that the best way to learn something is by using it in my everyday life.
  • Discover new cultures & people. There is always something you can learn from other points of view. Another good motive for this is to practice tolerance which I consider a very important skill too.
  • In addition to the last one, by moving abroad,  I will be able to identify differences between how cultures deal with everyday problems.
  • Also, there are a lot of great opportunities out there waiting for qualified people, so it would be very stupid to limit my range of action to just one place.
  • The last reason I came up with right now is that sometimes I feel I don't belong to the place I live. I refuse to be part of 'Pensée unique' but looks like I'm the only one worried about this in the place I am right now.

I am sure that I would find even more reason but with all these ones in mind I am already taking action to fulfill my desire of living abroad :)

]]>
<![CDATA[Ghost blog setup for Github pages]]>To be rewritten


Installation of Ghost locally

  • Download .zip & decompress
  • $npm install
  • $npm start
    • If problem DatabaseIsNotOk
      database-fail
      • $npm install knex-migrator
      • $knex-migrator init
  • Go to localhost:2368/ghost to create a new user
  • Ready!

Github repository: gh-pages branch not needed

Buster for generating the static site

Steps to create a

]]>
https://raul-hc.github.io/ghost-blog-setup-for-github-pages/5b66d5082a3b5f149a1942daSun, 05 Aug 2018 10:52:59 GMT

To be rewritten


Installation of Ghost locally

  • Download .zip & decompress
  • $npm install
  • $npm start
    • If problem DatabaseIsNotOk
      Ghost blog setup for Github pages
      • $npm install knex-migrator
      • $knex-migrator init
  • Go to localhost:2368/ghost to create a new user
  • Ready!

Github repository: gh-pages branch not needed

Buster for generating the static site

Steps to create a new post & deploy
* Start ghost server in local env
> $npm start
* Write the new story in markdown
* Generate static site with buster. Ghost should be running when executing this step
> $buster generate
* Change references from localhost:2368 to the URL of the site
> $ find static -name *.html -type f -exec sed -i '' 's#https://raul-hc.github.io#https://raul-hc.github.io#g' {} ;
* Upload changes to github repo & wait for github to deploy the site


]]>
<![CDATA[Setting up your own Ghost theme]]>

Creating a totally custom design for your publication

Ghost comes with a beautiful default theme called Casper, which is designed to be a clean, readable publication layout and can be easily adapted for most purposes. However, Ghost can also be completely themed to suit your needs. Rather than just giving

]]>
https://raul-hc.github.io/setting-up-your-own-ghost-theme/5b66d15a2a3b5f149a1942d7Sun, 05 Aug 2018 10:29:03 GMT

Creating a totally custom design for your publication

Ghost comes with a beautiful default theme called Casper, which is designed to be a clean, readable publication layout and can be easily adapted for most purposes. However, Ghost can also be completely themed to suit your needs. Rather than just giving you a few basic settings which act as a poor proxy for code, we just let you write code.

There are a huge range of both free and premium pre-built themes which you can get from the Ghost Theme Marketplace, or you can simply create your own from scratch.

marketplace

Anyone can write a completely custom Ghost theme, with just some solid knowledge of HTML and CSS

Ghost themes are written with a templating language called handlebars, which has a bunch of dynamic helpers to insert your data into template files. Like {{author.name}}, for example, outputs the name of the current author.

The best way to learn how to write your own Ghost theme is to have a look at the source code for Casper, which is heavily commented and should give you a sense of how everything fits together.

  • default.hbs is the main template file, all contexts will load inside this file unless specifically told to use a different template.
  • post.hbs is the file used in the context of viewing a post.
  • index.hbs is the file used in the context of viewing the home page.
  • and so on

We've got full and extensive theme documentation which outlines every template file, context and helper that you can use.

If you want to chat with other people making Ghost themes to get any advice or help, there's also a themes section on our public Ghost forum.

]]>
<![CDATA[Organising your content with tags]]>

Ghost has a single, powerful organisational taxonomy, called tags.

It doesn't matter whether you want to call them categories, tags, boxes, or anything else. You can think of Ghost tags a lot like Gmail labels. By tagging posts with one or more keyword, you can organise articles into buckets of

]]>
https://raul-hc.github.io/organising-your-content-with-tags/5b66d1112a3b5f149a1942d4Sun, 05 Aug 2018 10:27:53 GMT

Ghost has a single, powerful organisational taxonomy, called tags.

It doesn't matter whether you want to call them categories, tags, boxes, or anything else. You can think of Ghost tags a lot like Gmail labels. By tagging posts with one or more keyword, you can organise articles into buckets of related content.

Basic tagging

When you write a post, you can assign tags to help differentiate between categories of content. For example, you might tag some posts with News and other posts with Cycling, which would create two distinct categories of content listed on /tag/news/ and /tag/cycling/, respectively.

If you tag a post with both News and Cycling - then it appears in both sections.

Tag archives are like dedicated home-pages for each category of content that you have. They have their own pages, their own RSS feeds, and can support their own cover images and meta data.

The primary tag

Inside the Ghost editor, you can drag and drop tags into a specific order. The first tag in the list is always given the most importance, and some themes will only display the primary tag (the first tag in the list) by default. So you can add the most important tag which you want to show up in your theme, but also add a bunch of related tags which are less important.

News, Cycling, Bart Stevens, Extreme Sports

In this example, News is the primary tag which will be displayed by the theme, but the post will also still receive all the other tags, and show up in their respective archives.

Private tags

Sometimes you may want to assign a post a specific tag, but you don't necessarily want that tag appearing in the theme or creating an archive page. In Ghost, hashtags are private and can be used for special styling.

For example, if you sometimes publish posts with video content - you might want your theme to adapt and get rid of the sidebar for these posts, to give more space for an embedded video to fill the screen. In this case, you could use private tags to tell your theme what to do.

News, Cycling, #video

Here, the theme would assign the post publicly displayed tags of News, and Cycling - but it would also keep a private record of the post being tagged with #video.

In your theme, you could then look for private tags conditionally and give them special formatting:

{{#post}}
    {{#has tag="#video"}}
        ...markup for a nice big video post layout...
    {{else}}
        ...regular markup for a post...
    {{/has}}
{{/post}}

You can find documentation for theme development techniques like this and many more over on Ghost's extensive theme documentation.

]]>
<![CDATA[Advanced Markdown tips]]>

There are lots of powerful things you can do with the Ghost editor

If you've gotten pretty comfortable with all the basics of writing in Ghost, then you may enjoy some more advanced tips about the types of things you can do with Markdown!

As with the last post about

]]>
https://raul-hc.github.io/advanced-markdown-tips/5b66cf7a2a3b5f149a1942cfSun, 05 Aug 2018 10:21:32 GMTAdvanced Markdown tips

There are lots of powerful things you can do with the Ghost editor

If you've gotten pretty comfortable with all the basics of writing in Ghost, then you may enjoy some more advanced tips about the types of things you can do with Markdown!

As with the last post about the editor, you'll want to be actually editing this post as you read it so that you can see all the Markdown code we're using.

Special formatting

As well as bold and italics, you can also use some other special formatting in Markdown when the need arises, for example:

  • strike through
  • highlight
  • *escaped characters*

Writing code blocks

There are two types of code elements which can be inserted in Markdown, the first is inline, and the other is block. Inline code is formatted by wrapping any word or words in back-ticks, like this. Larger snippets of code can be displayed across multiple lines using triple back ticks:

.my-link {
    text-decoration: underline;
}

If you want to get really fancy, you can even add syntax highlighting using Prism.js.

Full bleed images

One neat trick which you can use in Markdown to distinguish between different types of images is to add a #hash value to the end of the source URL, and then target images containing the hash with special styling. For example:

Advanced Markdown tips
Photo by ishan shah / Unsplash

which is styled with...

img[src$="#full"] {
    max-width: 100vw;
}

This creates full-bleed images in the Casper theme, which stretch beyond their usual boundaries right up to the edge of the window. Every theme handles these types of things slightly differently, but it's a great trick to play with if you want to have a variety of image sizes and styles.

Reference lists

The quick brown fox, jumped over the lazy dog.

Another way to insert links in markdown is using reference lists. You might want to use this style of linking to cite reference material in a Wikipedia-style. All of the links are listed at the end of the document, so you can maintain full separation between content and its source or reference.

Creating footnotes

The quick brown fox[1] jumped over the lazy dog[2].

Footnotes are a great way to add additional contextual details when appropriate. Ghost will automatically add footnote content to the very end of your post.

Full HTML

Perhaps the best part of Markdown is that you're never limited to just Markdown. You can write HTML directly in the Ghost editor and it will just work as HTML usually does. No limits! Here's a standard YouTube embed code as an example:


  1. Foxes are red ↩︎

  2. Dogs are usually not red ↩︎

]]>
<![CDATA[Sorted arrays and branch predictors]]>

In this post I’ll talk about something every person that has taken classes of data structures will be familiar with. But these days that I’m trying to go deeper in some concepts I’m gonna write about this idea in one particular case: sorted arrays.

The message I

]]>
https://raul-hc.github.io/sorted-arrays-and-branch-predictors/5b65c9d4ddaf49032c17005bSat, 04 Aug 2018 15:48:05 GMTSorted arrays and branch predictors

In this post I’ll talk about something every person that has taken classes of data structures will be familiar with. But these days that I’m trying to go deeper in some concepts I’m gonna write about this idea in one particular case: sorted arrays.

The message I got from some those lectures was essentially that something sorted is gonna be faster in most cases than another thing that is unsorted. Well this is certainly true for arrays; if you measure the time it takes to process a sorted array, and compare it with the processing time of an unsorted one, the results will show this idea.

What’s the magic behind this?

We need to go deep to understand why this happens, in fact we need to start thinking in how a processor executes basic instructions. When a processor see a branch (e.g. if clause) it doesn’t know which way it will go.

The processor can halt execution and wait until the previous instructions are completed and then continue down the correct path … or … the processor could guess which direction the branch will go. If the guessing was right it continues executing instructions, other way the processor have to flush the pipeline, roll back to the branch and continue with the other branch.
This is a technology modern processors incorporate and is called Branch Prediction. This technology works by trying to predict which way a branch will go before this is known for sure. Branch predictors try to identify a pattern and follow it.
Most of the time modern branch predictors will guess right because applications use to have well-behaved branches, but when a predictors face unpredictable branches with no recognizable patterns (like in a random array).

Real example

if nums[index] <= 128:
sum += nums[index]

To understand it with an example the code above shows the processing we are doing over an array. When the data is sorted roughly the first half of the iterations will enter the if-statement and immediately after that, they will all enter the if-statement (Suppose the data we generated goes from 0 up to 255). This is really friendly to the branch predictor because the branch consecutively goes the same direction a lot of times.

However, when the data in the array is completely random, the branch predictor is useless because it can't predict random data. This way it will guess right around 50% of the times which is no better than random guessing.

This is the code in the case someone wants to try by himself: Sorted array

References:

]]>
<![CDATA[Welcome to this blog.]]>Hi there! It's RaulHC here and I want to introduce you to my brand-new blog :)

What is this about?

'Get comfortable being uncomfortable'

The previous quote resumes what this blog is all about. I'm not a person that feels really confortable showing the world some of my thoughts, work or

]]>
https://raul-hc.github.io/welcome/5b65c460ddaf49032c170055Sat, 04 Aug 2018 15:22:43 GMT

Hi there! It's RaulHC here and I want to introduce you to my brand-new blog :)

What is this about?

'Get comfortable being uncomfortable'

The previous quote resumes what this blog is all about. I'm not a person that feels really confortable showing the world some of my thoughts, work or ideas. It's a pet project that I will use to learn some new things getting out of my comfort zone. It's also a personal repository where I would try to contribute to the internet with some of my knowledge.

  • It's a diary about things I have done related to programming mostly.
  • It's a blog where I will write about some things that catch my eye about anything.
  • It's a place where express myself and practice some english witting.
  • It's all of the above and more.

So if you want to take a look and take advantage of anything write here, you are welcome!

PS: This is a gosh blog hosting on Github

]]>
<![CDATA[Do not surround yourself with toxic people]]>

Everybody will have to deal with toxic people in a way or another, at university, at work maybe even with some relative. What this post is about is how i used to deal with these kind of people driven by envy or just their own boredom.

How can you recognize

]]>
https://raul-hc.github.io/do-not-surround-yourself-with-toxic-people/5b65c400ddaf49032c170053Sat, 04 Aug 2018 15:20:20 GMTDo not surround yourself with toxic people

Everybody will have to deal with toxic people in a way or another, at university, at work maybe even with some relative. What this post is about is how i used to deal with these kind of people driven by envy or just their own boredom.

How can you recognize a toxic person?

Every person I've met with this sort of behavior usually are easy to recognize by their lack of motivation in life. These a some of the behaviors that characterize them in my humble opinion:

  • For them only exists their way of doing something and that’s the correct way. This is obviously not true
  • They will throw at you phrases that can be summarize to 'you can't do X thing' or '...but you don't know anything about X'. This a form of underestimating you and your skills
  • They use to have a strong tendency to make judgments about other people with no absolutely zero about them. You don’t know what someone has been through, you don’t know his story so don’t judge another person
  • They will try to stop you from doing what you want and they won't stop trying to drag you to the things they're good at and they can maintain a dominant position. This way they will always be above you and will keep you from improve
  • Another way to recognize a toxic person is looking at what he talks about a thing. If he only talks about the negative aspects and emphasize them instead of centering the conversation in the good parts, ah…, begin to suspect. They are negative people by nature and instead lift you they will try to push you down

What to do

My personal experience says that the best option is to try to avoid them under all circumstances. But as I told you at the beginning of this post you will deal with people of all kinds during life so don’t worry, it’s just another experience you have to go thorough. In consequence, if you are forced to work in any way with people of this kind, just keep a cordial and professional relationship with them, do not include them in you social circle or your life.

And as a final advice, one I use myself, transform their attempts of making you desist in and extra boost of energy to get to your goals. As one quote I read once, Tell me I can’t, then watch me work twice as hard to prove you wrong

Have a nice day :)

Do not surround yourself with toxic people

]]>
<![CDATA[Some useful search operators]]>
site: Get results from certain sites or domains.
- olympics site:nbc.com
- olympics site:.gov
- admissions site:www.lse.ac.uk  ->  admissions information from London School of Economics’ site
- peace site:gov -> pages about peace within the .gov domain. 
windows security –site:
]]>
https://raul-hc.github.io/untitled/5b65c3c1ddaf49032c170051Sat, 04 Aug 2018 15:19:07 GMT
site: Get results from certain sites or domains.
- olympics site:nbc.com
- olympics site:.gov
- admissions site:www.lse.ac.uk  ->  admissions information from London School of Economics’ site
- peace site:gov -> pages about peace within the .gov domain. 
windows security –site:microsoft.com -> information on Windows security from all sites except microsoft.com

** You can specify a domain with or without a period, e.g., either as .gov or gov.
related: Find sites that are similar to a web address you already know.
- related:time.com
OR - Find pages that might use one of several words.
- marathon OR race
info: Get information about a web address, including the cached version of the page, similar pages, and pages that link to the site.
- info:google.com
- info:gothotel.com -> information about the national hotel directory GotHotel.com home page.
cache: see what a page looks like the last time Google visited the site.
- cache:washington.edu
- cache:www.eff.org -> will show Google’s cached version of the Electronic Frontier Foundation home page.

define: shows definitions from pages on the web for the term that follows. This advanced search operator is useful for finding definitions of words, phrases, and acronyms. For example,
- define: blog -> will show definitions for “Blog” (weB LOG).
filetype: restrict the results to pages whose names end in suffix.
- web page evaluation checklist filetype:pdf -> will return Adobe Acrobat pdf files that match the terms "web", "page", "evaluation" and "checklist" 

** You can restrict the results to pages whose names end with pdf and doc by using the OR operator, e.g. [  email security filetype:pdf OR filetype:doc ].
link: pages that point to that URL.
- link:www.googleguide.com -> pages that point to Google Guide’s home page
- link:www.google.com -site:google.com  -> links to the Google home page not on Google’s own site.
- link:www.www.ownersdirect.co.uk -site:ownersdirect.co.uk -> links to the UK Owners Direct home page not on its own site.

basic search operators +, –, OR, and " ".
inanchor: restrict the results to pages containing the query terms you specify in the anchor text or links to the page.
- restaurants inanchor:gourmet -> will return pages in which the anchor text on links to the pages contain the word “gourmet” and the page contains the word “restaurants.”
** allinanchor:** restricts results to pages containing all query terms you specify in the anchor text on links to the page.
- allinanchor:best museums sydney -> will return only pages in which the anchor text on links to the pages contain the words “best,” “museums,” and “sydney”
intext: restricts results to documents containing term in the text.
- Hamish Reid intext:pandemonia -> will return documents that mention the word “pandemonia” in the text, and mention the names “Hamish” and “Reid” anywhere in the document (text or not).

** Putting intext: in front of every word in your query is equivalent to putting allintext: at the front of your query, e.g., *intext:handsome intext:poets* is the same as *allintext: handsome poets*
intitle: restricts results to documents containing term in the title.
- flu shot intitle:help -> will return documents that mention the word “help” in their titles, and mention the words “flu” and “shot” anywhere in the document (title or not).  

** Putting intitle: in front of every word in your query is equivalent to putting allintitle: at the front of your query, e.g., *intitle:google intitle:search* is the same as *allintitle: google search*
inurl: restrict the results to documents containing that word in the URL.
- inurl:print site:www.googleguide.com -> searches for pages on Google Guide in which the URL contains the word “print.” It finds pdf files that are in the directory or folder named “print” on the Google Guide website. 
- inurl:healthy eating -> will return documents that mention the words “healthy” in their URL, and mention the word “eating” anywhere in the document.

** Putting inurl: in front of every word in your query is equivalent to putting allinurl: at the front of your query, e.g., *inurl:healthy inurl:eating* is the same as *allinurl: healthy eating*
In URLs, words are often run together. They need not be run together when you’re using inurl:

Symbols:

-
When you use a dash before a word or site, it excludes sites with that info from your results. This is useful for words with multiple meanings, like Jaguar the car brand and jaguar the animal.
jaguar speed -car
pandas -site:wikipedia.org


When you put a word or phrase in quotes, the results will only include pages with the same words in the same order as the ones inside the quotes. Only use this if you're looking for an exact word or phrase, otherwise you'll exclude many helpful results by mistake.
“imagine all the people”

*
Add an asterisk as a placeholder for any unknown or wildcard terms.
”a * saved is a * earned”

..
Separate numbers by two periods without spaces to see results that contain numbers in a range.
hard drive $50..$75

References:

]]>
<![CDATA[Thoughts on my internship interview]]>

job

This post was originally written in november 2016 and recovered from my old blog

This is my final year at university as Software Engineer Student and we need to complete at least 120 hours working in a company as a part of one of the 'subjects'.

The process starts with

]]>
https://raul-hc.github.io/thoughts-on-my-internship-interview-2/5b65c020ddaf49032c170049Sat, 04 Aug 2018 15:11:23 GMT

job

This post was originally written in november 2016 and recovered from my old blog

This is my final year at university as Software Engineer Student and we need to complete at least 120 hours working in a company as a part of one of the 'subjects'.

The process starts with a list of offering companies and every student enrolled in the course choose several options in order of preference. Then the course staff start to sort by average grade mainly the students. The output of this process is a list of students who should contact the respective companies to start the process.

Well, so my first company choice was CSC, a very large company located in Avilés (also Barcelona, Madrid, etc). I contacted the human resources person who was responsible of the agreement with my university and sent her the english version of my resumé. After a couple of weeks I received a call asking me to go to their offices in Avilés next day. I accepted to be there at mid-morning to realize the internship interview.

The interview

I arrived at their offices a little bit early because I try to follow the rule '5 Minutes early is on time; on time is late; late is unacceptable.' I had to sign a sort of contract to enter the building and keep in view the visitor's accreditation that I was given.

After a few minutes two men, one from Spain and one foreigner, came and introduce themselves. They were part of the IT systems department of the company. All of us went to a meeting room where they started asking me some questions about my CV (they'd printed it and underline the parts they were more interested in). When we finished talking two of the DevOps engineers of the company and one of the development department entered the room and introduced themselves. They asked me kind of the same things that the other team and some questions about their respective job tasks, like if I was familiar with some of the concepts. We also talked about some of the technologies the company use in daily task and a little about how things work there. I explained them why I think university is a little obsolete and the disconnection that exists between the institution and the real-world companies. We also talked about some of my hobbies, what project I was working on for my final course between others.

I wouldn't like to finish without adding I felt really comfortable talking with all of these people, specially because they were actual workers of the company and I had the opportunity to ask them some technical questions related to the task I would be doing. In fact it was more like a relaxed conversation between engineers who like working on what they do. All of this process was realized in Spanish and English to test my conversational skills . I didn't wanted to fool anybody about my english level and I liked the idea to talk a little in the Shakespeare's language even though I'm not the best english speaker xD

UPDATE: Today I received a call from CSC's human resources department telling me I was one of the selected candidates. Hooray!

]]>