(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
Create VPC | |
Create Security Group | |
Create incoming and outgoing rules for SSH, HTTP, Sinatra and Rackup, 443 | |
Create Key Pair | |
cd ~/.ssh | |
mv ~/Downloads/Turing.pem . | |
chmod 400 Turing.pem | |
ssh-add -k Turing.pem | |
Launch Instance | |
ubuntu 14.04 |
I try to put things into the larger perspective here, so prepare, long mail. | |
== Defining backpressure | |
First of all, we need a working definition of "backpressure". I put it in quotes since I will attack things from a very general perspective which might not exactly match what others think as backpressure. | |
Sometimes it is easier to characterize the correct behavior of a system/protocol by defining what we consider incorrect behavior rather than trying to limit ourselves when approaching from correctness properties. In the case of backpressure there are two undesireable kinds of behavior: | |
- If the buffers in the system might growth without bounds then the backpressure protocol is not safe | |
- If the protocol can become stuck, although the sender has messages to deliver and the receiver is also available to process them, then the backpressure protocol is not safe |
<li class="<%= self_or_other(message) %>"> | |
<div class="avatar"> | |
<img src="http://placehold.it/50x50" /> | |
</div> | |
<div class="chatboxmessagecontent"> | |
<p><%= message.body %></p> | |
<time datetime="<%= message.created_at %>" title="<%= message.created_at.strftime("%d %b %Y at %I:%M%p") %>"> | |
<%= message_interlocutor(message).name %> • <%= message.created_at.strftime("%H:%M %p") %> | |
</time> | |
</div> |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
# jade | |
template(name='productNumbersCrud') | |
h4 Product Numbers | |
.row | |
.col-md-6 | |
table.tabel.table-hover.table-striped.table-bordered | |
tbody | |
each productNumbers | |
tr | |
td |
# A sample Gemfile | |
source "https://rubygems.org" | |
# gem "rails" | |
gem 'sinatra' | |
group :development, :test do | |
gem 'guard-livereload', require: false | |
gem 'rack-livereload' | |
gem 'guard' | |
end |
Grab ffmpeg from https://www.ffmpeg.org/download.html
It's a command line tool which means you will have to type things with your keyboard instead of clicking on buttons.
The most trivial operation would be converting gifs:
ffmpeg -i your_gif.gif -c:v libvpx -crf 12 -b:v 500K output.webm
-crf
values can go from 4 to 63. Lower values mean better quality.-b:v
is the maximum allowed bitrate. Higher means better quality.Command Line
pry -r ./config/app_init_file.rb
- load your app into a pry session (look at the file loaded by config.ru)pry -r ./config/environment.rb
- load your rails into a pry sessionDebugger
NOTE: Easier way is the X86 way, described on https://www.genymotion.com/help/desktop/faq/#google-play-services | |
Download the following ZIPs: | |
ARM Translation Installer v1.1 (http://www.mirrorcreator.com/files/0ZIO8PME/Genymotion-ARM-Translation_v1.1.zip_links) | |
Download the correct GApps for your Android version: | |
Google Apps for Android 6.0 (https://www.androidfilehost.com/?fid=24052804347835438 - benzo-gapps-M-20151011-signed-chroma-r3.zip) | |
Google Apps for Android 5.1 (https://www.androidfilehost.com/?fid=96042739161891406 - gapps-L-4-21-15.zip) | |
Google Apps for Android 5.0 (https://www.androidfilehost.com/?fid=95784891001614559 - gapps-lp-20141109-signed.zip) |
Rails as it has never been before :) | |
Rails 3 AntiPatterns, Useful snippets and Recommended Refactoring. | |
Note: Some of them are collected from different online resources/posts/blogs with some tweaks. |