312
I Use This!
Activity Not Available

News

Posted over 7 years ago
Arrived at rental house. Picked up boat from warehouse, helped the owner replace the windshield. Drove out to the causeway, launched, found my way through the canals to the house. Got a ride back to the ramp to recover the truck and trailer. Went to ... [More] Wal-Mart and bought throwable life preserver cushions and portable navigation lights. Couldn't find a bilge pump so resigned to using a cup to bail as needed. [Less]
Posted over 7 years ago
The naming of Ubuntu releases is, of course, purely metaphorical. We are a diverse community of communities – we are an assembly of people interested in widely different things (desktops, devices, clouds and servers) from widely different backgrounds ... [More] (hello, world) and with widely different skills (from docs to design to development, and those are just the d’s). As we come to the end of the alphabet, I want to thank everyone who makes this fun. Your passion and focus and intellect, and occasionally your sharp differences, all make it a privilege to be part of this body incorporate. Right now, Ubuntu is moving even faster to the centre of the cloud and edge operations. From AWS to the zaniest new devices, Ubuntu helps people get things done faster, cleaner, and more efficiently, thanks to you. From the launch of our kubernetes charms which make it very easy to operate k8s everywhere, to the fun people seem to be having with snaps at snapcraft.io for shipping bits from cloud to top of rack to distant devices, we love the pace of change and we change the face of love. We are a tiny band in a market of giants, but our focus on delivering free software freely together with enterprise support, services and solutions appears to be opening doors, and minds, everywhere. So, in honour of the valiantly tiny leaping long-tailed over the obstacles of life, our next release which will be Ubuntu 17.04, is hereby code named the ‘Zesty Zapus’.   [Less]
Posted over 7 years ago
If you want to write a web API in Haskell, then you should start by using my new cookiecutter template at https://github.com/jml/servant-template. It’ll get you a production-ready web service in 5 minutes or less. Whenever you start any new web ... [More] service and you actually care about getting it working and available to users, it’s very useful to have: logging monitoring continuous integration tests deployment command-line parsing These are largely boring, but nearly essential. Logs and monitoring give you visibility into the code’s behaviour in production, tests and continuous integration help you make sure you don’t break it, and, of course, you need some way of actually shipping code to users. As an engineer who cares deeply about running code in production, these are pretty much the bare minimum for me to be able to deploy something to my users. The cookiecutter template at gh:jml/servant-template creates a simple Haskell web API service that does all of these things: logging with logging-effect monitoring with Prometheus continuous integration with circleci tests with Tasty deployment by building a Docker image command-line parsing with optparse-applicative As the name suggests, all of this enables writing a servant server. Servant lets you declaring web APIs at the type-level and then using those API specifications to write servers. It’s hard to overstate just how useful it is for writing RESTful APIs. Get started with: $ cookiecutter gh:jml/servant-template project_name [awesome-service]: awesome-service ... $ cd awesome-service $ stack test $ make image ... sha256:30e4c9a5f29a2c4caa44e226859dd094c6ac9d297de0d1d2024e8a981a7c8f86 awesome-service:unversioned $ docker run awesome-service:latest --help awesome-service - TODO fill this in Usage: awesome-service --port PORT [--access-logs ARG] [--log-level ARG] [--ghc-metrics] One line description of project Available options: -h,--help Show this help text --port PORT Port to listen on --access-logs ARG How to log HTTP access --log-level ARG Minimum severity for log messages --ghc-metrics Export GHC metrics. Requires running with +RTS. $ docker run -p 8080:80 awesome-service --port 80 [2016-10-16T20:50:07.983292987000] [Informational] Listening on :80 For this to work, you’ll need to have Docker installed on your system. I’ve tested it on my Mac with Docker Machine, but haven’t yet with Linux. You might have to run stack docker pull before make image, if you haven’t already used stack to build things from within Docker. Once it’s up and running, you can browse to http://localhost:8080/ (or http://$(docker-machine ip):8080/) if you’re on a Mac, and you’ll see a simple HTML page describing the API and giving you a link to the /metrics page, which is where all the Prometheus metrics are exported. There you have it, a production-ready web service. At least for some values of “production-ready”. Of course, the API it offers is really simple. You can make it your own by editing the API definition and the server implementation to make it really your own. Note these two are in separate libraries to make it easier to generate client code. The template comes with a test suite that uses servant-quickcheck to guarantee that none of your endpoints return 500s, take longer than 100ms to serve, and that all the 201s include Location headers. If you’re so inclined, you could push the created Docker image to a repository somewhere—it’s around 25MB when built. Then, people could use it and no one would have to know that it’s Haskell, they’d just notice a fast web service that works. As the README says, I’ve made a few questionable decisions when building this. If you disagree, or think I could have done anything better I’d love to know. If you use this to build something cool, or even something silly, please let me know on Twitter. [Less]
Posted almost 8 years ago
Just to state publicly my gratitude that the Ubuntu Community Council has taken on their responsibilities very thoughtfully, and has demonstrated a proactive interest in keeping the community happy, healthy and unblocked. Their role is a critical one ... [More] in the Ubuntu project, because we are at our best when we are constantly improving, and we are at our best when we are actively exploring ways to have completely different communities find common cause, common interest and common solutions. They say that it’s tough at the top because the easy problems don’t get escalated, and that is particularly true of the CC. So far, they are doing us proud.   [Less]
Posted almost 8 years ago by [email protected] (Tim Penhey (thumper))
Well, it has certainly been a lot longer since I wrote a post than I thought.My work at Canonical still has me on the Juju team. Juju has come a long way in the last few years, and we are on the final push for the 2.0 version. This was initially ... [More] intended to come out with the Xenial release, but unfortunately was not ready. Xenial has 2.0-beta4 right now, soon to be beta 6. Hoping that real soon now we'll step through the release candidates to a final release. This will be SRU'ed into both Xenial and Trusty.I plan to do some more detailed posts on some of the Go utility libraries that have come out of the Juju work. In particular, talking again about loggo which I moved under the "github.com/juju" banner, and the errors package.Recent work has had me look at the database agnostic model representations for migrating models from one controller to another, and also at gomaasapi - the Go library for talking with MAAS. Perhaps more on that later. [Less]
Posted about 8 years ago
Yakkety yakkety yakkety yakkety yakkety yakkety yakkety yakkety yak. Naturally
Posted about 8 years ago
Yakkety yakkety yakkety yakkety yakkety yakkety yakkety yakkety yak. Naturally
Posted about 8 years ago
Yakkety yakkety yakkety yakkety yakkety yakkety yakkety yakkety yak. Naturally
Posted about 8 years ago
With the release of LXC 2.0 and LXD, we now have a pure-container hypervisor that delivers bare-metal performance with a standard Linux guest OS experience. Very low latency, very high density, and very high control of specific in-guest application ... [More] processes compared to KVM and ESX make it worth checking out for large-scale Linux virtualisation operations. Even better, the drivers to enable LXD as a hypervisor in  OpenStack, are maturing upstream. That means you get bare metal performance on OpenStack for Linux workloads, without actually giving people the whole physical server. LXD supports live migration so you can migrate those users to a different physical server with no downtime, which is great for maintenance. And you can have all the nice Openstack semantics for virtual networks etc without having to try very hard. By contrast, Ironic has the problem that the user can now modify any aspect of the machine as if you gave them physical access to it. In most cases, that’s not desirable, and in public clouds it’s a fun way to let the NSA (and other agencies) install firmware for your users to enjoy later. NSA-as-a-Service does have a certain ring to it though. [Less]
Posted about 8 years ago by Richard Wilbur