-
Using WSL and Vagrant+Hyper-V together
[Really dull post about virtualization in Windows] For the last couple of months, I’ve been (on and off) working with others in a project to migrate development environments so that we developers can use both virtual machines with Vagrant+Hyper-V AND WSL. -
Python 3.11 in Ubuntu Xenial 16.04
Deeplens, is it dead? I’ve got a Deeplens. It was a gift that I received when I left my previous company. I played with it for a while when I got it. -
Fix timeout in ClusterInfoUpdateJob
A really small post to document a fix to an issue. We were getting the following error in the logs of a docker container running elasticsearch that was being used by Graylog. -
Low-background steel and AI
A few months ago I heard for the first time the term low-background steel. It seems steel produced before the Second World War is more valuable for certain applications. The reason is steel produced after the first nuclear tests was contaminated with traces of nuclear material from those tests in the atmosphere. -
Higher loss with Tensorflow-metal, especially with ReLU
A few days ago, while working on my post about how y=x3 might be a good activation function, I discovered an issue with tensorflow-metal, the python package to use your GPU in Tensorflow on a Mac. -
x^3 as a non-linear unit
UPDATE: It turns out it was not crazy at all. These days I’m trying to learn Machine Learning(once again). I’m more interested in understanding the fundamentals than running the race of prompt engineering and “ChatGPT” (and what is called LLM). -
Improving Windows build times in EKS
Improving Windows build times in EKS I cannot believe a year has passed since my last annotation (which was also EKS and Windows related). One of our most recent projects has been moving most of our build infrastructure to the cloud. -
Windows 2022 in EKS with packer
Windows 2022 in EKS Update: This article is no longer relevant. AWS already has Windows 2022 optimized images Update 2: Thank you John for your kind message If you are using Windows in EKS, you are probably eagerly awaiting for an Windows 2022 AMI. -
Debugging windows nodes in EKS
Debugging windows nodes in EKS After a couple of days dealing with windows nodes in Kubernetes AWS EKS, I thought I would provide a quick write-up of what I’ve seen. For two reasons -
Single instance with persistent EBS
Single instance with persistent EBS Sometimes you only want a single instance in AWS. But you know that everything fails, and you assume that your machine will fail too. You have your backups in place, but you have some data on disk that you would rather keep. -
NAT Gateway is expensive
NAT Gateway A quick intro in AWS networking In AWS, it is very common to create your own isolated network, in what is called a VPC (from virtual private cloud). The official (more like general perception) way of doing it, involves having multiple public and private subnets. -
Create an AWS account from the command line
This post is a basic copy of this AWS page on how to create an AWS account. But it took me a while to understand all the steps (because I cannot read), so I’m just writing so that the next time I can remember. -
EDITOR variable as a script
I’ve decided I’m going to start writing again, even small things. This week I was trying to create a Kubernetes cluster using Kops. In the end it didn’t work (mainly because it uses a Classic LoadBalancer and we don’t have public IPs in that VPC) -
Dock disappeared in MacOS Catalina
Yes. I feel your pain. That little bar at the bottom of your screen is no longer visible after you upgraded to macOS Catalina. Well, here I am, to help you before Apple does. -
Metadata abuse in AWS
Introduction A few weeks ago there was an attack on Capital One’s AWS infrastructure that lead to the compromise of personal information on around 100M people. AWS is putting great effort in avoiding S3 buckets configured for public access. -
Configuration in AWS is difficult
I’ve been doing some research on credentials compromise and abuse in AWS. In the process, it was obvious that the main mitigation would be (is) to minimise the permissions assigned to the EC2 instance profile, applying the “least privilege principle”. -
Trivial error with Bitbucket API
UPDATE: A few days after publication, the documentation now includes some examples. Well done, Atlassian. Most people in the software industry know Jira. For better or for worse, it’s the most used product for managing tickets, requests, bugs… -
AWS CloudWatch alarms
One of the things less obvious for anyone trying to setup Cloudwatch alarms is the treatment of missing points. You create an alarm, to detect too many 5xx errors in your ELB. -
“Serverless” in three minutes
Imagine you are interviewing some guy for an IT role and she says that he doesn’t get that of “going to the cloud because everybody knows there are no datacenters in the sky”. -
Switch off your servers
Werner’s keynote — https://youtu.be/65unhiJNaok?t=2692 A few months ago, I went to AWS Summit London 2016. One of the takeaways for me was that the cloud is not only the ability to scale up, but also down. -
A flow for containers
Why One of the issues in a container-based architecture is how painful it is going from code to deployed containers. Initially you can think it’s only two steps: build an deploy. -
AWS ELB in Apache logs
So you are using AWS Elastic Load Balancer in front of a set of Apache httpd servers and you’ve discovered that your Apache logs are full of garbage. Here comes a set of tips to improve your logging: -
Self-healing software
7 am in the morning. Some notifications in the mailbox and on Slack. Big demo today and part of the system had gone down. And had gone back up too. With no human intervention. -
Deploying docker
“Thou shall not pass” “docker exec, lets install wireshark”This is my account of some experiences deploying docker (or should I say messing/faffing with docker). The path has not yet finished, but I wanted to share our experience in case it can help others. -
Mobile apps
Platform stats for the UKWe’re recruiting a Product Manager for our team, and this week we’ve been doing some interviews. One of the recurrent topics in those interviews has been mobile apps. -
A different Scala is possible
Scala, for those who haven’t heard about it, is a programming language. It allows different ways of programming (functional programming but also object oriented programming) It can generate code that runs like, and interoperate seamlessly with, Java. -
Agile is not Standups
Last Thursday I went to a Microservices’ users group meeting. Wonderful venue and reception. And very interesting talks. However, as in many of these events, the better part was meeting people. -
DevOps is so 2010. NoOps is the future
Cup cake or fairy cake. It doesn’t matter as long as we know what we meanTechnology moves so quickly that people who work in it are always at risk of being obsolete. -
React-native: some context and a few wrinkles
React native is a way to build iOS applications using Javascript. The idea is not radically new, since you are probably aware of PhoneGap/Cordova and others like that. I myself played with something similar long time ago. -
Developers - The neverending story
A year ago I vaguely new something about Scala. Today I’m not an expert, but I’m reasonably proficient in Scala, with some experience in Lift, Slick, and some incursions in akka. -
Developers are from Mars, users from Venus
From 2008 to 2012, I was the project manager of a project with very special users. The kind of project was in the field of digital signature for the Spanish Government. -
I'm a geek
A few weeks ago, I bid and won a PowerEdge 2650 server for three quids (plus another 6 of renting a car and collecting it). It´s an old piece of hardware (32 bits double Xeon, 4gb of RAM), bulky as hell (or so does my back says) and noisy as a diesel generator. -
Agile is about managing risk
It is not easy to explain what is agile or the need of agile practices in software development. Agile is not only about releasing early a valuable product even if it is the highest priority. -
Jetty
Lately I’ve had three different issues with Jetty. Two of them were those kind of issues that are not directly related to the problem. The third proved to be a bit more tricky. -
Scala: First impressions
A couple of months ago I started working for a different company. I’m quite happy there for many reasons. But one of them is having the opportunity to learn a new language: Scala. -
PDOException
Small and uninteresting post. But I’ve been dealing with an issue for hours and maybe somebody can benefit from this in the future. While trying to index using Sphinx, I was getting the following error -
Optimizing
A few days ago I went to a meeting and we were discussing (among lots of different topics) various optimizing mechanisms for a web application. After the meeting had ended, I came to the conclusion that, implicit in all the conversation, I was not fully aware of the most obvious step previous to any optimization: -
Tipping point
I’m happy. I was developing a feature that allows to export from my showcase project Whendoigo to TripIt. I was using a gem from TripIt. A gem is kind of a library for Ruby (sort of jar for Java). -
I was sure it was my fault...
… but it wasn’t. In the last week or so, I’ve been hitting against a wall because of two different bugs. I was sure that both bugs were my fault. It took me ages (of a scarce spare time) trying different things, searching for similar problems, until in both cases I finally came to an issue in different tools. -
Multithreading: Warning lights
A few days ago I went to an interview which included a pair programming session. The session was a great experience, but the result wasn’t quite as good as it should have been, because of some difficulties understanding on what was being asked. -
It's great when your idea is a good one. But...
Since I came to London, more than a year ago, I’ve been travelling a lot back to Spain. I used to schedule trips in advance, and once I discovered I had two different reserves for the same trip (fortunately I was able to change one of them). -
Firmware upgrade for Xperia U in Linux (II)
[Long post] Edited (08th-Jun-2014): Updated the firmware download site. In my previous post I explained that one of the things that made the installing process more difficult was the lack of a general picture of the process. -
Firmware upgrade for Xperia U in Linux (I)
About a year ago I received some wonderful presents from a group of friends :D. One of them was an Xperia U. Sony Xperia U (ST25i) has a stock Android 2. -
Crash course on Spring MVC, transactions and persistence (I)
A couple of weeks ago I was asked to do an assignment for a selection process. The task was trivial for expected 2-3 hours, and mentioned that the final project would end as a Web Application based on Spring and Hibernate. -
OptionalDataException while reading JMS message
We’ve been dealing with another bug in JMS code. The symptom was blocked queues and the following exception: javax.jms.JMSException: getObject [...] Caused by: java.io.OptionalDataException at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1325) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) at java.util.HashMap.readObject(HashMap.java:1066) In trying to reproduce the issue people in the team introduced a non-serializable object, but they got an exception sending the message (Caused by: javax. -
Weird IE9 bug
This last two weeks I have dealt with a weird bug in IE9. The problem appeared in a legacy web application. The issue reported by the user was a combo that didn’t drop down. -
My first Chrome extension(II)
In last post I wrote why. In this post I want to explain how I wrote my first chrome extension. First. The Chrome Extensions developer’s documentation is quite good. Second. A chrome extension is a zip of a folder with an crx extension instead. -
My first Chrome extension(I)
This afternoon I was preparing an interview I expect to have next week, and came to an interesting page with information about job selection process and companies inside information. However, after surfing a bit, the inevitable, “become a registered member” started to bug me. -
The best eclipse tip ever
How to disable auto close for the XML comments. Preferences->XML Files->Editor->Typing. -
Calisthenics
I didn’t know about object calisthenics. They are a set of rules to help develop better: One level of indentation per method< Don’t use the ELSE keyword Wrap all primitives and Strings First class collections One dot per line Don’t abbreviate Keep all entities small No classes with more than two instance variables No getters/setters/properties Some of them are a must, with some others I have some doubts. -
No more applets
For more than three years I’ve been managing certificate-based digital signature applications. One of the main source of pain always was and is generating the signature on the user browser. As it needs access to the user’s keystore, the browser alone didn’t have access to it, and was needed some kind of component (either ActiveX, usually a Java applet). -
Little robot (IV): Ruby version
Besides the console faking and the dependency inversion issue, my code in Ruby was pretty rough. You can see here the version I sent. One obvious problem is the use of string instead of symbols. -
Little robot (III): Dependency inversion
As I wrote some posts ago, I received an assignment, and I decided to do both in Java and in Ruby. When doing in Ruby I wanted to make sure I was able to test the UI, and not only the engine. -
Rails in Ubuntu
I’m planning to make a newbie post about rvm, bundler and the rest. But just in case you’re starting with ubuntu, here comes a piece of advice. There is some controversy about editor to use for ruby. -
Faking the console in Ruby
A few days ago, I was preparing an assignment for a job process both in Java and in Ruby. While doing in Java, I decided to test the engine. But in Ruby I wanted to test the whole application, including the communication via standard input/output on the console. -
Little robot (II): Java version
As I wrote in a previous post, I was asked to design a software managing a robot inside a board of 5x5 cells. The typical commands were PLACE X,Y,F -> Places the robot in the x,y position facing F MOVE -> Move the robot 1 cell in the facing direction LEFT -> Changes the facing counter-clockwise RIGHT -> Changes the facing clockwise REPORT -> Shows the current position and facing and the main requirement was that the robot didn’t fall outside the board. -
Little robot (I)
While applying to a position a few days ago, I received an assignment trying to test my coding style. IMO, assignments are quite a good way to get a peek on the coding style of someone. -
Savon.rb and sequences
As I wrote in my last post, I’ve recently learned it is important to be able to show what you’ve been doing. So I’m trying to increase the posts on a number of small problems I find in my daily job, and in my hobby projects. -
Xerces, Xalan and Saxon, more recipes
In a previous post I proposed some tips for trying to manage and control the hell of XML and XPATH parsers. However, as one reader pointed (EDIT: This was in my original blog), those tips sometimes are not enough. -
Javascript all the way
These days I’m playing with NodeJS. And today I was thinking about the fundamental change in Javascript. A few years ago it was a darn language for the web. Now someone could query a database using Javascript (CouchDB), create the server portion of a web application using Javascipt(NodeJS), create the browser portion of a web application using pure and fast Javascript, and even create a pure mobile interface using Javascipt (Appcelerator Titanium). -
The synchronized silver bullet
I lead a team that is transitioning a 9-year-old internal framework from a somewhat Struts based to Spring IoC and Spring MVC based. However in the meantime we keep hunting old bugs, which needs to dive in the code. -
Xerces and Xalan: Recipes for the win
OK. I have explained why Xerces and Xalan are a source of problems, and I have explained why you shouldn’t use System.setProperty to resolve them. In this post I wan’t to give a few recipes to resolve Xerces and Xalan problems. -
Things about Xerces, Xalan and Saxon I didn't know (III)
In my previous entry, I tried to explain why Xerces and Xalan are so complicated. In this entry I want to focus in System.setProperty. Because, as I said that is the usual solution you are going to find when you need a specific parser for whatever reason. -
Things about Xerces, Xalan and Saxon I didn't know (II)
I said in the previous post that Xalan and Xerces sometimes look like magic. So what are they and why are so complicated?. Xerces is a Java library that helps parsing, validating and managing XML documents. -
Things about Xerces, Xalan and Saxon I didn't know (I)
These days I’m getting very proud of myself. I’m acting less as a project manager and more as a true Scrum Manager. I go to the scrum, listen, and a great deal of my work that day is trying to solve problems for the team. -
Notes to a newbie spring-mvc developer
Activate log4j. Without it you’re lost Look through the log to see if you’re getting the RequestMapping through Spring. If you are not despite correct annotations, see this post. In particular if you’ve got Spring Security installed, for Goodness sake, don’t forget these lines: -
Spring course
I’m attending this week to a Spring Framework course. It’s a very small class: the teacher, my boss and me. I don’t consider myself slow, and neither is my boss. No, he doesn’t read this blog. -
More Mantis problems
I have been fighting with PHP, Mantis and SOAP since my last post. Now I think I have discovered a bug when uploading via Mantis SOAP a binary file. It’s great being able to debug a PHP application. -
Mantis on SQL Server
[Technical post] I’ve been busy last couple of days trying to make Mantis work with a Microsoft SQL Server database on a Windows Server 2003. Many people would ask why to use MSSQL instead of Mysql, a much better DBMS, not mention the OS election.