HNHacker News
TopNewBestAskShowJobs

tomazmuraus

312 karma · joined May 18, 2010

[ my public key: https://keybase.io/kami; my proof: https://keybase.io/kami/sigs/LCgBS3xrRZ_Jw2KtJ6VpATle-rwZfm4rHgflMchZBNA ]
submissionscomments
tomazmuraus··on Gophercloud: A Multi-cloud Software Development Kit for Go
(disclaimer: I'm one of the Libcloud developers)

I want to add some context to this.

Our current abstraction provides a relatively simple API which is guaranteed to work across multiple providers.

If you want to access provider specific functionality we offer so called extension methods and arguments. This is similar to how jclouds and other cross-provider libraries handle that as well.

We support over 30 providers and for the more popular ones this means you can usually access most of the native cloud functionality through the base API + extension methods.

Doing that will obviously make it harder and more work to switch between different providers so we always put up a disclaimer and make sure our users are aware of that.

We are trying to standardize as many APIs as possible and promote extension methods to the to top level API (proposals and patches are always very welcome and appreciated!), but sadly in a lot of cases this is not possible. Usually this is because the provider APIs are too different and the glue code needed to make it work would be to complex.

In the end it's a trade-off, pretty much like everything else in life and a lot of other things in CS (CAP anyone?).

If you want good portability and easily switch between providers you will stick to the base API. If you don't care so much about the portability you will also use the extension API.

Side note: Even though official provider client libraries exists, a lot of people still tend to use Libcloud with extension methods.

Usually the reason is that we support a variety of Python versions and we have a stricter testing policy which tends to result in less buggy code.

tomazmuraus··on How node.js app Cloud Monitoring uses the Mailgun API to automate email workflow
It shows how easy it easy to write your own function because all you need to do to send an email is perform a single HTTP request.
tomazmuraus··on Google launches Compute Engine
Project Awesome is an HTTP proxy which means it's even a higher abstraction than a Ruby library :)

In any case, you should have a look at Libcloud (http://libcloud.apache.org/), jclouds (http://jclouds.org), deltacloud (http://deltacloud.apache.org/) and other libraries. Deltacloud exposes a similar functionality through an HTTP interface. We have recently also started working on "Libcloud REST" which will expose all the Libcloud functionality through an HTTP interface which means you will be able to talk to it through an arbitrary language which can speak HTTP.

tomazmuraus··on Whiskey - A new node.js test framework from Rackspace
Disclaimer: I'm author of the blog post.

The title might be a bit misleading, but a first commit to Whiskey was actually made about a year ago (https://github.com/cloudkick/whiskey/commits/master?page=12), before Mocha existed.

tomazmuraus··on Introducing Mantrid (runtime-configurable, Python load balancer)
Just FYI, apache mod_proxy_balancer also supports HTTP 1.1 and you can configure it during run-time if you have mod_status enabled.
tomazmuraus··on I made a script to automate django deployments on Amazon EC2
Any special reason why you haven't used something like libcloud (deploy_node ...) - http://libcloud.apache.org/?

Then the script would work with multiple providers, not just Amazon.

tomazmuraus··on Cast Project - The Open Deployment Platform
We actually do have an install script. It is not the best one, but you should be good to go in a few simple steps:

1. downloading a tarball 2. unpacking it 3. running "scons install"

Scons (our built tool of choice) is an extra dependency, but this shouldn't be a problem since it's a prerequisite for Node.js itself (platform on which Cast is built).

tomazmuraus··on Cast Project - The Open Deployment Platform
Service management part is also abstracted away pretty well, so it should be fairly easy to write a new backend for your favorite service manager (supervisor, upstart, etc.).
tomazmuraus··on Cast Project - The Open Deployment Platform
Here is a link to the original news on the project website http://cast-project.org/news/2011/announcing-cast-preview-re... and a blog post on the Cloudkick website https://www.cloudkick.com/blog/2011/apr/26/cast-the-open-dep...
tomazmuraus··on Comparing clojure and node.js for speed
Nothing new here.

Node wasn't ever really meant to be used for CPU intensive tasks - especially the ones like this which you can fairly easy parallelize.

tomazmuraus··on Learn You a Haskell is now in print
Awesome book (+ pretty pictures).

I have read it online about a year ago, but I still ordered my copy from Amazon.

tomazmuraus··on Dropbox: The hottest startup you've never heard of
It "kinda" supports LAN sync.

Files still first need to be transfered to the cloud first before you can sync them over LAN.

At least it was like this the last time I have looked at it (a few months ago).

tomazmuraus··on Fabric hits 1.0
Nice to see a new release, but there is still no official support for a parallel execution :(

There are some forks with a parallel support, but all of the ones which I have tried are pretty buggy / incomplete.

I have signed up for a Fabric PyCon sprint, hopefully I can help with adding / finishing the parallel support.

tomazmuraus··on Two Factor SSH with Google Authenticator
Yeah, YubiKeys are great.

I have been using mine for about a year now and I also use a YubiKey PAM module to log in into my Ubuntu workstation.

If you search google a bit I am pretty sure you will find a discount code to get it even cheaper :)

tomazmuraus··on Continuous Deployment
Yeah, I was thinking about doing a similar thing here at Cloudkick.

Currently, our test suite is not that large and it takes around 6-8 minutes to complete, but with testing every minute counts (testing is generally not that fun and a slow test suite just makes it more painful).

We have a two types of tests:

- Twisted tests - this tests runs asynchronously and finish pretty fast so they are generally not that problematic - Django tests - Django tests don't run in parallel so they are pretty slow. Recently, I was playing around with the Django test runner and I have made some modification to it to run the tests in parallel. Now the Django tests finish around 50% faster.

The only problem with this solution is that it is a "hack" and it requires some modifications to the Django core (I guess I should play more with the nose parallel test runner).

We also use some other "tricks" which make tests run faster - for example, MySQL data directory on a test server is stored on a ram disk.

tomazmuraus··on Rackspace Buys Server Management Platform Cloudkick (YC W09)
If you have a developer plan and use "refer a friend" option, you can earn up to three extra "premium" nodes for free by inviting your friends - https://www.cloudkick.com/blog/2010/nov/24/invite_a_friend/.
tomazmuraus··on Turkey + USB Thermometer + Cloudkick = SMS Delicious
If you feel creative, you could try to build your own temperature probe using Arduino + LM35 sensor + stainless steel tube + some solder.

The datata sheet claims, it can read temperature between -55°C - 150°C, but I never tested its limit so I have now idea how far you can actually push it :)

In any case, like HeyLaughingBoy have said, if you want something which goes higher, check thermocouples.

tomazmuraus··on Dropbox (YC S07): Simple Tasks for Extra Space (768MB total)
No matter how much I love the service, I hate it when a service wants access to "update your data".
tomazmuraus··on Browse github fast with GithubFinder
Yeah, same here.

I will still need to clone a repo if I need to quickly find or grep for something, but it's definitely way more useful for reading through the code then the default github file browser.

tomazmuraus··on Diet hacker data point
It is no magic, in the simplest explanation it all comes down to the law of thermodynamics and calorie balance.

If you are interested in this kind of stuff, check Lyle's website[1]. He has many good articles about this kind of stuff.

[1]: http://www.bodyrecomposition.com/fat-loss/the-energy-balance...

tomazmuraus··on Happy Sysadmin Day! Cloudkick Developer plan: all features, 1 server, SMS alerts
It looks like they just offer normal virtual servers with root access.

By looking at the supported OS images, you shouldn't have problems installing Cloudkick agent (https://support.cloudkick.com/Setting_up_Cloudkick_with_Phys...) on any of them.

Actually, the installation should be pretty simple, because we already offer pre-built packages for all of the systems currently supported at chunkhost - https://support.cloudkick.com/Agent/Installation.

If you do encounter a problem, feel free to stop at #cloudkick @ FreeNode and we will look into it.

tomazmuraus··on Cloudkick (YC W09) now supports multi-factor authentication
Because it works by emulating an USB keyboard and keystrokes (which is pretty ingenious idea imo).

"The Key generates and sends unique time-variant authentication codes by emulating keystrokes through the standard keyboard interface. "

tomazmuraus··on Syntax highlighting, auto complete and more within Python interpreter
I have tested it and it's not bad but the IPython (with "save history" & "virtualenv" plugin) + Dreampie combination is still a lot better and way more powerful.

I use IPython as my main Python shell replacement (this also includes Django development, debugging - (i)pdb, etc.) and Dreampie when writing a prototype or "playing around".

tomazmuraus··on Abandoned open source projects
Yes, the ability for the user to set the repository status to "abandoned" would be great.

I don't like the other idea about automatically setting the repository status to abandoned if it hasn't been updated for a while, because it's not necessary that project has been abandoned, because there were no code / repository updates recently.

tomazmuraus··on I created a bookmarking service you can love.
Diigo (http://www.diigo.com), among other things supports saving page snaphosts and annotations.

I've been using Diigo for 8 months now and it's just great (I have used some other services like delicious previously, but they really can't compare to Diigo which just offers a lot more functionality).

tomazmuraus··on Hidden features of Python
python -m smtpd -n -c DebuggingServer localhost:2525

Runs a local SMTP server on port 2525. Very useful for debugging.

tomazmuraus··on Python 2.7 released
Great, now we finally have long awaited ordered dictionary in 2.x branch as well :)
tomazmuraus··on Large Problems in Django, Mostly Solved: Delayed Execution
I use Celery myself as well and it's awesome.

It supports multiple messaging queues and backends for storing results (RabbitMQ, MongoDB, AMQP, Redis, ... - I personally use Redis, because I don't need all the features and overhead from RabbitMQ) and also has a great documentation and friendly support on IRC.

And if you watch the Celery project on github you can see that the author is basically working and improving the project on daily basis.

tomazmuraus··on Ask HN: Review our app: masterbranch.com
I came across this website a few days ago and I like the idea and execution so far :)

In my opinion, you should be able to manually edit project description and add extra information to it.

Also more forges like lauchpad, ohloh? and others are needed.

P.S. At what rate do your spiders crawl GitHub and other websites?

It looks like that many projects with recent updates are missing.