Skip to content

Instantly share code, notes, and snippets.

View tcorral's full-sized avatar

Tomás Corral Casas tcorral

  • Softonic.com
  • Barcelona
View GitHub Profile
@tcorral
tcorral / readme.md
Created November 20, 2018 12:52 — forked from gimenete/readme.md
Notas para orientación profesional como programador

Tras este tweet que publiqué

He sido freelance, emprendedor y trabajo desde hace años para empresas USA de diversos tamaños en remoto como programador fullstack. Ahora en GitHub. Si puedo ayudar a alguien en orientar su carrera, mis DMs están abiertos. Ask me anything.

he recibido muchos mensajes y escribo aquí algunos de los consejos que he dado en resumen. Nota: algunas cosas son concretas de trabajar en España. Si vas a trabajar desde Sudamérica sólo una nota: tienes la ventaja de la zona horaria para trabajar con EEUU.

Inglés

Tener un buen nivel de inglés es fundamental para poder trabajar con clientes extranjeros. El conocimiento del idioma tiene que mantenerse en el tiempo. Es como mantenerse en forma física; si lo dejas, lo pierdes. Personalmente aunque trabajo 100% en inglés desde hace bastantes años, intento crearme un entorno diario con el idioma para no perderlo:

@tcorral
tcorral / Customer.js
Created October 14, 2018 07:15
Customer Hungarian Notation
var Customer = function (config) {
this.sFirstName = config.firstName || '';
this.sLastName = config.lastName || '';
this.aAddressLines = (config.addressLines || []).concat();
this.aEmployees = (config.employees || []).concat();
this.sFullName = this._getFullName();
};
Customer.prototype._getFullName = function () {
return this.sFirstName + this.sLastName;
templateList
Product template,$(contextRoot)/static/features/[BBHOST]/feature-structured-content-templates/templates/product-template.html
templateUrl
$(contextRoot)/static/features/[BBHOST]/feature-structured-content-templates/templates/product-template.html
<catalog>
<feature>
<name>feature-structured-content-templates</name>
<properties>
<property label="Title" name="title" viewHint="admin,designModeOnly">
<value type="string">Structured Content Templates</value>
</property>
<property label="Version" name="version" viewHint="designModeOnly">
<value type="string">0.0.1</value>
</property>
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name:": {
"type": "string",
"metadata": {
"placeholderText": "Enter the name of the product"
}
},
<catalog>
<contenttype>
<name>ProductContentType</name>
<properties>
<property label="Title" name="title" manageable="true">
<value type="string">Product</value>
</property>
<property name="typeDefinitionName" manageable="true">
<value type="string">Product</value>
</property>
{
"name:": "Product Name",
"title": "Title",
"subtitle": "Subtitle",
"description": "<p>Descripti<strong>on</strong></p",
"usagesTitle": "Usages",
"usages": [
{
"item": "Usage 1"
},
{{#contentRef}}
<div class="maincontent maincontent-hasmenu">
<a class="print_button" href="#" title="Print">
<span></span>Print
</a>
<p class="product-suptitle">{{name}}</p>
<h1>{{title}}</h1>
<p class="product-subtitle">{{subtitle}}</p>
<div id="node-8563" class="node ">
<div class="node-content">
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
!function(e){function r(e,r,o){return 4===arguments.length?t.apply(this,arguments):void n(e,{declarative:!0,deps:r,declare:o})}function t(e,r,t,o){n(e,{declarative:!1,deps:r,executingRequire:t,execute:o})}function n(e,r){r.name=e,e in v||(v[e]=r),r.normalizedDeps=r.deps}function o(e,r){if(r[e.groupIndex]=r[e.groupIndex]||[],-1==g.call(r[e.groupIndex],e)){r[e.groupIndex].push(e);for(var t=0,n=e.normalizedDeps.length;n>t;t++){var a=e.normalizedDeps[t],u=v[a];if(u&&!u.evaluated){var d=e.groupIndex+(u.declarative!=e.declarative);if(void 0===u.groupIndex||u.groupIndex<d){if(void 0!==u.groupIndex&&(r[u.groupIndex].splice(g.call(r[u.groupIndex],u),1),0==r[u.groupIndex].length))throw new TypeError("Mixed dependency cycle detected");u.groupIndex=d}o(u,r)}}}}function a(e){var r=v[e];r.groupIndex=0;var t=[];o(r,t);for(var n=!!r.declarative==t.length%2,a=t.length-1;a>=0;a--){for(var u=t[a],i=0;i<u.length;i++){var s=u[i];n?d(s):l(s)}n=!n}}function u(e){return y[e]||(y[e]={name:e,dependencies:[],exports:{},importers:[]})}f