Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to
I was able to get Ruby 2.5.1 building on M1 by following two of the steps in that GH issue...
rbenv/ruby-build#1691 (comment) rbenv/ruby-build#1691 (comment)
I installed readline
and openssl
with standard brew install
.
brew install readline
brew install openssl
Moved to git repository: https://github.com/denji/nginx-tuning
For this configuration you can use web server you like, i decided, because i work mostly with it to use nginx.
Generally, properly configured nginx can handle up to 400K to 500K requests per second (clustered), most what i saw is 50K to 80K (non-clustered) requests per second and 30% CPU load, course, this was 2 x Intel Xeon
with HyperThreading enabled, but it can work without problem on slower machines.
You must understand that this config is used in testing environment and not in production so you will need to find a way to implement most of those features best possible for your servers.
#!/usr/bin/env ruby | |
# socket example - client side | |
# usage: ruby clnt.rb [host] port | |
require "socket" | |
if ARGV.length >= 2 | |
host = ARGV.shift | |
else |
Makre sure your home directory does not have a space in it or gcc will crap itself
3. Install Homebrew[http://mxcl.github.com/homebrew/]
$ brew install git
Picking the right architecture = Picking the right battles + Managing trade-offs
- Clarify and agree on the scope of the system
- User cases (description of sequences of events that, taken together, lead to a system doing something useful)
- Who is going to use it?
- How are they going to use it?
-
grab the moto-fastboot version of fastboot here
-
grab the appropriate stock firmware here (tip: you want the one that matches your android build number in settings -> about phone)
-
unzip this file somewhere and make it easy to run the
moto-fastboot-osx64
command from step 1 -
get your phone into fastboot mode, google it if needed but just power the phone off, hold the down volume key and power button for 3 seconds then let go, should get you there
-
verify you are ready for flashing:
./moto-fastboot-osx64 devices -- should list a device --
-
most of the time you just need to flash system and recovery images, so from your unzipped stock firmware files do this:
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
VAGRANTFILE_API_VERSION = "2" | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
config.vm.box = "precise64" | |
config.vm.provision :shell, :privileged => false, :path => "bootstrap_ubuntu1204.sh" | |
end |
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
VAGRANTFILE_API_VERSION = "2" | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
config.vm.box = "precise64" | |
config.vm.provision :shell, :privileged => false, :path => "bootstrap_ubuntu1204.sh" | |
end |
Method lookup is a simple affair in most languages without multiple inheritance. You start from the receiver and move up the ancestors chain until you locate the method. Because Ruby allows you to mix in modules and extend singleton classes at runtime, this is an entirely different affair.
I will not build contrived code to exemplify the more complicated aspects of Ruby method lookup, as this will only serve to confuse the matter. If you are having trouble following method lookup in your own programs, it is not because Ruby has strange rules (it does), it is because your code is too tangled.
When you pass a message to an object, here is how Ruby finds what method to call: