Winning with CSS Grid and Autoprefixer
Photo by Stijn te Strake on Unsplash
Using CSS Grid Today
Support for CSS Grid is excellent (over 90% globally! 💯). I have been using it in a variety of client projects for the past few years with great success. The combination of CSS Grid and Flexbox has made layout on the web much simpler, more fun and less frustrating compared to the hacks techniques which were used for CSS layout in the past. Definitely give it a try if you haven’t already done so.
IE10 and IE11 support an earlier version of the CSS Grid spec and with help from Autoprefixer we can reap the benefits of CSS Grid in those old browsers with a little bit of extra work. I’ve long been a huge fan and happy user of Autoprefixer. It’s a PostCSS plugin that examines your CSS and augments it with vendor prefixes and alternative syntaxes. Although vendor prefixes (e.g. -webkit
, -moz
, -o
, etc.) are much less common these days, there are a few still in use.
CSS Grid Basics
With CSS Grid the basic idea is to define the grid, i.e. the rows and columns that make it up, and then go about placing elements on the grid. Think of a website layout with a masthead, navigation, hero image, main content sidebar, and footer as an …
browsers css tools development
Rails Exception Notification and Logging
Photo by Randen Pederson, used under CC BY-SA 2.0, cropped from original.
Exception handling is an important component of any Rails application that is intended to be deployed in a production environment.
If you have ever felt your heart sink because you received a screenshot of your Rails application with this dreaded “something went wrong” message from a customer or client, you know what I’m talking about:
Though developers strive to deploy projects that are free of bugs and never throw an exception, the reality is that people using your Rails applications do sometimes encounter errors. When that happens it’s better to have your application automatically notify you of the event, rather than finding out about it for the first time when someone calls or emails you.
Exception Notification
The Exception Notification gem is a stalwart of the Ruby/Rails ecosystem and the standard solution for configuring your Rails project to notify you when errors occur. I typically use the gem to deliver notifications to a development/hosting team via email, but it has a variety of built-in notifiers that can output to just about any location you would want: Slack, IRC, Amazon SNS, etc., plus an …
ruby rails monitoring
Project On-ramping: Infrastructure and Codebase
Photo by NASA via Unsplash
Living in the consulting world, we often jump into codebases and environments to get quickly up to speed to provide estimates or start fixing bugs right away. Here are some important landmarks I visit along my way to get up to speed on a new project.
Dev stack
First up, I learn as much as I can about the dev stack a codebase runs on. It used to be the case that LAMP (Linux, Apache, MySQL, PHP) was a pretty common setup in our world, but the number of dev tools and variety in stacks has expanded greatly over time. Many of my End Point clients are now running nginx on Linux, with Ruby on Rails and MySQL or PostgreSQL, but as a company we have both breadth and depth in web stack technologies (hover over the Expertise dropdown above).
Layered on top of the base infrastructure might be a JavaScript framework (e.g. React, Ember.js), and other abstractions to improve the dev process (e.g. Sass, Node.js). And layered on top of that further is the possibility of other services running on the server locally (e.g. search using Elasticsearch or Solr) and 3rd-party tools running on a server elsewhere (e.g. content delivery networks, monitoring, Stripe).
The web stack …
rails clients development
Seeking a PHP developer
This position has been filled. See our active job listings here.
We are looking for another PHP software engineer, to work with us during business hours somewhere in the UTC-7 to UTC-4 time zones (U.S. Pacific to Eastern Time). This is a contract-to-hire role, and can be full time or part time.
End Point is a 23-year-old Internet technology consulting company based in New York City, with about 50 employees, most working remotely from home offices. We collaborate using SSH, GitLab, GitHub, chat, video conferencing, and good old email and phones.
We serve many clients ranging from small family businesses to large corporations.
What you will be doing:
- Develop new web applications and support existing ones for our clients
- Work together with End Point co-workers and our clients’ in-house staff
- Use your desktop OS of choice: Linux, macOS, Windows
- Use open source tools and contribute back as opportunity arises
What you bring:
Professional experience with web application development and support:
- 5–7 years of development with PHP (older 5.x and newer 7.x versions) and JavaScript
- Frameworks such as Symfony or Laravel
- Databases such as PostgreSQL, MySQL, MongoDB, Redis, Solr, Elasticsearch, etc.
- Security consciousness
- Git version control
- Automated …
jobs-closed php remote-work
Custom cabinets for the Liquid Galaxy
End Point is proud to announce a new offering in its product line: Liquid Galaxy systems built into beautiful custom cabinets! Our first custom cabinet was created and installed at Auburn University’s Ralph Brown Draughon Library this past month. Both we and the University are thrilled with the success of this install.
Cabinets provide a perfect hybrid solution for clients who want the look of permanence and grace that comes with a wall-mounted system, but are somehow limited by their physical space. Until now, clients were given options of an entry-level system on a portable aluminum frame (great for those in need of moving displays to various locations) or permanent wall-hung systems that are a build-out of a curved reinforced wall.
In the case of the recent installation at Auburn University (pictured top), the library staff elected to have a cabinet built because the wood-grained structure was more conducive to the architectural integrity of their beautiful library and the popular location they wanted it to be in.
(Update in December 2021: You can learn more about Auburn University’s installation in my follow-up after two years of operation at the library.)
Other custom …
visionport
Google Drive for virtual machine images
Recently we decommissioned an old database server. We wanted to keep a copy of its 53.7 GB virtual machine disk image in an archive in case there is ever any need to revive it. It is really unlikely that we will need it any time soon, or maybe ever, so we thought of putting it in one of the cloud storage services.
Cloud storage
Cloud service pricing is often metered by storage, network, operations, and other fees, making it complicated to calculate what you will pay. We already use Amazon S3, Azure Storage, and Google Cloud Storage and they are all no exception. For our example 53.7 GB disk image, the Google Cloud Storage Standard Storage pricing is currently:
- No charge for network ingress when we upload it
- About $1.08 to $1.40 USD per month to store the file in the US or EU
- About $6.50 each time we download the file to most places in the world!
These days a ~50 GB disk image is on the small side, so you can imagine the cost going up rapidly with larger disk sizes.
Some cloud storage providers offer lower prices for slow-availability semi-offline storage, such as Amazon S3 Glacier or Google Coldline Storage. Those would indeed save us some money for monthly storage, but the …
!-->sysadmin cloud storage
React: Style Tips
Photo by Harpal Singh on Unsplash
I’ve worked on a couple of large React projects over the last few years. In my experience, one of the trickiest parts of getting a React project up and running is figuring out how you want to visually style your application in the browser, so I’ll share in this post some of the ways I’ve styled my projects.
CSS Modules
Libraries like Material-UI (which I’ll discuss next) do a lot of the work of styling for you. However, sometimes you’ll still need to define styles unique to your project, and the most common way is with CSS.
For projects created with create-react-app, any CSS you include in a React project isn’t scoped. This means that if you define a class tall
in one component that has a height of 40 pixels and a class tall
in another component with a height of 80 pixels, one of your rules will overwrite the other—whichever makes it into the compiled CSS file last. However, webpack allows you to use CSS modules, which restrict your CSS rules to components that explicitly import them. It took me a long time to figure out how to use them due to lack of relevant documentation, but eventually I discovered a very easy way to do it.
If your file …
javascript react css
Keeping our Windows Server clean
Photo by Shawn O’Neil, used under CC BY 2.0, cropped from original
Introduction
I have been running websites and web applications under Windows Server for years, for both work and personal purposes. Most of them were small websites with a few daily visitors, but one particular case (a weather website I originally created as a hobby) grew over time to around one million page views per month.
The website is mostly ASP.NET, with some services and components written in PHP and Python, and uses MySQL for persistence (as well as a bunch of XML/PNG files to cache weather forecasts and weather imagery). As months passed by, I’ve discovered that the default IIS and Windows log files will grow drastically so, while checking its content periodically to detect issues and vulnerabilities, we need to take action to preserve free disk space and server performance.
Internet Information Services log files
In our IIS public folder (by default C:\inetpub
) we will have a path logs\LogFiles
. Inside that folder, the IIS service will create a set of folders, one per HTTP/FTP service that is running under our instance. How fast it will grow depends on many things, mainly traffic, but also website …
windows iis logging sysadmin