December 21, 2018
The world is a big place, and the Internet has gotten pretty big too. There are always new projects being created, and I want to share some useful and interesting ones from my growing list:
Squoosh, hosted at squoosh.app, is an open source in-browser tool for experimenting with image compression, made by the Chrome development team.
With Squoosh you can load an image in your browser, convert it to different image file formats (JPEG, WebP, PNG, BMP) using various compression algorithms and settings, and compare the result side-by-side with either the original image or the image compressed using other options.
The screenshot above demonstrates Squoosh running in Firefox 64 on Linux. Click on it to see a larger, lossless PNG screenshot. The photo was taken by my son Phin in northern Virginia, and is a typical imperfect mobile phone photo. On the left is the original, and on the right I am showing how bad gradients in the sky can look when compressed too much—maybe a quality level of 12 (out of 100) was too low. It does make for a very compact file size, though. 😄
Squoosh’s interface has a convenient slider bar so you can compare any part of the two versions of the image side by side. You can zoom and pan the image as well.
If you want access to an amazing number of symbols in a font, check out nerdfonts.com. There you can mix and match symbols from many popular developer-oriented fonts such as Font Awesome, Powerline Symbols, Material Design, etc.
I probably should have chosen some fun symbols to demonstrate it here, but I could tell that was a rabbit hole I would not soon emerge from!
There are many public pastebins these days, but glot.io distinguishes itself by allowing you to run real code on their server in nearly 50 languages.
It offers both...
December 20, 2018
A customer asked for our help dealing with logistical nightmares they encountered during a hardware update and data center relocation project. The customer had two active data centers, and wanted to relocate one of them to a modern Tier 4 facility to improve its performance and provide redundancy for critical systems. They also wanted to consolidate or decommission equipment to reduce recurring expenses and reduce their carbon footprint. The client decided to move to a Tier 4 data center because they provide across-the-board redundancy within the data center.
Enterprises typically transition to Tier 4 data centers because they offer the highest uptime guarantees, and have no single points of failure. These facilities are fully redundant in terms of electrical circuits, cooling, and networking. This architecture is best able to withstand even the most serious technical incidents without server availability being affected. Tier IV facilities have contracts with disaster management companies who will provide them, for example, with fuel in the event that a natural disaster damages the power grid.
(More information about the four data center levels is at the end of this post.)
Some of the customer’s key concerns were:
1. To safely move their virtual environment to the new data center.
2. To protect assets during the relocation.
3. To completely shut down the current data center and migrate seamlessly to the new data center.
4. To update external DNS records without causing any downtime for the web applications used by their customers.
To manage data center relocations is challenging because there are many moving parts and variables. Typically, planning starts 6 months ahead of the scheduled relocation date. We seek to understand the role of each system by consulting in-depth with all the teams involved. We analyze each part of the client’s tech...
December 19, 2018
We brought the Liquid Galaxy to Austin Startup Week a few weeks ago. This event combines developers, demonstrations, and some great pub crawls for the week. This year, ASW had a particular focus on VR, AR, and data visualization, which made it a great fit for us to show off the Liquid Galaxy platform. We set up our 7-screen system near the event registration, and introduced the technology to hundreds of visitors and dignitaries. We want to specifically thank our gracious hosts at Capital Factory, the main sponsor of ASW.
The highlight of this year’s conference is the US Army’s Futures Command setting up a new HQ in Austin to be accompanied with a new working lab at Capital Factory. This Command has a mission of finding new interesting technology and adapting it to solve issues facing soldiers in the field. We had some great conversations with many of the people involved. Of particular note, visitors enjoyed the presentations we had that combine map visualizations, 3D objects, and 4K video, all seen simultaneously. We are firmly confident that the Liquid Galaxy can play a role in simulation training, GIS visualization, and mission planning for the relevant agencies.
The Liquid Galaxy was a great success with the pub crawl portion of ASW—we can show complex 3D models with the Unity engine, and many of the new startups are working on VR tools. Being able to see VR on a room-sized scale impressed our visitors. Here also, we anticipate some good partnerships and cooperative developments to be coming soon. The pub crawls, as with all things in Austin, were awesome.
A few more photos of the event in parting:
Visitors enjoyed exploring their own office views.
Our initial setup at ASW, showing a simulated Mars Base. The US Air Force representatives at the conference paid particular interest to these sorts of simulated environments.
December 13, 2018
We are looking for a full-time engineer to help us further support the software, infrastructure, and hardware integration for our Liquid Galaxy and related systems. Liquid Galaxy is an impressive panoramic system for Google Earth, Street View, CesiumJS, panoramic photos and videos, 3D visualizations, and other applications.
Since Liquid Galaxy is a global operation, we are looking for an engineer who will cover shifts from 5 PM U.S. Eastern Time from Wednesday through Friday; as well as both Saturday & Sunday from approximately 9 AM until 6 PM U.S. Eastern Time. These hours may have to be adjusted slightly.
End Point is a technology consulting company founded in 1995 and based in...
November 21, 2018
When Rasmus Lerdorf created PHP in the ’90s, I bet he never thought that his language would become the engine that powers much of the web, even today, 23 years later.
PHP is indeed super popular. Part of that popularity stems for the fact that it can run pretty much anywhere. You’d be hard pressed to find a hosting solution that doesn’t support PHP out of the box, even the cheapest ones. It is also fully functional in pretty much any version of the most used operating systems so development and deployment have a very low barrier of entry.
Both because and as a result of this ubiquity and popularity, PHP also boasts an expansive, active community and a rich ecosystem of documentation, tools, libraries and frameworks. Zend Framework is a great example of the latter.
I started using Zend Framework a good while ago now, when it became clear to me that writing vanilla PHP wasn’t going to cut it anymore for moderately sized projects. I needed help and Zend Framework extended a very welcomed helping hand. Zend Framework is basically a big collection of libraries and frameworks that cover most of the needs that we would have as web developers building PHP applications.
While most parts of Zend Framework are standalone components that we can plug into an existing code base, picking and choosing what’s needed, there’s also the likes of Zend MVC. Zend MVC is, in its own right, a framework for developing web applications using the MVC design pattern (shocker, I know). A Zend MVC application is itself comprised of several other components from Zend Framework’s library like Zend Form (which helps with developing HTML forms), Zend DB (which helps with database access), Zend Validator (which helps with input validation), and many more.
Obviously, these are very useful within the context of web applications but they can also be valuable on their own. One could put together a PHP console app and make one’s life much easier by leveraging the features provided by these libraries...
November 20, 2018
I love .NET. Particularly the C# language. However, the greatest thing about .NET is the vibrant ecosystem full of tools (the Visual Studio IDE, for example, is outstanding), libraries and frameworks that make one’s life easier and more productive. It has, however, a crucial weakness that prevents it from reaching even greater heights: it’s locked to Windows systems. So, whenever the need comes to develop something outside of a Windows environment, you’re out of luck.
So, naturally, when Microsoft announced their initiative to make the .NET Framework open source and bring it to other platforms a few years ago, I was really excited. Fast forward to today and we have .NET Core as the product of great effort from both Microsoft and the community.
I’ve definitely kept it on my radar since its inception back in 2016, but haven’t had the chance to take a really deep dive and see what the technology is about and get a feel for the ecosystem surrounding it.
Well, that time has come and just last week I decided to go in and see what’s up and how everything works. Suffice it to say, I am impressed. The promise of being able to write .NET code everywhere has been pretty much fulfilled.
In terms of features, .NET Core is still missing some stuff but the feature set is mature enough that it can handle most use cases. Me being first and foremost a web developer though, what has me most excited is ASP.NET Core, .NET Core’s own web development framework inspired by classic ASP.NET.
ASP.NET Core is not just a port of ASP.NET, it is a complete rewrite with a new architecture, new features and ways to develop apps.
At the core of ASP.NET Core (no pun intended) there’s the notion that an HTTP request gets...
November 2, 2018
Last month End Point had the great pleasure of exhibiting a Liquid Galaxy in Kenya’s capital city of Nairobi at the first Google for Kenya event.
Kenya is home to the first Google office in Africa (opened 11 years ago) and Google is planning on growing its involvement in the country. The event was part of Google’s Next Billion Users initiative, and centered around some big announcements for Kenya. Google announced major financial commitments to a broad range of goals aimed at spurring innovation and they also announced the release of Street View for Kenya!
In July we did a similar Next Billion Users Google event in Lagos, Nigeria. The Nigerian event was open to the public and had around 7,000 guests so it was a nice change of pace to have only a couple hundred guests at the Google for Kenya event.
The Liquid Galaxy was center stage and guests took turns finding Street Views of their houses/apartments and then looking through the spectacular Street View scenes from across the country. The Street View of the Tusks of Mombasa seemed to put a smile on everyone's face. My personal favorite was a panosphere taken from a drone of the great wildebeest migration in Maasai Mara.
Guests asked questions about what Street View actually gets used for and it made me think about how ubiquitous it has become in the United States. Just last week I used Street View to verify an address and find parking near my voting location. These things sound small but are immensely valuable when you need them. I’m sure Kenyans will find all sorts of new ways to get value from this Google service.
We were thrilled to have the opportunity to share Liquid Galaxy, and support Google for Kenya in leveraging the platform to explore local regions and homes. Google had previously installed the Liquid Galaxy in five different continents (North America, South America, Europe, Asia, and Australia), and these two recent events are the first in which Google has used Liquid Galaxy in Africa.
October 30, 2018
If a developer has plenty of time, then the best way to learn a technology is to read a book about it, solve the tasks the book presents, and then to do some very basic work just to get some real-world experience. When this is done, one might want to watch some tutorial videos, consult with people who are either also learning, or, even better, are experienced in the given technology.
When someone gets comfortable with a dev stack, the person might be inclined to prefer to work only in his or her comfort zone. In consulting, this is feasible in the majority of cases. But what if someone gets a new project in a different software stack? Is it a big problem? In my opinion, it’s not a problem, if we are able to determine the minimal knowledge we need to get started. So how can a developer quickly grasp the essence of the problem space? Where are answers to the most frequent questions reachable?
In 2008 I graduated from the university and was looking for a job. In the middle of the world economic crisis new programmers had limited chances at getting a job. So I began accepting very small projects from varied clients, all using vastly different technologies. To be successful at this, I realized I had to revise my method of learning technologies.