RSSAmplifier

Blog

Alejandro U. Alvarez

Recent content on Alejandro U. Alvarez

aurbano.euRSS feed ↗55 posts

Latest posts

The best platform team ships zero tools

Instead of one tool that half the company tolerates, imagine twelve that each perfectly serve the people who asked for them. That’s where I think internal tooling is heading. As the cost of building software drops the natural endpoint isn’t fewer, better applications - it’s many more - each built for a narrow audience, maybe even a single team or workflow! But that only works if…

Building a full SaaS app in days

If you had asked me a year ago how long it would take to build a fully-featured clinic management system from scratch, I would have said at least a month. And then a few more months to fix bugs, and I would’ve recommended starting small, and using third party products at the start just to validate the business at first. We’re talking authentication, booking systems, payment processing,…

Washington Square 420

420 at Washington Square Park was like stepping into another world. I didn’t even realise it was going on when I was walking towards my hotel! At first it was an eclectic mix of people, bands playing, stalls… But as time went on and it got darker something changed. Everyone was talking with everyone around them, it was just fascinating to hear their stories and get a little glimpse…

Ozora Festival

Second time here, now with several more festivals under the belt and a better understanding of what it’s all about! The first time we literally didn’t talk with anyone with how overwhelming it felt! But that’s what makes the festivals special, the people. This time we made an effort to get to know people, to participate, to be present. And it changed everything. Each person we…

Fast Sudoku solver in Python

dotdot: A social experiment

About a month ago I had the idea to make a chat where you’d be put in a “room” with a group of people, not too big, so you can just have a chat. No complications, just that. Then the isolation came, bringing with it a ton of free time and an even better reason to make this - people would be bored at home! So we set out to make it, I managed to convince a couple of friends to give…

Flocking Behaviour Simulations

This post details my journey learning about flocking behaviours, the mathematical models behind them, and my own implementation using WebGL. You can also see the final product before you read it if you want! I’ve always been fascinated by flocks of birds flying in the sky creating patterns like the ones you can see in this video: Reference material for my end goal And as usual I’ve…

Procedural Map Generation

At #socialgorithm we recently started working on a new game, let’s call it “ Ant Colony ” for now. It’s a bit like simplified Age of Empires, where you write the code that drives a bunch of ants, and they need to survive and ultimately be the only ones alive in the map. We needed to generate map procedurally, which is nothing new really , but it was new to me when I started…

When do you fix bugs?

At work we have a decently sized pile of bugs in our backlog. Most of them are not business impacting or critical, so they just sit there. Unfortunately we’ve never had a process to handle bugs consistently - until now! This may seem obvious to some, and others will probably have an even better system - I’d love to hear from you if that’s the case! Our new process There are two…

I am my family's password manager

I wrote this right after a phone call from my mum, asking me for her gmail password. Which she set herself last time I was with them (because she couldn’t remember the previous one). So I saved it in my password manager just in case… They basically have all sessions logged in on their phones and computers, and use “Forgot my password” whenever they actually need to login…

Journey into Haskell

I just came across a great read called “The one time I thought I understood recursion” , which talked about a developer’s first steps with Haskell. He’s doing the classic “find the n-th prime” algorithm, that has a typical recursive solution. It includes a snippet that solves the problem in a way that’s just as beautiful as it is impossible to understand…

2019 Q4 Update

After putting this aside for a few years (3 apparently… ) I finally decided to spend a weekend bringing my personal website back to life. I wanted a simple setup, that stores my blog on Github and publishes updates automatically. Until now I had been using Jekyll but setting it up was usually non trivial, and things keps breaking over time. So this time I migrated the blog to Hugo,…

socialgorithm

Online community and platform for code workshops and challenges. Used by universities and companies to run events for students, interns, employees… We provide all the technology + experienced mentors from the industry to our events. Students come to the events from local universities thanks to the support of our partner student-led tech societies. Our first Workshop was Ultimate Tic Tac Toe…

Generating Pixel Perfect PDF Reports

Have you been tasked with generating PDF reports? If you have tried using the typical tools (iText for Java, ReportLab in Python… ) you understand why it’s bad. Imagine having to build a PDF like this: Rectangle pagesize = new Rectangle(216f, 720f); Document document = new Document(pagesize, 36f, 72f, 108f, 180f); // step 2 PdfWriter. getInstance (document, new…

2016 Q1 Update

Actions This past year I invested heavily in Angularjs - building a massive application at work (at least it feels massive to me, the front end is at about 20k LOC without dependencies). At some point I realised that JS wasn’t cutting it for our size , Angularjs provided the tools to build, but not to maintain . So I decided to refactor everything into Typescript . Three weeks and many late…

asciimg: preview images in your terminal

sonar.css: Animated attention seekers

Using the latest front-end tech

There are so many new technologies popping up every week on JavaScript front end ways of doing things that it becomes really hard to stay on top of everything. I was developing a couple of front ends lately, and decided to put everything together and get a nice environment working. I basically wanted: Dependency management (Bower) File injection (Requirejs) Both working nicely together (Grunt) MVC…

My Interesting Zsh Prompt

Yes, this is outdated - I’ve now moved on to use Oh My Zsh, mostly with the default setup to keep things simple. I already did a post on the steps I took to set up my new macbook for development. After that post I started using Zsh more and more, and came to realize how much better it could become with some tweaking. edges - If you just want to replicate this just follow these two steps:

Setting up macOs for development

So I recently got a new Macbook Air , and after a couple of weeks of installing and configuring I finally have an initial setup I’m happy with. Step 1 Setup, install Yosemite, open System Preferences and change everything. Remove most things from the dock, change the theme to Dark. Play with the trackpad gestures, didn’t understand the reason for the dashboard. Love Mission control…

Tricopter v3 build

As you may have seen at the end of my first Tricopter post , after the crash I decided that I was going to upgrade the body to the v3 Tricopter kit on David’s new shop. The new kit has shorter arms that are also hollow, so the ESC cables will be able to go through them. It also comes with a 3d printed yaw mechanism, which works much better with the servo to provide a smoother turning system.

Mac: Shanghai to Spain

I just ordered a new Macbook Air, exactly when the October 16 th Keynote was over (In case they presented a new one with retina display). So now I can only wait for it to arrive, quite excited about this, since it means getting new technology I’m not used to. It’s a pity they don’t offer express shipping, UPS takes 7 days to get it to Spain. In order to make the wait less painful…

Nebula text: WebGL experiment

When I was doing the Tree Generator , I used dat.gui for the first time, and on their workshop they have the following text to play with: dat.gui - This gave me the idea to render text on the canvas using particles that would seem to be gravitating around, in such a way that when seen all together you would see the text. Example: “hey” Click for explosions For this example I set a big…

Web Visualizer using WebGL

I decided to build a tool that would allow me to see how websites are related in a visual way. I’m still working on the concept but the tool is ready and working: WebVisualizer . Building blocks In order to get this to work there were some basic building blocks I needed. Some server side and a few client side. Here is a little run through: Client graph rendering I had some experience with…

Creating a game with Unreal Engine 4

Github just started giving out “ Student packs ”, which include quite a big list of gifts, including a 1 year license of Unreal Engine. I decided to use that to create a game and learn about game development all together. Unreal Engine Browser Step 1 At first I decided to take a look at sample games, to get an idea of the project structure. It comes with a bootstrap for most types of…

Tricopter v2.5 build and first flight

Project After a lot of research on multirotors I decided to go with a tricopter after finding David Windestal’s videos on YouTube. He actually has a really cool blog where he writes about his projects, and used to work at FliteTest . I started my plan with a Word document where I wrote all I could find on tricopters, fpv, parts… etc, so that when I actually decided to start I would be…

nuophoto: Online image editor in JavaScript

PhotoJShop: JavaScript image editing library

jQueryUI Draggable: Bring stack element to front on click

If you are developing window-like elements on HTML using jQueryUI Draggable, you are probably using the stack option to ensure that the dragged element will always be on top. But the actual goal would be for that element to be on top onFocus, and that means whenever the user clicks on the element. Exploring the jqueryUI source code for the Draggable widget we can extract the function that puts the…

Procedurally generated trees in JavaScript

Over the past year I've been more and more interested in HTML5 canvas, since it allows very fast development of graphical animations using JavaScript. Another thing that has always amazed me was procedurally generated content. Check out Steven Wittens' "Making worlds" , a wonderful article on generating planets from orbit to aerial zoom. So I decided to create a 2D tree generator in JavaScript,…

VayaCoñazo

An entertainment site, mixing an RSS aggregator and a “rage comic” site where users submit their content. It pulls content from its own database and a lot other sources, combining everything on the same feed. There is also a video viewer that displays the latest videos in a nice AJAX interface, I actually used the video viewer quite more often than the actual site, it’s a nice…

Line Art: Playing with HTML & JS animations

CloudClient

An experiment integrating an API with JavaScript. It’s fully open source if you want to take a look. Back then I was in uni and saw that Dropbox offered some very cool internships, so I built this in the hopes that it would help get one (it didn’t :( ) I also though I could create an amazing interface for cloud storage services, trying to make the web app look like the Windows…

QuePiensas

Spanish (failed) social network fully integrated with Facebook. It alows users to express their opinion on their friends. I’m still sure that this idea can become popular, it’s just that we didn’t achieve the right user experience. Building everything from scratch was a serious effort that helped us learn a lot, but made development too slow. We had no reusable CSS or components,…

Developing more intelligent algorithms

First of all, what do we call intelligence when talking about algorithms? Well, if we have an algorithm that is able to forecast when it is going to rain and when it will be sunny, we might call that intelligent, but it depends on some other variable, the time and effort it took for it to get those results. Thus the faster and lower number of variables our algorithm needs to return the same or…

Perfect jQuery UI rotating tabs

Tabs are nice. They create a very elegant interface, and jQuery UI does this marvelously. How to do that? Include the files With jQuery and jQuery UI it is dead simple. First, load the libraries, I recommend using the hosted files at Google for jQuery: < script src = 'http://jqueryjs.googlecode.com/files/jquery-x.min.js' type = 'text/javascript' ></ script > < script src = 'path/to/jquery UI' type…

Online radio - Setting it up & hosting it

Audio being broadcasted via the Internet. So that means that we generate an audio stream that listeners cannot control, other than pausing and resuming. To launch one we need several things, to start off, we need a server with streaming capabilities. Since setting up a streaming server might be difficult, we will use a standard radio management program. The main ones are SHOUTcast , IceCast ,…

Event tracking - Google Analytics

What is event tracking? In simple terms, it logs events that happen on your site, for example rate a post (If you have post rating), download a file&hellip; or you do some sort of JavaScript processing that you want to measure. So finally, we can keep track of AJAX interactions with the server, we can log also normal POST requests that do some php processing, like posting a comment, or editing…

Display time since last visit in PHP

This short snippet produces a &ldquo;Twitter style&rdquo; time difference, the idea is that it will round to the nearest time unit, and display only the integers on that unit. For example 1 minute ago , 2 weeks ago , 1 year ago &hellip; You can specify the word you want to appear instead of ago by setting the $ago argument to something else as well. I moved this code to a Github Gist, available…

Chevismo

Entertainment site featuring many popular tools and services. Also a chat, forum, and many other sections that users discovered over time. This was mostly done to experiment with some new programming concepts, but it got quite popular in Spain so I kept on working on it for several years, making a few good friends in the community that it formed :) The chat was the main feature, and some people…

Display previous/next posts in single or category in WordPress

This is a really good option in WordPress, yet very few know how to do it. Well the code is relatively simple, and it gives a good navigation point for users that, if they liked your article, might want to keep reading your stuff. If you want to plainly display the next post after the one the user is reading, use the following function: next_post_link (); Now this function has several (very…

Stumble Upon Low Bounce Rate

This might seem strange, but the lowest bounce rate in my blog comes from Stumble Upon visitors. And this is not surprising, since I think that Stumble Upon is the most accurate way of getting your blog to your exact target audience. For example in the picture above, from my Analytics reports for last month, Stumble Upon visitors' bounce rate is 47.45% less than the blog's average. Demonstrating…

Use the browser to spell check your website

If you maintain a website, you will surely know how important it is to never have any spelling errors in your copy. And if you really care you will always run for sure a spell checker on all your text, but isn't that quite over work? Wouldn't it be much simpler if your browser did all the spell checking without you having to worry about anything? Spell check Drag this button to the bookmarks bar…

Bypass/Flash BIOS password:

Have you ever tried to access a computer's BIOS settings to find they are protected? Or maybe it was you and forgot the password. Either way don't worry since bypassing this simple password is as simple as following the following solutions: Solution 1 The simplest solution, although it may not work on some computers. This solution is called a keystroke backdoor, and it bypasses the password check…

Easily assign an image to a post in WordPress

Have you ever wondered how to assign an image to a certain post using WordPress? Surely there are some plugins that try to do this, and maybe they accomplish it, but probably slowing down your blog. Well, here is a way of doing it without slowing the blog or installing any sort of additional plugins. When you are done writing your post, upload an image to a directory that you will use for this,…

Google Chrome

I&rsquo;ve kept updating this post, scroll down for that! Well, it was time for web-giant Google to jump the gap between being the world leader in providing web-based services to actually providing&hellip; the web. Today Google launched the Beta version of Google Chrome , which will be the revolutionary browser nowadays, as Google claims. But what makes it so great? Well, Google announced in a…

Best unobtrusive anti-spam technique (Not CAPTCHA)

I know you are probably thinking that this will be some silly thing, but this idea that Thomas Landauer came up with is by far the best I've seen in a long time. How does it work? Well the idea is relatively simple: Add CSS-hidden fields that a user won't see, but a spam-bot will fill. Then using php check if they were filled, and if they were: block the spammer!

Did you mean? In php

In a new website I am developing for a client I had to add the usual "Did you mean&hellip; ?" in the search results for her. Si I started thinking for the easiest way to do this. There are actually a lot of php functions out there to look for similar text. The most obvious one? similar_text() similar_text — Calculate the similarity between two strings You must pass 2 parameters plus an optional…

Get full domain from user's URL in php

What I'm going to post here is a php function that will create a standard url from a user-inputted url so that any string will be converted to a functioning url. First it will convert all characters to lowercase: $url = strtolower ($url); Now add http:// if it is not at the beggining: if ( strncasecmp ( 'http://' ,$url, 7 ) !== 0 ){ //There is no http:// at the beginning: $url = 'http://' . $url;…

Quantum Universe Simulation - The Unique beings paradox

Completely off topic for this blog, but at the time it is the best place to write about this. Read through the whole thing before judging what you see, then think about it, and then express your opinion. The Unique Beings paradox To start off I will check with you certain easy experiments that are the base of this. We both agree that the same set of variables, done in the same order in the same…