It is slightly surreal for me to see somebody posting here with my name and such different perspectives to mine on the topics being discussed. I have to double-take each time I read one of your comments and see the poster name. Greetings from 'the other' mpyne :D
HN user
morganpyne
Full stack Open Source web guy. Generalist/specialist.
A master of all trades, the father of a beautiful flame, a player of gypsy jazz, an aspiring luthier, an explorer on and below the ocean.
Since we manage our servers with Puppet, we use hiera-gpg to securely store sensitive information in encrypted form in git. Puppet then safely deploys these files to our servers and our application deployment process (Capistrano) symlinks/copies these config files in to the application as part of the deployment process. The sensitive config files themselves are excluded from our application's git repository and developers keep local copies of these files (containing local dev. credentials only) for development purposes.
More info on hiera-gpg here: http://www.craigdunn.org/2011/10/secret-variables-in-puppet-...
This looks like a scaled up version of this experiment that has been on youtube for about 5 years: https://www.youtube.com/watch?v=W1TMZASCR-I (only 5 metronomes in that one, but I remember being fascinated when I first saw the effect)
Congratulations to the 80/20 folks, and a great acquisition for Square. I had the pleasure of working with Andrew in the past on a couple of projects and he's both a very talented & productive designer, and a very nice guy.
I watched the Anthony Griffiths movie he referred to a while ago and it is heartbreaking. I'm normally a very reserved person who's partner is convinced my tear ducts dried up from lack of use years ago, but watching Anthony tell his story is like a punch in the guts. I didn't enjoy watching it, but I'm glad I did. It sure puts things in perspective.
This is exactly the mechanism that pt-online-schema-change from Percona uses.
http://www.percona.com/doc/percona-toolkit/2.1/pt-online-sch...
Thanks. I had only installed the JRE. When I installed the JDK it showed up in there for me too.
Does anybody know how to integrate this into OSX so that it is known to the Java Preferences app ? (/Applicatons/Utilities/Java Preferences.app)
Sounds like you should give New Relic a try so :-) Although unfortunately their pro plan is a little more than $25/month
Heh, perhaps some Joyent staff may have something to contribute to this conversation. They offered a "lifetime" hosting deal with shell access a while ago for a one-off fee, and I have heard that this is becoming a bit of a millstone for them. Certainly my brothers 'lifetime' account with them is not getting a lot of love and feels a bit like it's being left to rot on decrepit hardware.
I wonder would they do it again with the benefit of hindsight, or did it serve their purpose?
Thanks for the clarifications. And the work :-)
Is there any overlap between the work done in Gizzard and the other popular MySQL forks (Percona, MariaDB, Drizzle) or are each of these solving different (incompatible) problems?
Certainly the UK seems to have taken a giant leap in this direction recently (unless this is a misguided April fool article):
http://www.bbc.co.uk/news/uk-politics-17576745
I think you are deluding yourself though if you believe that most major govts are not doing wholesale digital trawling to the best of their (advanced) abilitites already, regardless of whatever legislation is currently in place.
Well done and congrats. Glad we nabbed you for a visit to New Zealand before you got lost in work again. Good luck in your new job.
Thanks for the information. Looks like the app needs to support it too, using a custom URL syntax.
Never heard of this until now, so was very interested to see the list of enhancements that they have made to nginx. Some of them look quite useful e.g. the logging enhancements and Input body filter support.
This feature caught my eye: - Combines multiple CSS or JavasScript requests into one request to reduce the downloading time
I wonder how they achieve this at the webserver level? Normally something like this is done as part of the deployment/compile process. Anybody familiar with Tengine care to comment?
Well, taking a consistent snapshot for backups is easier when it's in a single source. I know there are ways around this (ZFS!) and not everyone needs synced backups to the millisecond but it can complicate backups (or more to the point - restores)
Simple reliable replication has been a huge differentiator for a long time; enough so to put up with a lot of the other faults of MySQL. Have not revisited Postgres replication in a long time but I have seen that it has been worked on. Anyone with recent experience in both care to explain how the replication of both stacks up in recent versions?
Guilty as charged for immediately assuming that the problems of the MySQL family apply to other databases. Thank you for pointing out that PostgreSQL does not necessarily have all the same limitations.
Interesting. As you have probably guessed by now, I'm not a Rails developer and therefore did not know this. I was surprised to read about this after your comment and find that Active Record went the lowest common denominator route with this and therefore gave up any native foreign key integrity support.
There is another problem unmentioned in this article with his simple table modification example... When you modify a table the DB needs to write the entire table to disk, locking it all the time. Depending on how much data is in the table and how fast your IO is this can be hours and hours of downtime on the live database, for a migration that only took a few seconds locally on your test database.
Running migrations on live databases with lots of data in them is hard. There are many strategies to work around this problem, but generally running an 'alter table' on your primary db server on a huge table while it is in use should be your very last option.
How does this deal with foreign key references? I thought that if you rename a table the FK references from other tables will still point at the renamed table? Discussion here: http://dev.mysql.com/doc/refman/5.0/en/rename-table.html
The Percona pt-online-schema-change tool goes to great lengths to avoid this kind of problem.
re (3): I have used the headless webkit engine to render high quality PDFs from HTML in the past. It's free. See: https://code.google.com/p/wkhtmltopdf/
Setting your max clients to 220 on that setup is a terrible idea. You will probably cause the machine to start swapping as there is insufficient memory for each PHP process. It will grind to a slow halt. You should calculate your MaxClients based on the amount of load the machine can actually handle, not the amount you wish it could handle :-)
A conservative estimate of 20MB per PHP process would already put the requirements for 220 of them at over 4GB (twice what you have) and that's not allowing anything for the OS and anything else running on the machine. Its not an exact science figuring out the appropriate MaxClients, but you should find out how much the rest of the machine needs, look up the average Apache process size (ps), divide the available memory by that and then reduce it a little. Use this as you starting point for figuring out the MaxClients. Keep an eye on the available free memory for a while (vmstat) and gradually up that limit until you reach a comfortable working level for the setting.
I believe that the game itself is HTML5, and only the audio portion is flash-based.
Beautiful work as usual. The entropy visualisations in particular stuck out for me, and I can imagine how useful it is to be able to see this kind of information at a glance while dissecting malware.
Thank you, I had not seen your fork and modifications before. Will check them out!
I have found Facebook's xhprof extension to be a a very useful extension for profiling also https://github.com/facebook/xhprof.
Unlike the one above, it doesn't require any code changes (it's a C-based PECL extension), and can easily be set up to be triggered via a parameter on the URL or to profile every nth page load (via a simple auto-prepend) for usage in production environments. It produces a full callgraph (using graphviz), you can drill down into the profile interactively, and you can record and compare profiles over time of the same page. It's also really quick and easy to setup and use.
There are of course other extensions that can do some profiling such as APD and XDebug, but xhprof is my personal favourite. I'm not sure I would ever be keen on confining my profiling to a PHP profiler written in PHP, although you do get some similar functionality from some frameworks such as debug mode in the Symfony framework.
Hah! For years when I played the piano, I held my hands like I now type; relatively flat fingered and straight wristed. It never affected my ability to play anything complicated and the only real problem was that my piano teacher insisted that this was not the 'correct' way to hold my hands while playing. Never suffered from RSI during the many many hours I've spent at either type of keyboard.
I thought it was Groucho Marx? https://en.wikiquote.org/wiki/Groucho_Marx
Although apparently the sentiment even predates his usage of it by about 60 years.