recentpopularlog in
« earlier  
Triton is the world’s most murderous malware, and it’s spreading - MIT Technology Review
The rogue code can disable safety systems designed to prevent catastrophic industrial accidents. It was discovered in the Middle East, but the hackers behind it are now targeting companies in North America and other parts of the world, too.
malware  security  industry  industrialautomation  safety  iot  iiot  internetofthings 
3 days ago
When "Zoë" !== "Zoë". Or why you need to normalize Unicode strings | With Blue Ink
It first hit me many years ago, when I was building an app (in Objective-C) that imported a list of people from an user’s address book and social media graph, and filtered out duplicates. In certain situations, I would see the same person added twice because the names wouldn’t compare as equal strings. In fact, while the two strings above look identical on screen, the way they’re represented on disk, the bytes saved in the file, are different. In the first “Zoë”, the ë character (e with umlaut) was represented a single Unicode code point, while in the second case it was in the decomposed form. If you’re dealing with Unicode strings in your application, you need to take into account that characters could be represented in multiple ways.
unicode  normalization  text 
6 days ago
Radio Silence | Network monitor and firewall for Mac
The easiest network monitor and firewall for Mac. Radio Silence can stop any app from making network connections.
mac  security  firewall  networking  macos 
6 days ago
What Google knows about you - Axios
Google is the undisputed leader in the tech giants' race to accumulate user data, thanks to its huge array of services, devices and leading share of the digital ad business (37% to Facebook's 22%). It likely knows everything you've ever typed into your browser’s search bar and every YouTube video you’ve ever watched. But that's just the beginning. It may also know where you've been, what you've bought and who you communicate with.
google  privacy  security 
8 days ago
Meet Twirp! · Twirp
Twirp is a simple RPC framework built on protobuf. You define a service in a .proto specification file, then Twirp will generate servers and clients for that service. It's your job to fill in the "business logic" that powers the server, and then generated clients can consume your service straight away.
rpc  golang  go  protobuf  grpc  twitch  http 
9 days ago
gRPC On HTTP/2: Engineering A Robust, High Performance Protocol - Cloud Native Computing Foundation
HTTP/2 dramatically increases network efficiency and enables real-time communication by providing a framework for long-lived connections. In this article, we’ll look at how gRPC builds on HTTP/2’s long-lived connections to create a performant, robust platform for inter-service communication. gRPC is a high-performance, open-source universal RPC framework. We will explore the relationship between gRPC and HTTP/2, how gRPC manages HTTP/2 connections, and how gRPC uses HTTP/2 to keep connections alive, healthy, and utilized.
http  networking  http2  grpc  protocol 
9 days ago
Home · Netflix-Skunkworks/hystrix-dashboard Wiki
The Hystrix Dashboard allows you to monitor Hystrix metrics in real time. When Netflix began to use this dashboard, their operations improved by reducing the time needed to discover and recover from operational events. The duration of most production incidents (already less frequent due to Hystrix) became far shorter, with diminished impact, due to the real-time insights into system behavior provided by the Hystrix Dashboard.
netflix  devops  metrics  observability  performance  hystrix  visualization  dashboards 
9 days ago
grpc / grpc.io
A high-performance, open-source universal RPC framework. Simple service definition. Define your service using Protocol Buffers, a powerful binary serialization toolset and language. Microservices. Works across languages and platforms. Automatically generate idiomatic client and server stubs for your service in a variety of languages and platforms. Start quickly and scaleInstall runtime and dev environments with a single line and also scale to millions of RPCs per second with the framework. Bi-directional streaming and fully integrated pluggable authentication with http/2 based transport.
grpc  rpc  protobuf  microservices  golang  go  cncf  google 
9 days ago
Envoy Proxy - Home
Envoy is a high performance C++ distributed proxy designed for single services and applications, as well as a communication bus and “universal data plane” designed for large microservice “service mesh” architectures. Built on the learnings of solutions such as NGINX, HAProxy, hardware load balancers, and cloud load balancers, Envoy runs alongside every application and abstracts the network by providing common features in a platform-agnostic manner. When all service traffic in an infrastructure flows via an Envoy mesh, it becomes easy to visualize problem areas via consistent observability, tune overall performance, and add substrate features in a single place.
server  proxy  devops  microservices  grpc  protobuf  http2  cncf 
9 days ago
80/20 - The Industrial Erector Set
T-slot framing system that puts the resources in your hands to turn dreams into reality. It's easy to assemble and can be configured into endless custom solutions.
maker  diy  aluminum  extrusion  beams  tslot  makerbeam  openbeam 
9 days ago
Cloud computing simplified: a Berkeley view on serverless computing | the morning paper
The basic structure is as follows. First we get the obligatory attempt at defining serverless, together a discussion of why it matters. Then the authors look at some of the current limitations (cf. ‘Serverless computing: one step forward, two steps back’) before going on to suggest areas for improvement in the coming years. The paper closes with a nice section on common fallacies (and pitfalls) of serverless, together with a set of predictions. I’m going to start there!
serverless  berkley  morningpaper 
9 days ago
Future of the firm - O'Reilly Media
Mapping the complex forces that are reshaping organizations and changing the employee/employer relationship.
oreilly  business  work 
9 days ago
Features - Manifold
Manifold simplifies the modern development workflow enabling you to find, manage and share developer services across teams and projects.
cloud  composition  servicecatalog  amazon  aws  azure  google  gcp 
15 days ago
ddbmock · PyPI
ddbmock brings a nice, tiny, in-memory or sqlite implementation of DynamoDB along with much better and detailed error messages. Among its niceties, it features a double entry point: (1) regular network based entry-point with 1:1 correspondence with stock DynamoDB; (2) embedded entry-point with seamless boto integration 1, ideal to avoid spinning yet another server. ddbmock is not intended for production use. It will lose your data. you’ve been warned! I currently recommend the “boto extension” mode for unit-tests and the “server” mode for functional tests.
dynamodb  amazon  aws  testing  mocks  python  libraries 
22 days ago
Karma - Git Commit Msg
Semantic commit messages. The first line cannot be longer than 70 characters, the second line is always blank and other lines should be wrapped at 80 characters. The type and scope should always be lowercase as shown below. Allowed <type> values: feat (new feature for the user, not a new feature for build script), fix (bug fix for the user, not a fix to a build script), docs (changes to the documentation), style (formatting, missing semi colons, etc; no production code change), refactor (refactoring production code, eg. renaming a variable), test (adding missing tests, refactoring tests; no production code change), chore (updating grunt tasks etc; no production code change)
git  standards  documentation 
22 days ago
Vapor vs. Kitura: Choosing a Server-Side Swift Framework | raywenderlich.com
One of the most common questions we get about server-side Swift is "Which framework is better, Vapor or Kitura?" Here's a balanced view on the matter that will help you choose which is right for you.
swift  web  webapps  microservices  articles 
24 days ago
Steve Jobs On The Difference Between A Vice President And A Janitor - Business Insider
As a janitor, he's allowed to have excuses. "When you're the janitor, reasons matter," Jobs tells newly minted VPs, according to Lashinsky. "Somewhere between the janitor and the CEO, reasons stop mattering," says Jobs, adding, that Rubicon is "crossed when you become a VP."
business  stevejobs  responsibility 
29 days ago
afex/hystrix-go: Netflix's Hystrix latency and fault tolerance library, for Go
Hystrix is a great project from Netflix. "Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable." I think the Hystrix patterns of programmer-defined fallbacks and adaptive health monitoring are good for any distributed system. Go routines and channels are great concurrency primitives, but don't directly help our application stay available during failures. hystrix-go aims to allow Go programmers to easily build applications with similar execution semantics of the Java-based Hystrix library.
distributed  go  golang  circuitbreaker 
29 days ago
gojektech/heimdall: An enhanced HTTP client for Go
Heimdall is an HTTP client that helps your application make a large number of requests, at scale. With Heimdall, you can: (1) Use a hystrix-like circuit breaker to control failing requests; (2) Add synchronous in-memory retries to each request, with the option of setting your own retrier strategy; (3) Create clients with different timeouts for every request; (4) All HTTP methods are exposed as a fluent interface.
http  go  golang  circuitbreaker 
29 days ago
markphelps/flipt: A self contained feature flag solution
Flipt is an open source, self contained application that enables you to use feature flags and experiment (A/B test) across services, running in your environment. This means that you can deploy Flipt within your existing infrastructure and not have to worry about your information being sent to a third party, or the latency required to communicate across the internet. Flipt includes native client SDKs as well as a REST API so you can choose how to best integrate Flipt with your applications.
golang  abtesting  featureflags  opensource  onpremises 
29 days ago
Some gotchas about Unicode that EVERY programmer should know
Do normalize text that is cross-checked or visually compared, such as names. Do not normalize bodies of text, such as blog posts or status messages. Use UTF-8 when you have the choice. Use collations if non-English sorting is required. Fuzz test!
unicode  normalization  security  programming  fuzzing 
4 weeks ago
api-guidelines/Guidelines.md at vNext · Microsoft/api-guidelines
The Microsoft REST API Guidelines, as a design principle, encourages application developers to have resources accessible to them via a RESTful HTTP interface. To provide the smoothest possible experience for developers on platforms following the Microsoft REST API Guidelines, REST APIs SHOULD follow consistent design guidelines to make using them easy and intuitive. This document establishes the guidelines Microsoft REST APIs SHOULD follow so RESTful interfaces are developed consistently.
api  design  microsoft  rest  restful  guides 
4 weeks ago
pquerna/ffjson: faster JSON serialization for Go
ffjson generates static MarshalJSON and UnmarshalJSON functions for structures in Go. The generated functions reduce the reliance upon runtime reflection to do serialization and are generally 2 to 3 times faster. In cases where ffjson doesn't understand a Type involved, it falls back to encoding/json, meaning it is a safe drop in replacement. By using ffjson your JSON serialization just gets faster with no additional code changes.
github  golang  go  json  library  performance 
4 weeks ago
rs/zerolog: Zero Allocation JSON Logger
The zerolog package provides a fast and simple logger dedicated to JSON output. Zerolog's API is designed to provide both a great developer experience and stunning performance. Its unique chaining API allows zerolog to write JSON (or CBOR) log events by avoiding allocations and reflection. Uber's zap library pioneered this approach. Zerolog is taking this concept to the next level with a simpler to use API and even better performance. To keep the code base and the API simple, zerolog focuses on efficient structured logging only. Pretty logging on the console is made possible using the provided (but inefficient) zerolog.ConsoleWriter.
go  golang  json  logging  cbor 
4 weeks ago
Build your own OAuth2 Server in Go – Hacker Noon
Hello, in today’s article, I will show you how you can build your own OAuth2 server just like google, facebook, github etc. This will be very helpful if you want to build a production ready public or private API. So let’s get started.
golang  go  oauth2  tutorials  howto  authentication  article 
4 weeks ago
Watermill
Watermill is a Golang library for working efficiently with message streams. It is intended for building event-driven applications, enabling event sourcing, RPC over messages, sagas and basically whatever else comes to your mind. You can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog if that fits your use case. It comes with a set of Pub/Sub implementations, which can be easily extended by your own implementations. Watermill is also shipped with a set of standard tools (middlewares) like instrumentation, poison queue, throttling, correlation and other tools used by every message-driven application. Our goal was to create a tool which is easy to understand, even by junior developers. It doesn't matter if you want to do Event-driven architecture, CQRS, Event Sourcing or just stream MySQL Binlog to Kafka. Watermill was designed to process hundreds of thousands of messages per second. Every component is built in a way that allows you to configure it for your needs. You can also implement your own middlewares for the router. Watermill is using proven technologies and has a strong unit and integration tests coverage for the critical areas.
golang  go  messaging  pubsub  agnostic 
4 weeks ago
Understanding Real-World Concurrency Bugs in Go (PDF)
In this paper, we conduct the first empirical study on Go concurrency bugs using six open-source, production- grade Go applications: Docker [13] and Kubernetes [36], two datacenter container systems, etcd [15], a distributed key-value store system, gRPC [19], an RPC library, and Cock- roachDB [10] and BoltDB [6], two database systems. In total, we have studied 171 concurrency bugs in these ap- plications. We analyzed the root causes of them, performed experiments to reproduce them, and examined their fixing patches. Finally, we tested them with two existing Go concurrency bug detectors (the only publicly available ones). To understand Go concurrency bugs and the comparison between message passing and shared memory, we propose to categorize concurrency bugs along two orthogonal dimen- sions: the cause of bugs and their behavior. Along the cause dimension, we categorize bugs into those that are caused by misuse of shared memory and those caused by misuse of message passing. Along the second dimension, we separate bugs into those that involve (any number of) goroutines that cannot proceed (we call them blocking bugs) and those that do not involve any blocking (non-blocking bugs). Surprisingly, our study shows that it is as easy to make con- currency bugs with message passing as with shared memory, sometimes even more. For example, around 58% of blocking bugs are caused by message passing. In addition to the viola- tion of Go’s channel usage rules (e.g., waiting on a channel that no one sends data to or close), many concurrency bugs are caused by the mixed usage of message passing and other new semantics and new libraries in Go, which can easily be overlooked but hard to detect.
golang  go  concurrency  bugs  research  paper 
4 weeks ago
Emitter: Scalable Real-Time Communication Across Devices
Emitter is a real-time communication service for connecting online devices. The Publish-Subscribe messaging API is built for speed and security.
communication  realtime  service  golang  go  messaging  mqtt  iot  internetofthings  mobile 
4 weeks ago
How to write a reverse-proxy with Go in 25 minutes - YouTube
In a world littered with containers, microservices, and virtual networks, the need for a reverse-proxy increases. I'll introduce you to the world of reverse-proxies by writing one -- live, and from scratch. Step by step, we'll discover the responsibilities of a reverse-proxy and how to fulfill them.
golang  go  http  reverseproxy  videos  presentations 
4 weeks ago
Sabertooth 2X5 R/C regenerative dual motor driver
Sabertooth 2X5 R/C is a dual motor driver specifically optimized for use in radio controlled vehicles. It is suitable for small robots, cars and boats, and especially well suited for the Antweight and Beetleweight classes of fighting robots. Out of the box, it can supply two DC brushed motors with up to 5A each. Peak currents of 10A are achievable for a few seconds. Overcurrent and thermal protection means you'll never have to worry about killing the driver with accidental stalls or by hooking up too big a motor.
robotics  rc  radiocontrolled  power  motors  maker 
5 weeks ago
3.3V switching voltage regulator - 7803 replacements
The DE-SW0XX family of switch mode voltage regulators are designed to be the easiest possible way to add the benefits of switch-mode power to a new or existing project. A DE-SW033 will allow you to take a higher voltage and step it down to a 3.3V output in a compact, efficient manner. The DE-SW0XX family is pin-compatible with the common 78XX family of linear voltage regulators. They have integrated decoupling capacitors, so external capacitors are not generally necessary.
rc  radiocontrolled  voltageregulator  robotics  power  maker 
5 weeks ago
README/dependencies.md at master · artsy/README
In general we want to have a conservative dependency policy, which can be summed up as: (1) Is it worth the time it saves? (In terms of API surface area, runtime cost, complexity.) (2) Does it neatly fit the current problem domain, and are we likely to use the other parts? (3) If it becomes un-maintained, can we take over?
dependencies  architecture  projects  projectmanagement  leadership  technology  bestpractices 
5 weeks ago
Questions for a new technology. | Kellan Elliott-McCrea
Good questions to ask yourself or your team before jumping on The New Thing. Like Dr. Wave’s metaphor of a nail in the head: some things are more painful to change than to live with (and constant change is even worse) so adopting the new thing must be done judiciously.
technology  adoption  evaluation 
6 weeks ago
Home :: TinyGo - Go on Microcontrollers and WASM
TinyGo is a project to bring the Go programming language to microcontrollers and modern web browsers by creating a new compiler based on LLVM. You can compile and run TinyGo programs on several different microcontroller boards such as the BBC:Microbit and the Arduino Uno.
golang  go  microcontrollers  maker  arduino  microbit 
6 weeks ago
What we’ve learned about hiring engineering managers - CircleCI
Over the last year, we have made some critical shifts in our understanding of what we believe makes a great engineering manager at CircleCI, and learned a lot about our needs and values as an organization along the way. We’ve changed our hiring process substantially, and through these efforts we’ve hired some fabulous people, doubling our engineering management team. Today, we want to share all these learnings with you.
hiring  management  software  engineering  business 
6 weeks ago
bloom42/rz-go: RIPZap - The fastest structured, leveled JSON logger for Go 📖
The rz package provides a fast and simple logger dedicated to JSON output. Rz's API is designed to provide both a great developer experience and stunning performance. Its unique functional API allows rz to write JSON (or CBOR) log events by avoiding allocations and reflection. Uber's zap and rs's zerolog libraries pioneered this approach. Rz is taking this concept to the next level with a simpler to use and safer API and even better performance. To keep the code base and the API simple, rz focuses on efficient structured logging only. Pretty logging on the console is made possible using the provided (but inefficient) rz.ConsoleFormatter.
go  golang  json  logging 
6 weeks ago
dvyukov/go-fuzz: Randomized testing for Go
Go-fuzz is a coverage-guided fuzzing solution for testing of Go packages. Fuzzing is mainly applicable to packages that parse complex inputs (both text and binary), and is especially useful for hardening of systems that parse inputs from potentially malicious users (e.g. anything accepted over a network).
github  go  golang  testing  fuzzing 
6 weeks ago
Don't Let the Internet Dupe you, Event Sourcing is Hard - Blogomatano
What's the take away here? Should I event source or not!? I think you can generally answer it with some alone time, deep introspection, and two questions: (1) For which core problem is event sourcing the solution? (2) Is what you actually want just a plain old queue? If you can't answer the first question concretely, or the justification involves vague hand-wavy ideas like "auditablity", "flexibility," or something about "read separation": Don't. Those are not problems exclusively solved by event sourcing. A good ol' fashion history table gets you 80% of the value of a ledger with essentially none of the cost. It won't have first class change semantics baked in, but those low-level details are mostly worthless anyway and can ultimately be derived at a later date if so required. Similarly CQRS doesn't require event sourcing. You can have all the power of different projections without putting the ledger at the heart of your system. The latter question is to weed out confused people like myself who thought the Ledgers would rule the world. Look at the interaction points of your systems. If you're going full event sourcing, what events are actually going to be produced? Do those downstream systems care about those intermediate states, or will it just be noise that needs to be filtered out? If the end goal is just decoupled processes which communicate via something, event sourcing is not required. Put a queue between those two bad boys and start enjoying the good life.
events  eventsourcing  architecture  ledgers  development  patterns  bestpractices 
6 weeks ago
Learn yaml in Y Minutes
YAML is a data serialisation language designed to be directly writable and readable by humans.
It’s a strict superset of JSON, with the addition of syntactically significant newlines and indentation, like Python. Unlike Python, however, YAML doesn’t allow literal tab characters for indentation.
data  yaml  json 
6 weeks ago
Using Golang to Build Microservices at The Economist: A Retrospective
Services written in Go was a key component of the new system that would enable The Economist to deliver scalable, high performing services and quickly iterate new products. Go's baked in concurrency and API support along with its design as a static, compiled language would enable a distributed eventing systems that could perform at scale. Testing support is also excellentOverall, The Economist team's experience with Go has been positive experience, and this has been one of the critical elements that has allowed the Content Platform to scale.
golang  go  economist  infoq  articles  contentmanagementsystem  cms  casestudies 
6 weeks ago
Clean Coder Blog: The Transformation Priority Premise
This blog poses a rather radical premise. It suggests that Refactorings have counterparts called Transformations. Refactorings are simple operations that change the structure of code without changing it’s behavior. Transformations are simple operations that change the behavior of code. Transformations can be used as the sole means for passing the currently failing test in the red/green/refactor cycle. Transformations have a priority, or a preferred ordering, which if maintained, by the ordering of the tests, will prevent impasses, or long outages in the red/green/refactor cycle.
programming  learning  refactoring 
7 weeks ago
My Losing Battle with Enterprise Sales – Writing by Luke Kanies
So now you begin to see why I fought against enterprise sales: It encourages you to build the wrong product for the wrong person and then sell it the wrong way at the wrong price. Why, then, is it so popular? Or rather, why is it so hard to avoid that despite my best efforts we ended up in an enterprise sales motion, which I then ran away from? Well, first and foremost, if it works it’s incredibly lucrative.
sales  business  enterprise 
7 weeks ago
Writing Apps in Go and Swift · Young Dynasty
To write a C library in Go, we need to use cgo, the bridge between C and Go. For now, it’s enough just to know that the C package can convert Go values to and from C types, and vice-versa. If you want to dive-in a little deeper, the Go authors have written an excellent post about cgo on the Go Blog. As mentioned previously, to build a C archive, we need to create a main package and mark each method we want to export with a preceding //export cgo comment.
c  go  golang  programming  swift  ios 
7 weeks ago
MaxItUp!
MaxItUp is a tool to create a setup script for newly formatted Mac devices. Just start selecting items from the left pane and watch how the script is updating!
homebrew  macos  mac  management  onboarding 
7 weeks ago
GoCity - Code City metaphor for visualizing Go source code in 3D
GoCity is an implementation of the Code City metaphor for visualizing Go source code.
golang  3d  programming  visualization  code  go  maintainability 
7 weeks ago
Using NLP to Automate Customer Support, Part Two
Let's build a natural language processing (NLP) model that can help out your customer support agents by suggesting previously-asked, similar questions.
ai  nlp  machinelearning  ml 
8 weeks ago
Considering App vs. Website? It’s 2019: Build a Website.
Based on my experience as a founder, the web is an easier starting point than native. I recommend that aspiring entrepreneurs test out their ideas with websites instead of native apps because websites are easier to build, distribute, and monetize. Here’s why: (1) Building the MVP a) Instant deployment, b) Independent launch review, c) Startup cost; (2) Getting users a) Ease of distribution and expansion, b) Acquisition cost, (3) Scaling a) Works on all devices, b) Adaptable, c) Internationalization; (4) Making Money a) Desktop users pay a higher price, b) Preserve your margins on payments.
business  mobile  ios  android  startups  web 
8 weeks ago
osquery | Easily ask questions about your Linux, Windows, and macOS infrastructure
osquery is an operating system instrumentation framework for Windows, OS X (macOS), Linux, and FreeBSD. The tools make low-level operating system analytics and monitoring both performant and intuitive. osquery exposes an operating system as a high-performance relational database. This allows you to write SQL queries to explore operating system data. With osquery, SQL tables represent abstract concepts such as running processes, loaded kernel modules, open network connections, browser plugins, hardware events or file hashes. The high-performance and low-footprint distributed host monitoring daemon, osqueryd, allows you to schedule queries to be executed across your entire infrastructure. The daemon takes care of aggregating the query results over time and generates logs which indicate state changes in your infrastructure. You can use this to maintain insight into the security, performance, configuration, and state of your entire infrastructure. osqueryd's logging can integrate into your internal log aggregation pipeline, regardless of your technology stack, via a robust plugin architecture. The interactive query console, osqueryi, gives you a SQL interface to try out new queries and explore your operating system. With the power of a complete SQL language and dozens of useful tables built-in, osqueryi is an invaluable tool when performing incident response, diagnosing a systems operations problem, troubleshooting a performance issue, etc.
facebook  devops  monitoring  security  sysadmin  management  bestpractices 
8 weeks ago
Why Don't People Use Formal Methods? • Hillel Wayne
A really good introduction to the field and current challenges. And entertainingly written: Proofs are hard. Obnoxiously hard. “Quit programming and join the circus” hard. Surprisingly, formal code proofs are often more rigorous than the proofs most mathematicians write! Mathematics is a very creative activity with a definite answer that’s only valid if you show your work. Creativity, formalism, and computers are a bad combination.
formalmethods  computerscience  compsci  engineering 
8 weeks ago
esimov/caire at v1.2.0
Caire is a content aware image resize library based on Seam Carving for Content-Aware Image Resizing paper.
go  golang  library  images  graphics 
9 weeks ago
sod/README.md at master · symisc/sod
SOD is an embedded, modern cross-platform computer vision and machine learning software library that expose a set of APIs for deep-learning, advanced media analysis & processing including real-time, multi-class object detection and model training on embedded systems with limited computational resource and IoT devices.
machinelearning  ml  computervision  iot  internetofthings  embedded  library 
9 weeks ago
montanaflynn/stats: A well tested and comprehensive Golang statistics library package with no dependencies.
A well tested and comprehensive Golang statistics library package with no dependencies.
golang  libraries  math  statistics  go 
9 weeks ago
micro/go-micro: A microservice framework
Go Micro is a pluggable framework for micro service development. Go Micro provides the core requirements for distributed systems development including RPC and Event driven communication. The micro philosophy is sane defaults with a pluggable architecture. We provide defaults to get you started quickly but everything can be easily swapped out.
distributed  framework  golang  microservices  rpc  go 
9 weeks ago
Practical Cryptography With Go | Leanpub
This is a book about cryptography: how to communicate securely. There are several objectives that cryptography aims to solve: confidentiality, integrity, and authenticity. It also helps solve some other problems that come up in secure communications, but it’s important to remember that it isn’t a complete solution to security problems. In this book, we’ll look at how to build secure systems; some of the problems that cryptography does not solve will also be pointed out. This book will attempt to guide you in your attempt to understand how to use cryptography to secure your services, and illustrate it using the Go programming language.
go  golang  cryptography  security  programming  books  ebooks 
9 weeks ago
recoilme/pudge: Fast and simple key/value store written using Go's standard library
Fast and simple key/value store written using Go's standard library. Package pudge is a fast and simple key/value store written using Go's standard library. It presents the following: Supporting very efficient lookup, insertions and deletions; Performance is comparable to hash tables; Ability to get the data in sorted order, which enables additional operations like range scan; Select with limit/offset/from key, with ordering or by prefix; Safe for use in goroutines; Space efficient; Very short and simple codebase; Well tested, used in production
go  golang  keyvaluestores 
9 weeks ago
twpayne/chezmoi: Manage your dotfiles securely across multiple machines.
Manage your dotfiles securely across multiple machines. Declarative: you declare the desired state of files, directories, and symbolic links in your home directory and chezmoi updates your home directory to match that state. Flexible: your dotfiles can be templates (using text/template syntax). Predefined variables allow you to change behaviour depending on operating system, architecture, and hostname. Secure: chezmoi can retreive secrets from Bitwarden, LastPass, Vault, your Keychain (on macOS), and GNOME Keyring (on Linux). Robust: chezmoi updates all files and symbolic links atomically (using google/renameio) so you are never left with incomplete files that could lock you out, even if the update process is interrupted. Portable: chezmoi's configuration uses only visible, regular files and directories and so is portable across version control systems and operating systems. Transparent: chezmoi includes verbose and dry run modes so you can review exactly what changes it will make to your home directory before making them. Fast, easy to use, and familiar: chezmoi runs in fractions of a second and includes commands to make most operations trivial. You can use the version control system of your choice to manage your configuration, and many different formats (e.g. JSON, YAML, TOML, etc.) are supported for the configuration file.
dotfiles  golang  go  tools  system  administration  configuration  linux  macos 
9 weeks ago
Lessons from Running a Small-Scale Electronics Factory in my Guest Bedroom, part 1: Design – spun.io
Nick Price put together 200+ boards for the 26th DEF CON conference, and hit a few hiccups along the way. For posterity (and to help others design their own PCBs), he compiled a list of some helpful tips he came up with after the fact. And while these are useful for anyone putting together a small handmade batch of boards, they have implications for industrial manufacturing as well. (1)Cut some holes in your boards (2)Add proper programming and debugging interfaces (3)Align all of your pin headers to be on the same 0.1″ grid (4)Think about component dimensions (5)Eliminate as many assembly steps as possible (6)Rename your components once your board layout is finalized (7)Add a test cycle to your firmware.
maker  pcb  design  manufacturing  firmware  lessonslearned 
9 weeks ago
cloudevents/sdk-go: Go SDK for CloudEvents (https://github.com/cloudevents/spec)
Go SDK for CloudEvents (https://github.com/cloudevents/spec) NOTE: This SDK is still considered work in progress, things might (and will) break with every update.
go  golang  sdk  library  cloudevents  events  cncf 
9 weeks ago
A promising new metric to track maintainability - JAXenter
A good metric to measure software maintainability is the holy grail of software metrics. What we would like to achieve with such a metric is that its values more or less conform with the developer’s own judgment of the maintainability of their software system. If that would succeed we could track that metric in our nightly builds and use it as the canary in the coal mine. If values deteriorate it is time for refactoring. We could also use it to compare the health of all the software systems within an organization. And it could help to make decisions about whether it is cheaper to rewrite a piece of software from scratch instead of trying to refactor it.
software  architecture  maintainability  metrics 
9 weeks ago
Transcribe Audio to Text | Transcription Website - Rev
Transcription $1 per minute. Transcribe all audio to text in a few short hours. Use your text to write articles, share information, understand lectures, or reach different audiences. Whatever file you have, we will transcribe it for you. English Captions and Subtitles $1 per minute. Give your audience a full experience by adding English captions. Rev adds captions to videos that include the dialogue of your video and important non-verbal elements that set the scene. Captions are more than converting audio to text. Foreign Subtitles From $3 per minute. Reach audiences all over the world by adding subtitles to your videos in multiple languages. We work with trained language experts to add accurate subtitles with correct context so your message will be clearly understood.
audio  services  tools  transcriptions  captions  video 
10 weeks ago
How to Introduce Yourself to a New Team as Leader — NOBL Collective
As a new leader, your official introduction must accomplish five goals: 1) Tell a story, 2) Set expectations, 3) Build relationships, 4) Establish a positive tone, and 5) Explain how you’ll execute the work together.
leadership  management  teams 
10 weeks ago
VIDEO Go Modules for Package Maintainers - YouTube
Wondering how to make sure your Go package is backwards compatible with Deps? How about Go 1.8? In this video, Mark Bates will walk through the most common mistakes that package maintainers make when implementing Go modules, as well as how to properly handle forward and backwards compatibility for Dep, Go Modules, older versions of Go, and more.
go  golang  library 
10 weeks ago
Stop writing broken Go libraries
Do not hardcode the HTTP client. Do not introduce global behaviour. Return structs not interfaces. Use configuration structs to avoid modifying your APIs.
antipatterns  go  golang  bestpractices 
10 weeks ago
Accept Interfaces Return Struct in Go - My Code Smells!
The rule is, that if it walks like a duck and quacks as a duck, it's a duck, which means that we judge the particular struct by the way it behaves, not by how it is defined. You must realize that when a caller wants to use some function that returns anything, it can be either interested in a concrete type (expects a specific struct), or interested in a behavior (expect an interface). In the first case, you just need to return a struct, end of story. But in second, you should go back and see that interface is implemented when its functions are a part of the struct, so why don't you just return a compatible struct? A good approach to that situation would be to define what is it exactly that we expect from our input parameters. To do that, we define interfaces where they are used and limit them to the bare minimum that is required for our code to work. Unlike Java, in Go it's the caller that defines the interfaces it uses.
go  golang  bestpractices 
10 weeks ago
GitHub - esimov/pigo: Golang implementation of Pico face detection library.
Pigo is a face detection library implemented in Go based on Pixel Intensity Comparison-based Object detection paper.
detection  go  golang  machinelearning  ml  images  library 
10 weeks ago
Detecting Anomalies in Time Series Data: Deciphering the Noise and Zoning in on the Signals - insideBIGDATA
While each of the above techniques obviously has advantages as well as disadvantages, it’s only unsupervised anomaly detection that is feasible in the case of raw, unlabelled time series data – which is what you get from just about any online asset in a modern-day digitised company. Anomaly detection in time series data has a variety of applications across industries – from identifying abnormalities in ECG data to finding glitches in aircraft sensor data.
deeplearning  machinelearning  ml  anomalydetection  anomaly  unsupervised 
10 weeks ago
Event Sourcing with AWS Lambda – Slalom Engineering – Medium
This article will explore one possible way to implement the event sourcing pattern in AWS using AWS services. Event sourcing is a pattern that involves saving every state change to your application allowing you to rebuild the application state from scratch via event playback.
aws  amazon  lambda  events  eventsourcing 
10 weeks ago
Modules · golang/go Wiki · GitHub
A brief tour of other common functionality you might use: (go list -m all) View final versions that will be used in a build for all direct and indirect dependencies. (go list -u -m all) View available minor and patch upgrades for all direct and indirect dependencies. (go get -u) or (go get -u=patch) Update all direct and indirect dependencies to latest minor or patch upgrades. (go build ./...) or (go test ./...) Build or test all packages in the module when run from the module root directory. (go mod tidy) Prune any no-longer-needed dependencies from go.mod and add any dependencies needed for other combinations of OS, architecture, and build tags. (replace directive or gohack) Use a fork, local copy or exact version of a dependency. (go mod vendor) Optional step to create a vendor directory.
golang  go  modules  dependencies 
10 weeks ago
Voyager - Downloads
In celebration of Voyagers' Interstellar voyage, we've added these Posters and Infographics for you to download, print, and share.
nasa  posters  pdf 
10 weeks ago
The future of Kubernetes is Virtual Machines
There’s one sticky problem that’s left to solve, and this I believe will prove to be the downfall of the container … multi-tenancy. Linux containers were not built to be secure isolated sandboxes (like Solaris Zones or FreeBSD Jails). Instead they’re built upon a shared kernel model that utilizes kernel features to provide basic process isolation. As Jessie Frazelle would say “Containers aren’t a real thing”. Compounding this is the fact that most Kubernetes components are not Tenant aware. Sure you have Namespaces and Pod Security Policies but the API itself is not. Nor are the internal components like the kubelet or kube-proxy. This leads to Kubernetes having a “Soft Tenancy” model.
kubernetes  docker 
10 weeks ago
GitHub - alecthomas/gometalinter: Concurrently run Go lint tools and normalise their output
Concurrently run Go lint tools and normalise their output. The number of tools for statically checking Go source for errors and warnings is impressive. This is a tool that concurrently runs a whole bunch of those linters and normalises their output to a standard format.
go  golang  lint  formatting  style  tools 
10 weeks ago
OWASP Validation Regex Repository - OWASP
List of recommended regular expressions for validating common data types such as URLs, email addresses, and phone numbers.
programming  security  owasp  regex  regularexpressions  validation 
10 weeks ago
« earlier      
per page:    204080120160

Copy this bookmark:





to read