oscar-lopez + work   256

GitLab High Availability on AWS
In this article we’ll go through a basic HA setup where we’ll start by configuring our Virtual Private Cloud and subnets to later integrate services such as RDS for our database server and ElastiCache as a Redis cluster to finally manage them within an auto scaling group with custom scaling policies.

Since the time of writing, EFS supports provisioned IOPS, making it a viable alternative to NFS. See: https://aws.amazon.com/blogs/aws/new-provisioned-throughput-for-amazon-elastic-file-system-efs
git  aws  documentation  infrastructure  howto  availability  rds  redis  networking  work  amazon 
5 days ago by oscar-lopez
Why is the ibdata1 file continuously growing in MySQL?
After some research you realize that most of the disk space is used by the InnoDB’s shared tablespace ibdata1. You have innodb_file_per_table enabled, so the question is: What is stored in ibdata1? UNDO_LOGs for uncommitted transactions! and you cannot reclaim the space, this is very bad DB design!
amazon  work  databases  sql  mysql  storage  bugs  blogs  reference  transactions  relational 
23 days ago by oscar-lopez
Monitoring Amazon Aurora performance metrics
This post is part 1 of a 3-part series about monitoring Amazon Aurora database service on Amazon RDS. Part 2 is about collecting metrics from Aurora, and Part 3 details how to monitor Aurora with Datadog.

In essence, you should use CloudWatch to monitor query throughput, query latency and errors, disk queue depth and client connections and errors
amazon  work  performance  metrics  monitoring  rds  aurora  sql  databases 
7 weeks ago by oscar-lopez
How Percona XtraBackup Works
Percona XtraBackup is based on InnoDB‘s crash-recovery functionality. It copies your InnoDB data files, which results in data that is internally inconsistent; but then it performs crash recovery on the files to make them a consistent, usable database again
mysql  clustering  databases  tools  backup  work  amazon  reference  howto 
8 weeks ago by oscar-lopez
mysqldbcompare — Compare Two Databases and Identify Differences
This utility compares the objects and data from two databases to find differences. It identifies objects having different definitions in the two databases and presents them in a diff-style format of choice. Differences in the data are shown using a similar diff-style format
mysql  clustering  databases  tools  work  amazon  comparison 
9 weeks ago by oscar-lopez
Percona XtraBackup
Percona XtraBackup is an open-source hot backup utility for MySQL - based servers that doesn’t lock your database during the backup. It can back up data from InnoDB, XtraDB, and MyISAM tables on MySQL 5.1 [1], 5.5, 5.6 and 5.7 servers, as well as Percona Server with XtraDB
mysql  clustering  databases  tools  backup  work  amazon 
9 weeks ago by oscar-lopez
Backtracking an Aurora DB Cluster
With Amazon Aurora with MySQL compatibility, you can backtrack a DB cluster to a specific time, without restoring data from a backup. Backtracking "rewinds" the DB cluster to the time you specify.

Gotchas: it has to be enabled at DB creation, a rewind affects the entire cluster, is not supported with binary log (binlog) replication, is not compatible with MySQL 5.7 and causes a brief DB instance disruption
backup  recovery  databases  mysql  aws  rds  work  amazon 
9 weeks ago by oscar-lopez
Recover from a disaster with delayed replication in Amazon RDS for MySQL
Amazon RDS for MySQL now supports a delayed replication, which allows you to set a time period that a replica database lags behind a source database. A delay is very helpful when you need to recover from a human error. For example, if someone accidentally drops a table from your primary database, that accident doesn’t have to be saved in a replica
backup  recovery  databases  mysql  aws  rds  work  amazon 
9 weeks ago by oscar-lopez
Leveraging ProxySQL with AWS Aurora to Improve Performance
At the moment, the way AWS offers data connectivity with the Cluster endpoints and Reader endpoints can negatively affect performance. Also the lack of configuration and the limitation of using different endpoints lead to confusion and less optimized utilization.

But fear not, you can use ProxySQL with AWS Aurora to further leverage database performance and improve resource usage for the DB nodes.
aws  databases  sql  rds  aurora  amazon  infrastructure  work  performance  optimization  proxy  clustering 
august 2018 by oscar-lopez
Amazon Aurora – Looking Deeper
There are several differences in the way Aurora works under the hood, including: bug fixes, work with transactional isolation, query cache, default config, diagnostics, and the fact that it's stuck with an old version of MySQL for licensing reasons
aws  databases  sql  rds  aurora  amazon  infrastructure  work  architecture  clustering 
august 2018 by oscar-lopez
When Should I Use Amazon Aurora and When Should I use RDS MySQL?
- If you are looking for a native HA solution then you should use Aurora
- For a read-intensive workload within an HA environment, Aurora is better
- Aurora performance is great but is not as much as expected for write-intensive workloads when secondary indexes exist
- If you need to use MySQL plugins you should use RDS MySQL
- If you only need a cheaper managed solution and out of the box availability is not your main concern, RDS MySQL is better
aws  mysql  databases  sql  comparison  rds  aurora  amazon  infrastructure  work  clustering 
august 2018 by oscar-lopez
Amazon Aurora Migration Handbook
This paper examines the following major contributors to the success of every database migration project:

- Factors that justify the migration to Amazon Aurora, such as compatibility, performance, cost, and high availability and durability
- Best practices for choosing the optimal migration method
- Best practices for planning and executing a migration
- Migration troubleshooting hints
amazon  databases  rds  aurora  aws  mysql  migration  sql  documentation  reference  howto  pdf  work  papers 
july 2018 by oscar-lopez
AWS Application Auto Scaling
Similar to EC2 Auto Scaling, Application Auto Scaling allows you to automatically scale compute and data resources such as Amazon DynamoDB, Amazon ECS, Amazon RDS Aurora replicas, Amazon Appstream 2.0, Amazon SageMaker, Amazon EC2 Spot Fleet, or Amazon EMR. Now, any service that you build with adjustable resource capacity can be automatically scaled using the new Custom Resource Scaling feature of Application Auto Scaling
aws  scalability  apps  amazon  work  reference  documentation  howto 
july 2018 by oscar-lopez
Recovering MySQL replication after error 1236
In other words, the replica is requesting data at a certain point in the log (its current position), but the master’s log file doesn’t reach that point (so there are missing entries). I've seen this error in the field, quite scary little thing.
mysql  clustering  databases  bugs  logs  transactions  work  amazon 
july 2018 by oscar-lopez
Awaitility is a small Java DSL for synchronizing asynchronous operations. User has a lot of control over how the waiting operation is performed, including delays, permitted exceptions, comparisons using hamcrest, polling strategy, etc.
testing  asynchronous  dsl  java  lib  work  tappsi 
august 2017 by oscar-lopez
Postgres-XL is a horizontally scalable open source SQL database cluster based on PostgreSQL, flexible enough to handle varying database workloads. The partition tables would be appropriate for our case; looks heavy on the processing side, though.
postgresql  databases  scalability  clustering  opensource  work  tappsi 
august 2017 by oscar-lopez
Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions, kinda like what CloudFormation does for AWS.

Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure.

Terraform provides a flexible abstraction of resources and providers. This model allows for representing everything from physical hardware, virtual machines, and containers, to email and DNS providers.
cloud  infrastructure  code  tools  opensource  config  hardware  virtualization  servers  work  tappsi 
august 2017 by oscar-lopez
Unify data science, engineering and business. A company that aims to help clients with cloud-based big data processing using Spark and Scala.
bigdata  scala  spark  data-science  work  tappsi  cloud  distributed 
august 2017 by oscar-lopez
Build better Rails apps when speed and reliability are requirements. RoRvsWild makes it easy to monitor and troubleshoot Ruby on Rails applications. Performance and error monitoring. Monitor requests and background jobs. Some functionality is similar to the one offered by Newrelic.
monitoring  performance  rubyonrails  debug  work  tappsi 
june 2017 by oscar-lopez
Postgresql Workload Analyzer
Stats Collector / Real-time Graphs / Performance Charts. PoWA is PostgreSQL Workload Analyzer that gathers performance stats and provides real-time charts and graphs to help monitor and tune your PostgreSQL servers. It is similar to Oracle AWR or SQL Server MDW.
performance  postgresql  visualization  databases  graphs  statistics  tuning  servers  work  tappsi 
june 2017 by oscar-lopez
A performance dashboard for Postgres - health checks, suggested indexes, and more!
performance  postgresql  visualization  databases  tuning  servers  work  tappsi 
june 2017 by oscar-lopez
Pglogical is a logical replication system implemented entirely as a PostgreSQL extension. Fully integrated, it requires no triggers or external programs. This alternative to physical replication is a highly efficient method of replicating data using a publish/subscribe model for selective replication
databases  scalability  clustering  availability  postgresql  tappsi  work 
june 2017 by oscar-lopez
How to Upgrade to Strong Parameters in Rails
This post details the steps we followed to upgrade a Rails app from using protected attributes to use strong parameters
tappsi  work  rubyonrails  tutorials  howto  upgrade  config 
may 2017 by oscar-lopez
Cloudant is an IBM software product, which is primarily delivered as a cloud-based service. Cloudant is an open source non-relational, distributed database service of the same name. Cloudant is based on the Apache-backed CouchDB project and the open source BigCouch project. This is what they use at Cabify.
nosql  clustering  databases  work  tappsi  cloud  distributed  apache  erlang  opensource  ibm  couchdb 
may 2017 by oscar-lopez
The Ruby garbage collector has been flagged as the crux of Ruby performance and memory use for a long time. The default configuration is not suitable and optimal for most applications, and, hand-tuning the GC parameters is a slippery slope to navigate for most developers. TuneMyGC attempts to fix this by recommending optimal configuration parameters based on actual application usage.
ruby  gc  memory  rubyonrails  optimization  performance  work  tappsi  tools  config 
april 2017 by oscar-lopez
Tile38 is an open source (MIT licensed), in-memory geolocation data store, spatial index, and realtime geofence. It supports a variety of object types including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON. It's written in Go, uses RESP (the same protocol as Redis) and is easy to run in HA master-slave mode.
go  work  tappsi  gis  searching  storage  clustering  memory  redis  availability 
april 2017 by oscar-lopez
Graphite vs. Grafana: Build the Best Monitoring Architecture for Your Application
Graphite is an architecture for building monitoring systems. Each of its components can be mixed and matched separately, in particular at Tappsi we use: Grafana, Carbon, StatsD and at some point tried (and discarded) Riemann.
visualization  monitoring  graphics  tappsi  work  tools  python  node.js  clojure 
march 2017 by oscar-lopez
Scaling Your Amazon RDS Instance Vertically and Horizontally
As a managed service, Amazon RDS takes care of the scaling of your relational database so your database can keep up with the increasing demands of your application or applications.

In this blog post, we are going to take a look into how we can vertically and horizontally scale your RDS instance. You can scale vertically to address the growing demands of an application that uses a roughly equal number of reads and writes. Or you can scale horizontally for read-heavy applications.
aws  amazon  databases  postgresql  relational  mysql  oracle  sqlserver  scalability  cloud  work  tappsi 
february 2017 by oscar-lopez
Squasher compresses old migrations in a Rails application.
ruby  rubyonrails  databases  tools  work  tappsi  commands 
january 2017 by oscar-lopez
Carpooling Apps Could Reduce Traffic 3x
A new algorithm shows that 3,000 four-passenger cars could serve 98 percent of NYC taxi demand. This suggests that ride-sharing options from Uber and Lyft could play a big role in reducing congestion, and even helping with pollution and energy usage
mit  research  graphs  papers  uber  work  tappsi 
january 2017 by oscar-lopez
Airflow is a platform to programmatically author, schedule and monitor workflows. Use airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command line utilities make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress, and troubleshoot issues when needed.
workflow  python  apache  opensource  tools  monitoring  graphs  visualization  work  tappsi 
december 2016 by oscar-lopez
JWT API Authentication using Guardian
Using Elixir's Guardian to implement JWT-based authentication for an API. Covers the three basic steps: Login, On Request, Logout.
authentication  elixir  api  jwt  work  tappsi  json  security  web  webapps 
october 2016 by oscar-lopez
GCM is now FCM (Firebase Cloud Messaging)
GCM is now called Firebase Cloud Messaging (FCM). Some of the improvements include: automatic permissions granting; simplified cross-platform SDK (works on Android/Swift, iOS, Chrome, C++, web push); topic messages with conditions, batch add/remove and no limit on the number of subscribers; import of APN tokens is now supported; integration with other Firebase products such as Notifications, and Analytics
google  io  messaging  android  ios  videos  presentations  work  tappsi 
october 2016 by oscar-lopez
Thin - A fast and very simple Ruby web server
Thin is a Ruby web server that glues together 3 of the best Ruby libraries in web history: the Mongrel parser, Event Machine and Rack. Which makes it the most secure, stable, fast and extensible Ruby web server bundled in an easy to use gem for your own pleasure.
ruby  rubyonrails  web  servers  performance  work  tappsi  optimization 
october 2016 by oscar-lopez
Using PostgreSQL and jsonb with Ruby on Rails
PostgreSQL 9.4 introduced jsonb, a new column type for storing documents in your relational database. jsonb and json columns look exactly the same on a higher level, but differs on the storage implementation. The advantage of using jsonb is that you can easily integrate relational and non-relation data, with performance that can be better than most non-relational databases like MongoDB. Some tips:

* jsonb for preparsed JSONs (using a new query syntax)
* Expression indexes for a JSON field (json or jsonb columns) or GIN indexes for jsonb columns
* if you don't know beforehand which keys you'll query, make sure you define an GIN/GiST index and use @> (and friends) operators that benefit from that index
ruby  rubyonrails  json  work  tappsi  articles  postgresql  types  data-structures  storage  performance  optimization 
august 2016 by oscar-lopez
Upgrading to Rails 4
The goal of this book is to provide a clear path for upgrading Rails 3 applications to Rails 4. The book is split into three major parts: 1) Deprecations 2) New Features 3) Common Upgrading Scenarios. Also includes an upgrade checklist
tappsi  work  rubyonrails  ruby  books  pdf  install  howto  reference  documentation 
july 2016 by oscar-lopez
Uber’s Ringpop and Riak
SWIM gossip protocol, fault-detection, tchannel, farmhash, dynamo (via Riak), BGP route flap damping (evicting of bad nodes) - all part of the architecture of Ringpop, Uber's Node.js library (used as a membership protocol, as a consistent hashing ring and as a forwarder) that brings application-layer sharding to many of their dispatching platform services. Ringpop can also be extended as an actor-like system, to support replication and reliable background operations. Interestingly, they might even port Ringpop to Go.
riak  uber  tappsi  work  architecture  distributed  concurrency  protocol  scalability  presentations  videos  reference  node.js  clustering 
june 2016 by oscar-lopez
Scaling Uber from 1 to 100s of Service
Yet another talk on how Uber scaled their architecture using micro services. First a bit of engineering history, detailing the different design and architectural choices made along the way. Then comes up the matter of technical debt, and the necessity for a micro service architecture. Ringpop, TScale, Thriftrw, Hyperbahn and Zipkin are among the tools used by Uber to scale their architecture
presentations  videos  microservices  scalability  uber  architecture  howto  work  tappsi 
may 2016 by oscar-lopez
A Guide for Upgrading Ruby on Rails
This guide provides steps to be followed when you upgrade your applications to a newer version of Ruby on Rails. These steps are also available in individual release guides
ruby  rubyonrails  install  howto  code  reference  documentation  work  tappsi  apps 
may 2016 by oscar-lopez
Stream Processing at Uber
More info on the streaming system at Uber. This time, as a podcast interview with one of their engineers, Danny Yuan.
uber  work  tappsi  realtime  clustering  kafka  architecture  mapreduce  streams  tools  servers  reference  presentations 
may 2016 by oscar-lopez
Rails for Zombies
Explore the Ruby on Rails web framework right in your browser! Rails for Zombies helps you get your feet wet without worrying about configuration — and you'll have some fun while you're at it. Each level begins with a quick video lesson, followed by interactive challenges where you program Rails in the browser.
rubyonrails  ruby  webapps  tutorials  fun  videos  software  education  work  tappsi  programming  web  zombies  geek 
may 2016 by oscar-lopez
Unwinding Uber’s Most Efficient Service
One guy dissects Uber's geofencing service, and their Go implementation sucks big time. Bottom line: prefer S2 or R-Tree.
uber  tappsi  work  gis  algorithms  data-structures  searching  go  performance  optimization  complexity 
april 2016 by oscar-lopez
Stream Processing in Uber
How stream processing is used in Uber's real-time system to solve a wide range of problems, including but not limited to real-time aggregation and prediction on geospatial time series, data migration, monitoring and alerting, and extracting patterns from data streams. Also shown the architecture of the stream processing pipeline. Some of the tools they use include: Spark, Kafka, Samza, Elasticsearch (Lucene), Hadoop (HDFS, YARN)
uber  work  tappsi  realtime  clustering  kafka  architecture  mapreduce  streams  tools  servers  videos  reference  presentations 
march 2016 by oscar-lopez
Running Kafka At Scale
We at LinkedIn use Kafka for moving every type of data around between systems, and it touches virtually every server, every day. The complexity of the infrastructure, as well as the reasoning behind choices that have been made in its implementation, has developed out of a need to move a large amount of data around quickly and reliably. Also interesting to see how they use Samza as a distributed stream processing framework.
messaging  scalability  kafka  apache  work  tappsi  scala  asynchronous  architecture  opensource  howto  reference  clustering  streams  realtime 
march 2016 by oscar-lopez
How and why should you use JSON API in your Rails API?
JSON API is a great standard solution to not waste hours on reinventing the wheel in terms of your API responses design. There is an easy way to use JSON API with using a great Active Model Serializers gem. In this article I’d like to show you how (and why!).
ruby  rubyonrails  api  json  webservices  design  work  tappsi  articles  reference  blogs 
march 2016 by oscar-lopez
Technology Radar
ThoughtWorks's "Radar" is the de facto standard for decision-making regarding modern software development technologies in four categories: techniques, tools, platforms, languages & frameworks
technology  research  business  comparison  work  programming  framework  tools  reference 
february 2016 by oscar-lopez
Gartner Technology Research
Gartner's "Magic Quadrant" is the de facto standard for enterprise decision-making regarding boring software development technologies
technology  research  business  comparison  work  programming  framework  tools  reference 
february 2016 by oscar-lopez
Boolean Solver
This is a Python project to speed up boolean expression coding. Sometimes we need to crack a problem by combining boolean operators such as: and, or, not. We as humans are prone to err, especially when expressions get big. But there is an algorithm (Quine-McCluskey) to get this expressions with zero errors. Just specify your specs in a test and set a dummy function on your code. When you run your tests a solver will take your specs and code them into a simple boolean expression!
work  tappsi  algorithms  python  logic 
november 2015 by oscar-lopez
Top 10 Algorithms for Coding Interview
The following are the common subjects in coding interviews. As understanding those concepts requires much more effort, this tutorial only serves as an introduction. The subjects that are covered include: 1) String/Array/Matrix, 2) Linked List, 3) Tree, 4) Heap, 5) Graph, 6) Sorting, 7) Dynamic Programming, 8) Bit Manipulation, 9) Combinations and Permutations, and 10) Math Problems
algorithms  data-structures  work  interview  howto  tutorials  patterns 
november 2015 by oscar-lopez
The 'Trick' to Coding Interview Questions
One of the biggest fears candidates have is that coding interview questions rely on “blind insights”—fancy tricks you couldn’t possibly know unless you’d seen the answer already. But these insights aren’t blind. They come from knowledge of a small set of patterns that come up again and again. If you can learn the patterns, you can unlock the insights. Today, I’m going to teach you the most common pattern: hashing
algorithms  data-structures  work  interview  howto  tutorials  patterns 
november 2015 by oscar-lopez
Action Cable - Friend or Foe?
Action Cable will be one of the main features of Rails 5, to be released sometime in 2016. But what can Action Cable do for Rails developers? Are WebSockets really as useful as everyone says? Bottom line: immature technology, looks hard to scale, needs Redis to work, and in general - Web Sockets might not be appropriate for our use cases.
rubyonrails  ruby  websockets  http  webapps  javascript  redis  web  scalability  work  tappsi 
november 2015 by oscar-lopez
Guts of Phoenix websocket channels
In this post we are going to look at how the Phoenix channels are designed. The three major components are the following processes: Transport, Channel, PubSub
erlang  websockets  distributed  http  work  tappsi  blogs  sockets 
november 2015 by oscar-lopez
Lessons learned writing highly available code
While occasionally some systems go down, it’s the times that I wake up in the morning and come in to work only to realize that overnight, a safeguard we put in place automatically triggered, or the system caught an error and successfully recovered, that I am thankful for some good design principles. Here are a few of those things I’ve noticed in particular: 1) Put limits on everything 2) Retry, but with exponential back-off 3) Use supervisors and watchdog processes 4) Add health checks, and use them to re-route requests or automate rollbacks 5) Redundancy is more than just nice-to-have, it's a requirement 6) Prefer battle-tested tools over the "new hotness"
availability  design  erlang  architecture  howto  articles  scalability  patterns  work  tappsi 
november 2015 by oscar-lopez
Seven Microservices Anti-patterns
The author shares some of the lessons learned as part of his journey so that you can keep an eye on these items when you hit the road with Microservices: 1) Cohesion Chaos 2) Not taking Automation Seriously 3) Layered Services Architecture 4) Relying on Consumer Sign-off 5) Manual Configurations Management 6) Versioning Avoidance 7) Building a gateway in every service
architecture  patterns  reference  microservices  soa  work  tappsi  design 
october 2015 by oscar-lopez
Uber Rush
Rebuilding Uber's Dispatching platform. Presentation showing an overview of the microservice architecture at Uber.
tappsi  work  microservices  architecture  design  uber  scalability  presentations  pdf 
october 2015 by oscar-lopez
How Uber Scales Their Real-time Market Platform
Fun facts: - The core of the backend is written in Node.js - They use an update location frequency of only 4 seconds, keeping track of the current state for all drivers and passenger's state machines - The available "supply" part of the system is not just currently available drivers, but also drivers that will be available soon enough, taking projected routing information into account - They embraced a fully stateful, non-functional-programming style for handling "supply" and "demand" state information using `Ringpop` - a consistent hash ring with a gossip protocol, trading consistency for availability - Uber ditched JSON as the protocol for doing RPC between services, instead adopting `TChannel`, a custom binary protocol in the spirit of Thrift and Finagle - Driver apps are used for backing-up state in case of major server failure - They decided to rewrite the dispatch system from scratch
work  tappsi  architecture  availability  scalability  design  node.js  databases  performance  latency  microservices  realtime  uber 
october 2015 by oscar-lopez
Choose Boring Technology
Let's say every company gets about three innovation tokens. You can spend these however you want, but the supply is fixed for a long while. You might get a few more after you achieve a certain level of stability and maturity, but the general tendency is to overestimate the contents of your wallet
architecture  tappsi  work  presentations  microservices  servers 
july 2015 by oscar-lopez
Three hundred programming interviews in thirty days
We launched Triplebyte one month ago, with the goal of improving the way programmers are hired. Too many companies run interviews the way they always have, with resumes, white boards and gut calls. In the last 30 days, we've done 300 interviews. We've started to put our ideas into practice, to see what works and what doesn't, and to iterate on our process.
programming  interview  work  howto  analysis  articles  statistics 
july 2015 by oscar-lopez
Microservice Trade-Offs
Pros (Strong Module Boundaries, Independent Deployment, Technology Diversity) and Cons (Distribution, Eventual Consistency, Operational Complexity) of a microservice architecture
microservices  architecture  comparison  articles  work  tappsi 
july 2015 by oscar-lopez
Redis Geo
A Redis extension customized for efficient, real-time geohashing operations.
gis  redis  databases  algorithms  reference  data-structures  tappsi  work 
june 2015 by oscar-lopez
Push Notifications 101: APNs, GCM, vs Pub/Sub Explained
What’s the difference between PubNub publishing and sending push notifications? How is subscribing for realtime messages different from registering for push notifications? How do you format the message payload to target realtime and push notification delivery with one publish? How do you perform high-level debugging when implementing push notifications?
pushes  google  messaging  videos  faq  reference  android  apple  microsoft  work  tappsi  networking  apps  mobile 
june 2015 by oscar-lopez
Google Cloud Messaging
Google Cloud Messaging allows your services to efficiently send data to applications on Android devices. See what's new, and learn how to use GCM to make your apps more efficient
google  networking  apps  mobile  work  tappsi  videos  messaging  android  pushes 
june 2015 by oscar-lopez
Swagger - A Powerful Interface to Your API
Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability
rest  api  framework  json  opensource  web  tappsi  work  documentation 
may 2015 by oscar-lopez
Look ma, no OS!
An introduction to unikernels and how to deploy an Erlang application to EC2 as a LING unikernel, as a demo they deploy an Erlang/OTP application as a LING unikernel in EC2
os  kernel  erlang  cloud  virtualization  presentations  work  tappsi 
may 2015 by oscar-lopez
Scaling PostgreSQL with Pgpool and PgBouncer
Deploying PostgreSQL in a high-demand environment requires reliability and scalability. PostgreSQL’s ecosystem offers the tools you need to build out a robust database system. This guide offers a high-level description of tools used to build a high-availability, scalable, fault-tolerant service.
postgresql  databases  availability  clustering  scalability  admin  servers  sql  articles  tools  howto  work  tappsi 
may 2015 by oscar-lopez
Espresso Start Guide
Unit testing Android GUIs with Espresso
android  framework  testing  gui  work  tappsi  google  tutorials  howto 
march 2015 by oscar-lopez
Unit testing support
How to use mocked tests in Android, to avoid launching the emulator just to run unit tests.
android  testing  config  work  tappsi  gradle  mocking 
march 2015 by oscar-lopez
Pgcli is a Python-based command line interface for Postgres with auto-completion and syntax highlighting
python  postgresql  sql  tools  databases  commands  shell  syntax  code  work  tappsi 
january 2015 by oscar-lopez
Queues Don't Fix Overload
Queues are not the silver bullet, either. Key concepts: hard limits exists, apply back pressure liberally! Choice quote: "When people blindly apply a queue as a buffer, all they're doing is creating a bigger buffer to accumulate data that is in-flight, only to lose it sooner or later. You're making failures more rare, but you're making their magnitude worse."
architecture  messaging  scalability  erlang  work  tappsi 
november 2014 by oscar-lopez
Scaling to Millions of Simultaneous Connections
Performance tuning tips for scaling the Erlang VM to handle millions of simultaneous connections. Winning tip: set net.inet.tcp.tcbhashsize=524288
erlang  whatsapp  bsd  scalability  performance  tuning  os  work  tappsi 
november 2014 by oscar-lopez
The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data
architecture  soa  programming  microservices  work  tappsi  design  reference 
october 2014 by oscar-lopez
Message Transmission Optimization Mechanism
MTOM is the W3C Message Transmission Optimization Mechanism, a method of efficiently sending binary data to and from Web services. MTOM is usually used with the XOP (XML-binary Optimized Packaging). MTOM only optimizes element content that is in the canonical lexical representation of the xs:base64Binary data type. Since there is no standard way to indicate whether data is in the canonical lexical representation, the mechanism for applying MTOM is implementation-dependent. The use of MTOM is a hop-by-hop contract between one SOAP node and the next. There is no guarantee that the optimization will be preserved if there are multiple SOAP nodes involved.
work  webservices  optimization  xml  heinsohn  soap 
october 2013 by oscar-lopez
Gradle - Build Automation Evolved
Gradle is build automation evolved. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else. Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. Powered by a Groovy DSL and packed with innovation, Gradle provides a declarative way to describe all kinds of builds through sensible defaults
work  maven  tools  config  java  heinsohn  testing  deploy  build  management 
october 2013 by oscar-lopez
Function Point Analysis Tool Analyse UseCase XMI UML
Visual tool for calculating a system's function points. Based in Eclipse, seems useful in practice. Function Point Modeler Enterprise™ is the only product on the market today that not only sizes software with Function Point Analysis or estimates software with COCOMO, but also manages all of the IT-Metrics (Project, Product and Process Metrics) of your company in a Software Life Cycle Experience Database (SLED). It is the best Application Lifecycle Management (ALM) tool based on Function Point Analysis
work  visualization  tools  software  metrics  modeling  heinsohn  analysis  management 
september 2013 by oscar-lopez
Envers: Easy Entity Auditing
The Envers project aims to enable easy auditing/versioning of persistent classes. All that you have to do is annotate your persistent class or some of its properties, that you want to audit, with @Audited. For each audited entity, a table will be created, which will hold the history of changes made to the entity. You can then retrieve and query historical data without much effort
work  history  logs  databases  persistence  jpa  audit  heinsohn  annotations  jboss 
july 2013 by oscar-lopez
CyberNeko HTML Parser
A very fast xml parser, works for JSF web applications. It's advised to start using it from the very beginning in a project, to avoid incompatibility issues later on (with CSS, etc.)
webapps  work  lib  jee5  parsers  java  heinsohn  web  html  xml  jsf 
may 2013 by oscar-lopez
SAML – Behind the Wheel
A barely decent explanation of PicketLink's SAML protocol implementation. It's hard to find any good documentation for this.
work  protocol  articles  authentication  saml  sso  heinsohn  xml  architecture  security  picketlink  jboss 
april 2013 by oscar-lopez
Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used Java-based cache.

More useful than the cache itself (for us) is the "ehcache console", useful for monitoring the results of enabling second-level cache in Hibernate.
jee5  scalability  databases  opensource  tools  hibernate  heinsohn  work  optimization  orm  jpa  performance  cache  java 
october 2012 by oscar-lopez
Apache Tuscany
Apache Tuscany simplifies the task of developing SOA solutions by providing a comprehensive infrastructure for SOA development and management that is based on Service Component Architecture (SCA) standard. With SCA as it's foundation, Tuscany offers solution developers the following advantages:

- Provides a model for creating composite applications by defining the services in the fabric and their relationships with one another. The services can be implemented in any technology.
- Enables service developers to create reusable services that only contain business logic. Protocols are pushed out of business logic and are handled through pluggable bindings.
- Applications can easily adapt to infrastructure changes without recoding since protocols are handled via pluggable bindings and quality of services (transaction, security) are handled declaratively.
- Existing applications can work with new SCA compositions. This allows for incremental growth towards a more flexible architecture.
api  framework  implementation  work  heinsohn  components  opensource  sca  apache  architecture  soa  java 
september 2012 by oscar-lopez
« earlier      
per page:    204080120160

related tags

admin  agile  ai  algorithms  amazon  analysis  android  annotations  apache  api  apple  applet  apps  architecture  articles  assessment  asynchronous  attacks  audit  aurora  authentication  availability  avaya  aws  backup  banrep  bigdata  blogs  bogota  books  bpel  bpm  browsers  bsd  bugs  build  business  bytecode  c  c#  cache  cern  cheatsheet  cisco  clojure  cloud  clustering  code  colombia  commands  comparison  complexity  components  computation  concepts  concurrency  config  couchdb  cpu  cracking  crm  cryptography  cs  data-science  data-structures  databases  datacenter  debug  deploy  design  distributed  django  documentation  drivers  drools  dropbox  dsl  dynamic  eclipse  education  ejb  elixir  erlang  esb  examples  facebook  faq  flash  forums  framework  free  freelance  fun  fusion  gc  geek  generators  gis  git  go  google  gradle  graphics  graphs  grid  groovy  gui  hacking  hardware  heinsohn  hibernate  hints  history  howto  html  http  iaas  ibm  ide  implementation  inference  infrastructure  ingenian  install  integration  interview  io  ios  j2ee  j2se6  jasper  java  javascript  jboss  jdbc  jee5  jmeter  jpa  jsf  json  jvm  jwt  jython  kafka  kernel  languages  latency  laws  ldap  lib  linux  lion  load  logic  logs  lucene  mac  management  mapreduce  matrix  maven  media:document  memory  messaging  metal  metaprogramming  methodologies  metrics  microservices  microsoft  migration  mit  mobile  mocking  modeling  monitoring  music  mysql  netbeans  networking  news  node.js  nosql  ocr  office  oid  oim  oo  openoffice  opensource  optimization  oracle  orm  os  owasp  paas  papers  parallel  parsers  passwords  patterns  pdf  people  performance  persistence  phishing  photos  php  physics  picketlink  pl  plugin  pool  portals  postgresql  presentations  privacy  profiling  programming  protocol  proxy  pushes  puzzle  python  rds  realtime  recovery  redis  reference  relational  reports  research  rest  riak  rmi  ruby  rubyonrails  saas  saml  sca  scala  scalability  scea  science  scripting  seam  searching  security  servers  shell  siebel  soa  soap  social  sockets  software  spark  sql  sql-injection  sqlserver  sso  static-analysis  statistics  storage  streams  syntax  tappsi  tcp  technology  testing  text-processing  threads  tips  tomcat  tools  transactions  tuning  tutorials  types  uber  ucm  uml  unix  upgrade  validation  version-control  videos  virtualization  visualization  vm  web  web2.0  webapps  weblogic  webservices  websockets  whatsapp  wiki  windows  windows7  work  workflow  xml  xss  zombies 

Copy this bookmark: