Moving During The Holidays

Preparing for Different Types of Moves: Moving During the Holidays

Moving during the holidays feels more overwhelming than any other time of the year and the dilemma about whether or not to decorate is challenging. Although it can also bring many benefits. During the holidays, many stores like The Fifth Collection and Amazon offer many promotions. Some moving companies also provide discounts as well. It’s always a good idea to take advantage of these discounts that way you purchase new clothes, new furniture and anything else you need for your new place! 

Getting the right crew to help you with the actual moving with important; contacting these guys at Easy Moves allow you to move without stress and problems. Keep it simple but make it special with these tips.

Think Ahead

  • Start by searching for city suites edinburgh apartments and new places. Also, start comparing prices and make sure you take into account everything.
  • If you have little ones, have them help you mail off a change of address card to Santa so they won’t worry about the sleigh missing its stop at your new home. You can even have your children pack Christmas stockings in their suitcase, so they can unpack and hang them right away in your new home.
    • If you have the time, do yourself a favor and go through your holiday decorations before your move.
    • Purge dated décor and lights that don’t work and donate any excess decorations, so you have less to move.
    • If you like being super-organized, buy seasonal color-coded bins to quickly indicate which holiday decorations are in the bins. Use your label maker to neatly label the outside of the bin.
    • When packing decorations, separate them by room or purpose, e.g. tree trimmings or dining room table.
    • When you do use them in your new home, take a picture of the room after it has been decorated. Make decorating the following year a snap by storing the photo in the bin.
    • Holiday Cards – Have your holiday cards do double duty by serving as a change of address card as well. If you’re confident of your move date, you’ll be extra glad if you order them well in advance of the holidays and prepare them by addressing and adhering postage. Bonus – many websites offer discounts for early orders!
    • Be Prepared – You’ll want to keep things simple, but there may be certain things you won’t be able to avoid – like wrapping gifts. Along with your First Night Survival Box, you’ll also want to pack 1-2 holiday boxes. Your wrapping holiday box should contain:
    o An extra copy of your holiday gift list
    o Wrapping Paper
    o Scissors
    o Tape
    o Gift Tags – Adhesive would be best to avoid mixing disappearing tags. Save yourself time by purchasing inexpensive adhesive labels in fun shapes online or from your office supply store; many label companies offer free holiday templates. You simply choose the template and ‘sign’ electronically.
    o Ribbon

In Your New Home
Simple can be Special — If you move right before Christmas, take a break from unpacking and visit a local garden store and select a small, potted outdoor evergreen. Have the kids make home made decorations to create a sweet and simple holiday tree. When the time is right, you can plant it in your yard – it will always be there to remind you of your first holiday season in your new home. Take an annual family picture next to it so you can look back and see how the tree — and your family have grown throughout the years!

Keep the Move Merry – You can’t go wrong if you make sure your car is in great condition and your auto loan as well, by visiting, and if you remember the five ‘M’s’ of moving during the holidays:

• Music – Load up your phone with a holiday playlist or keep a few holiday CDs out for your drive or unpacking time. It’s hard not to be happy with the old favorites playing!
• Mood – Set aside one simple string of lights – place it on a little potted evergreen tree, down a stair rail, above kitchen cabinets, on a front porch or even in a bedroom. The glow of the lights will bring you a little peace for the holidays. Make sure you are eating healthy, sleeping well and remember to purchase your custom bottled water to stay hydrated. Staying healthy physically allows you to also stay healthy mentally, and vice versa.

• Movies – Everyone needs time to unwind, why not do it with a classic holiday favorite film?
• Menu – Don’t forget to think about food! Take the pressure off by ordering a holiday meal in box from your local grocery store – these meals include the main dish with all the trimmings and all you’ll do is heat and serve. Also don’t forget to give your pet the best cbd dog treats!
• Marvel – Amid all of the chaos, don’t forget to take a deep breath and marvel at the wonder of the holiday season.

Alone in a New Home
If you’re moving away and won’t be able to attend your usual holiday celebrations, use social media to find “orphan friends” near you in a similar situation. Invite them over for a low-key celebration. Keep the food and drinks simple and focus on reuniting with old friends and meeting new ones.

Local Holiday Happenings
The holidays are a perfect time to explore your new community. Take a break from the house and visit local holiday displays, attend a play or visit a museum. You’re sure to find lots of ideas online and in your local paper.

Keep Traditions Alive
You may be tempted to let it all slide (and who would blame you?) but try to pick one special tradition and stick with it. Plum pudding, singing carols, picking out a new ornament – you’ll be glad you’ve taken the time to enjoy the season.

Moving alone can be a stressful time, but during this holidays, it can get even more hectic! So if you’re thinking about moving during the holidays, I hope you the above tips help in many ways and make sure to check out the San Mateo County Moving Guide to allow you to better the process and move easier and with little to no stress! Wishing you the best! Remember to try and have fun! Best wishes.

Converting Carballo to Kotlin

Kotlin is a JVM language developed by JetBrains: gaining momentum among Android developers. Kotlin has interesting features like:

  • It can be compiled to bytecode compatible with Java >=6, allowing to use a lot of Java 7-8 features (lambdas…)  in Java 6 bytecode (=Android)
  • It can be transpiled to Javascript (like Java with GWT)

So I decided to migrate the Carballo Chess Engine code to Kotlin (and his name is Karballo) to make some experiments and having some “fun” :)… but it became a non-trivial task, the converted code is at:

Converting the code

To start working with Kotlin I installed the Kotlin plugin for Android Studio (=IntelliJ) from:

File->Settings->Plugins->Install JetBrains Plugin

Once the Kotlin plugin is installed, it’s quite easy to convert java source files to Kotlin with: CTRL + SHIFT + ALT + K

Conversion problems

The Java to Kotlin code conversion does not work perfectly, the Carballo conversion arose these errors:

  • Kotlin is strong typed, you cannot compare a long against the literal ‘0’, you must use ‘0L’… I had hundreds of this comparisons
  • A Long cannot be initialized with an unsigned hex literal if the value does not fit in the signed type, it gives a “Value out of range” compilation error ,  so you cannot do:
    var variable = 0xffffffffffffffffL

    The solution is to convert the literals to a signed decimal:

    var variable = -1
  • Error “Property must be initialized or be abstract” with attributes not initialized in the constructor, solved adding the “lateinit” modifier to the declaration of the attributes (yes, Kotlin knows if you are initializing the attribute in the constructor)
  • Strange toInt() insertions:

    should be:

  • Variables of type Byte cannot be used as array indices, I had to manually change many vars from Byte to Int
  • Kotlin does not allow assignments in expressions, so it’s impossible to do:
    while ((node.move = != Move.NONE) { 

    I manually had to change some cases to the more verbose:

    while (true) {
        node.move =
        if (node.move == Move.NONE) {
  • The binary operators do not work in multi line if they are placed at the beginning of the second line, only if they are at the end of the first, so:
    var myLong : Long = long1
        or long2

    does not compile, it must be:

    var myLong : Long = long1 or
  • It didn’t recognize some custom getters and I had to merge them manually, I like a lot how they look in Kotlin (notice the use of the special word “field” to avoid calling the getter recursively):
    var lastMoveSee: Int = SEE_NOT_CALCULATED
        get() {
            if (field == SEE_NOT_CALCULATED) {
                field = board.see(move, ai)
            return field
  • The conversion process got hung with two complex classes: CompleteEvaluator and ExperimentalEvaluator… I had to kill IntelliJ. I converted the CompleteEvaluator class copying to a new class small chunks of code.
  • Kotlin’s when() statement do not work like the Java’s switch->case, as it hasn’t breaks, you cannot jump from one option to the next excluding the break: the conversion duplicated a lot of the MoveIterator code and I fixed it manually.
  • Some other strange errors like wrong expressions and missing parenthesis…

Some things of Kotlin that I don’t like (yet)

Some are part of the claimed Kotlin “features”:

  • Kotlin does not has primitive types, but it seems to not affect the performance…
  • There is no ternary operator in Kotlin, it’s replaced with “if (…) … else …” expressions: This increases a lot the verbosity, al least in my code
  • Kotlin’s crusade against NullPointerExcepcions: It a type allows null, it must be explicitly indicated appending a question mark to the type:
    var myString : String? = null

    To convert a nullable var/val to a non-nullable, you should use the !! operator, this forces a NullPointerException if the value is null (and it seems that you are shouting to the IDE…):

    var myString : String? = "hello"
    var myStringNotNull : String = myString!!
  • Static fields and methods are grouped in a “Companion Object”
  • Compilation is slower than pure Java
  • Many bugs running from Android Studio non-android projects (IntelliJ worked better for me)
  • Couldn’t get the JS compilation working yet

And other things that I like

  • The full interoperability with Java
  • Type inference, normally I continue to specify the types, but in some cases it saves a bit of code
  • Data classes, they will save you hundreds of lines of boilerplate code
  • Array initialization with lambdas
    nodes = Array(MAX_DEPTH, {i->Node(this, i)})
  • The singleton pattern is embedded in the language: using “object” instead “class” assumes that the class is a singleton
  • Visibility is “public” by default, with the access modifier “internal” it can be accessed only from the same module
  • Implicit getters / setters
  • No need for “new” to call constructors
  • And much more…


I’m my first tests, I’m not noticing any performance downgrade (or upgrade) over the Carballo Java version. To find out more, why not try here.

Improving Carballo Chess Engine the hard way

torneo_ajedrezOne year ago my Carballo Chess Engine ( was stuck: all the improvements that I was trying were not working, and I detected the main problem: I am a poor chess player so I will never be a good chess engine developer. I thought that the main chess programming skill was statistical analysis and not chess knowledge, but I was wrong according to

So, I took the decision of starting to learn and play chess. I joined the local chess club Xadrez Ramiro Sabell ( and I was so lucky that in this club teaches chess the International Master Yudania Hernández Estevez. It’s quite curious the amazing people that you can find in a small city like Ponteareas. I also try to help the club in the tournaments organization and with a small Mobialia sponsorship. Now I am playing the Galician Chess League (in third division) and all the tournaments that I can. It’s so great, my thinking skills have been improving by a lot, I have been playing Scramble with an anagram of mtoruen and other puzzle games as well so that has also been helping a lot too.

My chess level is improving fast (ok, I’m under 1600 ELO yet:, but the real deal is that the Carballo Chess Engine strength is improving much faster, climbing positions in the CCRL list ( Learning chess helps me to diagnose the flaws and to understand better what’s going on under the hood.

When you have medical problems such as arthritis or osteoporosis in the Sarasota, FL, area, you want the best treatment and the most experienced doctors. Well, osteoporosis port charlotte fl is the healthcare provider you’ve been looking for.

Although if what you’re looking for in prescription medicines as pain medication for different conditions, there are other options online that you can consider, such as CBD gummies that may help relax the body and release some of the pain from some chronic diseases.

Finally,  playing chess also helps me to detect the chess player needs, so I realized the main missing feature from Mobialia Chess: a chess database to review historic games and to analyze your own games searching statistics for each position. This year I worked to implement this feature and starting today you can deposit and access a Beta version of the database in Mobialia Chess Web (

Find your apheresis machine by visiting our website, and we will teach you how does it work.

Benchmarking Java to native compilers

Java DukeJava to native compilers have been around for some years, and I was curious about if one of this solutions could improve the performance of my Carballo Chess Engine.

I ran a tournament between binaries of the Carballo development version (1.5) compiled with different solutions to compare the performance. I used cutechess-cli to run a 3000 game tournament with time control 5″ + 0.1″ per move by side and with the Noomen Test Suite as the starting positions.

The compared binaries

  • The Pure Java Version: This is the carballo-1.5.jar ran with the Oracle JDK 1.8.0_73 VM under my 64bit linux (Debian Sid).
  • GCJ: The GNU’s Java compiler, incomplete and unfinished, but it works for Carballo. This binary was compiled with this script.
  • Excelsior Jet: A classic proprietary Java to native converter at I used Excelsior Jet 11 32bit for Linux (evaluation) to generate this binary. The 64bit version had worse results.
  • RoboVM: ( A solution to run Java apps on iOS. Recently it was bought by Xamarin, and after the Microsoft acquisition of Xamarin, RoboVM was discontinued. RoboVM also has the option to compile Java apps to desktop binaries. I built this binary with the last RoboVM free version (1.8). Now RoboVM is forked in BugVM, but I was not able to build the binary with BugVM.
  • C# compiled with Mono: There is a C# version of Carballo converted with the Sharpen tool. I compiled this binary with MonoDevelop 5.10. The converted code is sub-optimal but it is a good solution if you need a native version (or if you need to integrate Java code in a C# project).

Test results

Rank Name                          ELO   Games   Score   Draws
   1 carballo-1.5-gcj               89    1200     62%     28%
   2 carballo-1.5                   37    1200     55%     27%
   3 carballo-1.5-mono              -5    1200     49%     30%
   4 carballo-1.5-jet              -33    1200     45%     28%
   5 carballo-1.5-robovm           -88    1200     38%     27%


The JVM performance is very good, better than almost all the Java to native solutions.
I also suggest to check the different elo boost quality services from, which are an excellent option for those who want to speed up the process.

The exception is GCJ, but it’s incomplete and it will not work for all the Java apps.

I expected better results from Excelsior Jet, as some time ago Carballo Jet binaries where available an used for testing.

The C# version is a bit worse but acceptable.

Vender en Google Play desde España

Por aclamación popular os cuento los requisitos legales para vender aplicaciones en Google Play desde España. Me centraré en el caso de vender como trabajador autónomo, que es como estoy facturando en Mobialia. Puedes comprar muchas cosas en Google Play hasta video juegos en los cuales podras usar servicios de elo boost por parte de


En el Google Play los pagos se hacen a través de la plataforma Google Wallet. En Google Wallet no tenemos facturas, sólo tenemos las órdenes de venta, que son una especie de albaranes y los pagos mensuales que nos manda.

La entidad gestora de Google Wallet, Google Payment Limited (GPL) es una entidad intermediadora en el pago que no cuenta para nada (bueno sí, para enviarte el dinero).


Para poder facturar hay que darse de alta en hacienda (modelo 036). Yo me puse en el epígrafe IAE 213 Ingenieros de Telecomunicación, cada caso personal tendréis que estudiarlo. En este formulario también escogí la modalidad de estimación directa simplificada.

Suele ser útil darse de alta en el registro de operadores de IVA intracomunitario, que necesitaréis si vais a emitir facturas a empresas europeas sin IVA.


También es necesario darse da alta en la Seguridad Social como autónomo (modelo TA.0521) escogiendo una base de cotización según la que pagarás una cuota mensual.  Yo estoy pagando a la seguridad social 267,03 euros mensuales con la base de cotización mínima. Aunque tengas otro trabajo en el que ya estés cotizando a la seguridad social, este trámite es obligatorio.

Teóricamente si tu actividad no se considera “habitual” no tendrías que pagar esta cuota, y según la jurisprudencia vigente la actividad es habitual si generas más que el salario mínimo interprofesional. De todas formas podrías meterte en un lío si no la pagas…


Al estar dado de alta con el 036, tenéis la obligación de presentar trimestralmente el formulario 303 de autoliquidación de IVA (pones facturas de compra, facturas de venta y pagas la diferencia de IVA entre las ventas y las compras. Anualmente también hay que presentar el formulario 390 (que es un resumen recapitulativo del IVA).

Si tenéis operaciones de IVA intracomunitarias (si se cobran anuncios de Admob o Adsense, por ejemplo) también hay que presentar trimestralmente el modelo 349, que es un modelo informativo en el que se detallan estas operaciones (además de ir su total reflejado en el 303).

También se está obligado a presentar trimestalmente el formulario 130 de pago fraccionado del IRPF, en el cual anticiparemos a la AEAT un 20% del beneficio trimestral para la próxima declaración de la renta.

En la declaración de la renta, en la sección de ingresos por estimación directa, pones los ingresos, gastos, pagos a la seguridad social como autónomo y pagas por los beneficios dependiendo del tramo de renta en el que estés.


En un post anterior comentaba los Cambios a partir del 1 de enero de 2015.

Desde 2015 es Google quien vende las apps directamente a los usuarios, y el desarrollador factura a Google, de forma similar a como se facturan las ventas en Amazon Appstore. La diferencia es que en este caso se le factura todo a Google Inc. USA. como se entiende al leer las Condiciones de Servicio de Google Play.


Google no te manda ninguna factura, sólo tienes las órdenes de Google Wallet y los informes financieros de Google Play. Yo mensualmente introduzco una factura de compra a Google Inc USA pagándole las comisiones que me descuenta de las ventas (30%). Esta factura está exenta de IVA, y Google debería mandármela, pero como no me la manda, me la “invento”, ya que me la está cobrando implícitamente.


Si monetizáis aplicaciones a través de Admob o webs a través de Adsense, los ingresos se le facturan a Google Ireland, por lo que necesitaréis ser operador de IVA intracomunitario, ya que las facturas son también sin IVA, y trimestralemente tenéis que informar de estas facturas en el modelo 349.

Recordad que yo no soy un experto fiscal, simplemente os estoy contando mi experiencia, por lo que agradeceré comentarios y correcciones.

Cambios en el IVA para las ventas en Google Play

euroA partir del 1 de enero de 2015 entran en vigor nuevas reglas de IVA para la prestación de servicios TRE (Telecomunicaciones, Radiodifusión y TV, y Electrónicos) en la Unión Europea y afecta a las ventas de apps en Google Play. Anteriormente a las apps se les aplicaba en Europa el IVA del país desde el que eran vendidas, pero ahora se les va a tener que apicar el IVA de cada uno de los países en los que se vendan.

Hasta ahora éramos los desarrolladores europeos los que nos encargábamos de recaudar el IVA y pagarlo a la agencia tributaria de nuestro país, y con este cambio habría que pagar el IVA recaudado en cada país a cada una de sus agencias tributarias. Para simplificar este proceso se va a poner el marcha la ventanilla única (Mini-One-Stop-Shop o MOSS) que, aunque simplificaría algo el proceso, seguiría siendo complejo….

Google al rescate

Afortunadamente Google acaba de anunciar que a partir del 1 de enero se va a encargar de recaudar el IVA y presentarlo ante las agencias tributarias de los países europeos, liberando a los desarrolladores de esta responsabilidad:

Por lo tanto a partir de ahora es Google quien vende las apps directamente a los usuarios, y luego el desarrollador facturará a Google, de forma similar a como se facturan las ventas en Amazon Appstore. La diferencia es que en este caso se le factura todo a Google Inc. USA. como se entiende al leer las Condiciones de Servicio de Google Play.

También se cambiará la forma de incluir el IVA en los precios: hasta ahora se le sumaba el IVA al precio especificado por el desarrollador, ahora el precio final pasará a llevar incluído el IVA (Tax-Incusive-Pricing).

Puedes comentar este post en Google+.

Running Android apps inside Chrome

I couldn’t believe it when somebody told me: Google is running Android apps in ChromeBooks and some selected apps can be installed from the Chrome Webstore. It works with a Chrome extension that implements an Android virtual machine running over the Native Client (NaCL is a sandbox for running compiled C and C++ code inside Chrome).

Based on this Google work, Vlad Filippov released an unofficial Chrome extension called ARChon ( to allow this for all the desktop Chromes (Linux, Mac & Windows). This ARChon extension is a 100MB zip that must be unzipped and loaded into Chrome as an unpacked extension.

Then each Android APK must be converted to an unpacked extension with a Node-JS based tool, chromeos-apk ( and loaded into Chrome. The generated extension contains the APK and some support files. Once installed, it appears as a regular Chrome app.

I tested all my Android apps and I was very surprised with the results, they load fast and run smooth. Some of my apps did not work because:

  • It does not support Google Play Services
  • It does not support apps using the Android NDK
  • It does not support GL_TEXTURE_CUBE_MAP in OpenGL ES (and my app crashes)

But I consider it SPECTACULAR. This opens a lot of new possibilities for Android, now running inside browsers like Flash, … and confirms my “theory” that Android is only a virtual machine (IMHO, the underlying SO is Linux :P).

You can comment this post in Google+.


Facturar en España las ventas de apps en Amazon Appstore

amazon_appstoreEl caso de Amazon Appstore es algo diferente al de Google Play (que analizaba en este otro post) y bastante más sencillo, porque es Amazon quien vende las apps directamente al usuario y luego efectúa el pago de royalties al desarrollador.

Amazon separa las ventas realizadas en y las de cada uno de sus portales europeos (,,, y, enviando una transferencia mensual por cada uno de dichos portales. Se pueden ver fácilmente estos pagos desde la Developer Console en Reporting->Payments.

Los royalties de las ventas a través de se deben facturar a:

Amazon Digital Services Inc.
410 Terry Avenue North
Seattle, WA 98109

Es una exportación (IVA 0%) y por lo tanto irá en la casilla 60 del modelo 303 de IVA (exportaciones y operaciones asimiladas).

Los royalties del resto de portales europeos se facturan desde Luxemburgo:

Amazon EU Sarl
5 rue Plaetis
L-2338 Luxembourg
VAT Registration Number: LU20260743

Yo las agrupo en una factura por mes con una línea por cada uno de los portales. En este caso es una venta intracomunitaria (también IVA 0%) que irá en la casilla 59 del modelo 303 (entregas intracomunitarias de bienes y servicios) y que se debe hacer constar en el modelo 349 con la clave “S” (prestaciones intracomunitarias de servicios).

Puedes comentar este post en Google+.


Desde el 1 de noviembre de 2014 las ventas en Europa se pasan a facturar por Amazon Media EU:

Amazon Media EU S.à r.l.
5 Rue Plaetis
L-2338 Luxembourg
VAT Registration Number: LU20944528

Chromecast vs a HDMI cable (with a MHL adapter)

chromecast_vs_hdmi_cableIt’s been some time since Chromecast was launched in Europe and, despite the hype, I cannot find too much advantages over using a simple HDMI cable with a MHL adapter that you plug in your phone’s MicroUSB (mirroring your phone/tablet screen to the TV screen). Here is my comparative, you will decide if is Chromecast worth it.

Chromecast HDMI cable with a MHL adapter
Price 35€ 12€
Wireless Yes No, it’s a wire 😉 you need to be near your TV (or a long cable)
Router needed Needs a router with Wifi No
Additional development Apps need to implement specific features to use Chromecast You can view in your TV all that you see in your phone screen
Multi-User Yes You need to unplug the cable and plug it to the another device
Phone charging while streaming Needs to plug a charger to the phone Needs to plug a charger to the MHL adapter
Stream your own content from your phone Yes, but normally with paid applications Yes
You can use your phone/tablet while viewing content Yes No, you see in the TV what you are doing in the phone
Play/pause From your phone From your phone
Screen mirroring With lag With almost no lag

Ok, I didn’t bought a Chromecast yet…

¿Cuánto queda de cada euro al vender una app en Europa?

Cuando me invitan a hablar sobre Android o sobre apps suelo siempre comentar algo de monetización y saco este gráfico:


Y como siempre genera bastante interés y es lo mas twitteado y a lo que mucha gente le saca fotos, voy a explicar de dónde salen estos datos.

Partiendo de que el usuario paga 1€ por la aplicación:

  • Primero se le quita el IVA, un 21% cuando se vende en Europa desde España. Si vendes fuera de Europa no se aplica IVA, por lo que el gráfico mejoraría un poco, pero sigamos con el caso de Europa.  Tenemos que 1€/1.21 = 0,8264€, por lo que 0,1735€ son de IVA. El IVA se quita antes que la comisión de la appstore.
  • Luego vienen Apple o Google y cogen su comisión, un 30% en ambos casos, por lo que el gráfico es válido para apps tanto Android como iOS. Entonces 0.8264€ x 0,3 = 0,2479€, y nos quedan 0,5785€
  • Y ahora están los pagos a la Seguridad Social y a la Agencia Tributaria. Variarán en función de la base de cotización y el volumen de facturación, pero estimando que anda sobre un 30%, es 0,5785€ x0,3 = 0,1735€
  • Entonces al desarrollador le queda 0,5785€ – 0,1735 = 0,4050€. Vamos, 40 céntimos, y aún habría que quitar inversión en equipos, alquiler de oficina, electricidad, etc.

Lo curioso es que pasa algo parecido si tienes un kiosco y vendes Chupa-Chups. Poca gente es consciente de los costes que conlleva vender o realizar cualquier actividad económica.

Para más temas fiscales sobre vender apps os recomiendo mi artículo Vender en Google Play desde España.

Puedes comentar este post en Google+.