Software Engineering

Software Engineering

1635 bookmarks
Newest
Screentime - Measure how much time things spend on-screen
Screentime - Measure how much time things spend on-screen

"Screentime is a small tool that helps you start thinking of your website traffic in terms of time instead of hits (pageviews, visits, etc). You can define areas of the page, called Fields, and then Screentime will keep track of how much time each Field is on screen for. You can also use it to track smaller elements, like ad units. Screentime only handles the client side work. You'll need to provide your own backend to post the data to. I've included an example that shows how to this with Keen IO using only a few lines of code. There's also a built-in option for posting to Google Analytics but there are some caveats (see below)."

Screentime - Measure how much time things spend on-screen
reclass — Recursive external node classification — reclass 1.3 documentation
reclass — Recursive external node classification — reclass 1.3 documentation

"reclass is an “external node classifier” (ENC) as can be used with automation tools, such as Puppet, Salt, and Ansible. It is also a stand-alone tool for merging data sources recursively.

The purpose of an ENC is to allow a system administrator to maintain an inventory of nodes to be managed, completely separately from the configuration of the automation tool. Usually, the external node classifier completely replaces the tool-specific inventory (such as site.pp for Puppet, ext_pillar/master_tops for Salt, or /etc/ansible/hosts).

With respect to the configuration management tool, the ENC then fulfills two jobs:

it provides information about groups of nodes and group memberships it gives access to node-specific information, such as variables reclass allows you to define your nodes through class inheritance, while always able to override details further up the tree (i.e. in more specific nodes). Think of classes as feature sets, as commonalities between nodes, or as tags. Add to that the ability to nest classes (multiple inheritance is allowed, well-defined, and encouraged), and you can assemble your infrastructure from smaller bits, eliminating duplication and exposing all important parameters to a single location, logically organised. And if that isn’t enough, reclass lets you reference other parameters in the very hierarchy you are currently assembling."

reclass — Recursive external node classification — reclass 1.3 documentation
benjaminoakes/maid
benjaminoakes/maid

"Maid keeps files from sitting around too long, untouched. Many of the downloads and temporary files you collect can easily be categorized and handled appropriately by rules you define. Let the maid in your computer take care of the easy stuff, so you can spend more of your time on what matters.

Think of it like the email filters you might already have, but for files. Worried about things happening that you don't expect? Maid doesn't overwrite files and actions are logged so you can tell what happened.

Maid is inspired by the Mac OS X shareware program Hazel. Think of Maid as "Hazel for hackers".

Your rules are defined in Ruby, so simple rules are easy and difficult rules are possible. This also makes Maid a great general-purpose advanced file renaming tool."

benjaminoakes/maid
ClusterHQ/flocker
ClusterHQ/flocker

"Flocker is a data volume manager and multi-host Docker cluster management tool. With it you can control your data using the same tools you use for your stateless applications. This means that you can run your databases, queues and key-value stores in Docker and move them around as easily as the rest of your app.

With Flocker's command line tools and a simple configuration language, you can deploy your Docker-based applications onto one or more hosts. Once deployed, your applications will have access to the volumes you have configured for them. Those volumes will follow your containers when you use Flocker to move them between different hosts in your Flocker cluster."

ClusterHQ/flocker
Panamax: Docker Management for Humans
Panamax: Docker Management for Humans
"Panamax is a containerized app creator with an open-source app marketplace hosted in GitHub. Panamax provides a friendly interface for users of Docker, Fleet & CoreOS. With Panamax, you can easily create, share and deploy any containerized app no matter how complex it might be."
Panamax: Docker Management for Humans
Getting Started with LIRE and Elasticsearch
Getting Started with LIRE and Elasticsearch
"LIRE (Lucene Image REtrieval) is a plugin for Lucene to index and search images. A cool and quirky feature that sets it apart is that it does content based retrieval, a fancy word for saying that you use images in your search query and it retrieves similar images from the index. In order to use LIRE with Elasticsearch, we need to make Elasticsearch aware of the new data type and the query that is provided by LIRE. Luckily there is a plugin for Elasticsearch that does just that."
Getting Started with LIRE and Elasticsearch
Ino — Ino 0.3 documentation
Ino — Ino 0.3 documentation

"Ino is a command line toolkit for working with Arduino hardware

It allows you to:

Quickly create new projects Build a firmware from multiple source files and libraries Upload the firmware to a device Perform serial communication with a device (aka serial monitor)"

Ino — Ino 0.3 documentation
Doctrine filters in a Symfony2 application to improve security and code readability
Doctrine filters in a Symfony2 application to improve security and code readability

"You probably know that a user should only see his orders, his messages and so on, but should never see others’ data. But it probably happened you forgot at some point to add this little WHERE condition that restricts the user to what he should see, in a Symfony param converter for instance.

I’m going to introduce an elegant and automatic solution to never forget these conditions in all of your queries, whatever the table (i.e. the Doctrine entity), whatever the page in your Symfony application."

Doctrine filters in a Symfony2 application to improve security and code readability
InfoQ eMag: Microservices
InfoQ eMag: Microservices

"Microservices are more than just a passing fad. Not just an extension of Service Oriented Architecture and more than just smaller surface areas for service deployments, Microservices combine the best ideas of Agile software, DevOps, and Reactive Systems. Teams which adopt the Microservice philosophy find that they end up deploying their software more frequently and are able to satisfy the needs of their business more consistently. Despite this growing complexity of operational management, the march of business spurs innovation; yielding new tools, practices, and services to support the lifecycle of Microservices and the benefits they promise. Within this eMag, we have chosen articles which highlight the pros and cons of Microservices, we offer insights from industry leaders, and hopefully we spark a few ideas for our readers so that they may leverage Microservices within their own domain."

InfoQ eMag: Microservices
sobstel/metaphore
sobstel/metaphore

"PHP cache slam defense using (memcached) semaphore to prevent dogpile effect (aka clobbering updates, stampending herd or Slashdot effect).

Problem: too many requests hit your website at the same time to regenerate same content slamming your database. It might happen after the cache was expired.

Solution: first request generates new content while all the subsequent requests get (stale) content from cache until it's refreshed by the first request."

sobstel/metaphore
Understanding OpCache
Understanding OpCache
"Over the web you will easily find a lot of tutorials covering all the OpCache installation and configuration steps (it is enabled by default on 5.5, but can be installed as an extension on older versions). Read the article below to find the answers to some of the typical questions regarding different practical aspects of working with this particular cache engine."
Understanding OpCache
stripe/payment-tag
stripe/payment-tag

"The Payment Tag makes it even easier to integrate Stripe directly into your website.

It'll take care of building credit card inputs, validation, error handling, and sending the encrypted card number securely to Stripe."

stripe/payment-tag
Less is better, than tail | Libin's Blog
Less is better, than tail | Libin's Blog

"less +F works exactly like tail -f, with more:

Simply press ctrl+c to switch to editing model, so you can scroll backward and using any more/vi command, such as /pattern to search Press shift+f again to switch back to tail model"

Less is better, than tail | Libin's Blog
Welcome - Polymer
Welcome - Polymer
"Web Components usher in a new era of web development based on encapsulated and interoperable custom elements that extend HTML itself. Built atop these new standards, Polymer makes it easier and faster to create anything from a button to a complete application across desktop, mobile, and beyond."
Welcome - Polymer
peco/peco
peco/peco
"peco can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think and look through the current results."
peco/peco
Ten Docker Tips and Tricks That Will Make You Sing A Whale Song of Joy | Docker Blog
Ten Docker Tips and Tricks That Will Make You Sing A Whale Song of Joy | Docker Blog

"So I’m going to share ten of my favorite tips and tricks with you guys. Ready?

Run Docker on a VPS for extra speed Bind mount the docker socket on docker run Use containers as highly disposable dev environments bash is your friend Insta-nyan Edit /etc/hosts/ with the boot2docker IP address on OSX docker inspect -f voodoo Super easy terminals in-browser with wetty nsenter

docker"

Ten Docker Tips and Tricks That Will Make You Sing A Whale Song of Joy | Docker Blog
jpetazzo/nsenter
jpetazzo/nsenter

"It is a small tool allowing to enter into namespaces. Technically, it can enter existing namespaces, or spawn a process into a new set of namespaces. "What are those namespaces you're blabbering about?" We are talking about container namespaces.

nsenter can do many useful things, but the main reason why I'm so excited about it is because it lets you enter into a Docker container."

jpetazzo/nsenter
Web Fundamentals — Google Developers
Web Fundamentals — Google Developers

"Web Fundamentals is a comprehensive resource for multi-device web development. We're just getting started and want your help, if you see something amiss or have a suggestion file an issue or submit a pull request. You can use Google Web Starter Kit to start creating new sites in minutes that follow all of our best practice guidance."

Web Fundamentals — Google Developers