Sunday, July 01, 2018
Thursday, June 28, 2018
Errata for Articles on www.rubyplus.com
DK Smith has offered me his time to point out some errors, spelling mistakes etc. This page will document his findings.
Saturday, June 23, 2018
git prompts for passphrase after mac os upgrade
Solution
- Create (or edit if it exists) the following
~/.ssh/configfile:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa eval "$(ssh-agent -s)"ssh-add -K ~/.ssh/id_rsa
Installing Rugged on Mac OS
Check if Mac is 64 bit:
getconf LONG_BIT
ERROR: CMake is required to build Rugged
cat /Users/bparanj/.rvm/gems/ruby- 2.3.1@headache/extensions/x86_64- darwin-17/2.3.0/rugged-0.25.1. 1/gem_make.out
ERROR: CMake is required to build Rugged.
brew install cmake
Must be superuser to create this extension.
ALTER ROLE SUPERUSER;
createuser --superuser postgres2
gpg: keyserver receive failed: No route to host
Solution:
gpg-connect-agent --dirmngr 'keyserver --hosttable'
BYE
gpg --keyserver hkp://b4ckbone.de --recv-keys 409B6B1796C275462A1703113804BB 82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0 E739499BDB
Friday, June 22, 2018
When to Apply Memoization
Apply memoization, when two conditions are met:
1. Optimal sub structure
2. Overlapping sub problems
1. Optimal sub structure
2. Overlapping sub problems
Tuesday, June 19, 2018
Make sure that `gem install libv8 -v '3.16.14.19' --source 'https://rubygems.org/'` succeeds before bundling.
This happened on Mac OS 10.10.5. I needed a specific version of libv8, so I used the -v flag in gem install.
Resolution
Resolution
gem install libv8 -v 3.16.14.19 -- --with-system-v8
bundle config build.libv8 --with-system-v8
Monday, June 18, 2018
SSL Notes
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --apache --rsa-key-size 4096
./letsencrypt-auto --apache -d example.com -d www.example.com -d foo.example.com -d bar.example.com -d baz.example.com
SSL with Let's Encrypt in Apache
cd letsencrypt
./letsencrypt-auto --apache --rsa-key-size 4096
./letsencrypt-auto --apache -d example.com -d www.example.com -d foo.example.com -d bar.example.com -d baz.example.com
SSL with Let's Encrypt in Apache
Monday, April 23, 2018
Skill vs Challenge
When you work on improving your coding skill, be aware that you will experience these feelings that depends on your current skill level and the challenge level of the problem. Our goal is to be able to take on high challenges at a high skill level so that we can experience the Flow.
Saturday, March 31, 2018
Friday, March 02, 2018
Thursday, March 01, 2018
Installing Graphicsmagick on Mac
cd /usr/local/src
curl --remote-name --location ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/GraphicsMagick-1.3.27a.tar.gz
tar -xzvf GraphicsMagick-1.3.27a.tar.gz
cd GraphicsMagick-1.3.27a
./configure CC=clang \
LDFLAGS="-L/usr/local/libjpeg/lib -L/usr/local/libpng/lib -L/usr/local/libtiff/lib" \
CPPFLAGS="-I/usr/local/libjpeg/include -I/usr/local/libpng/include -I/usr/local/libtiff/include" \
--prefix=/usr/local/mac-dev-env/graphicsmagick-1.3.27a
make
sudo make install
sudo ln -s mac-dev-env/graphicsmagick-1.3.27a /usr/local/graphicsmagick
echo 'export PATH=/usr/local/graphicsmagick/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile
gm version
Reference
Installing graphicsmagick on Mac
curl --remote-name --location ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/GraphicsMagick-1.3.27a.tar.gz
tar -xzvf GraphicsMagick-1.3.27a.tar.gz
cd GraphicsMagick-1.3.27a
./configure CC=clang \
LDFLAGS="-L/usr/local/libjpeg/lib -L/usr/local/libpng/lib -L/usr/local/libtiff/lib" \
CPPFLAGS="-I/usr/local/libjpeg/include -I/usr/local/libpng/include -I/usr/local/libtiff/include" \
--prefix=/usr/local/mac-dev-env/graphicsmagick-1.3.27a
make
sudo make install
sudo ln -s mac-dev-env/graphicsmagick-1.3.27a /usr/local/graphicsmagick
echo 'export PATH=/usr/local/graphicsmagick/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile
gm version
Reference
Installing graphicsmagick on Mac
Installing phantomjs on Mac 10.10.5
Cliver::Dependency::NotFound: Could not find an executable ["phantomjs"] on your path.
brew install phantomjs
MiniMagick::Invalid: ImageMagick/GraphicsMagick is not installed
brew install graphicsmagick
Error: SHA256 mismatch
Expected: 2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6
Actual: 7a07d3f7cca5c0b38ca811984ef8da536da32932d68c1a6cce33ec2462b930bf
Archive: /Users/bparanj/Library/Caches/Homebrew/libpng-1.6.34.tar.xz
brew uninstall libpng
brew cleanup -s
brew install graphicsmagick
brew install phantomjs
MiniMagick::Invalid: ImageMagick/GraphicsMagick is not installed
brew install graphicsmagick
Error: SHA256 mismatch
Expected: 2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6
Actual: 7a07d3f7cca5c0b38ca811984ef8da536da32932d68c1a6cce33ec2462b930bf
Archive: /Users/bparanj/Library/Caches/Homebrew/libpng-1.6.34.tar.xz
brew uninstall libpng
brew cleanup -s
brew install graphicsmagick
Sunday, February 25, 2018
Selenium::WebDriver::Error::WebDriverError:
Selenium::WebDriver::Error::WebDriverError:
Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
Resolution
brew install chromedriver
Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
Resolution
brew install chromedriver
Friday, February 23, 2018
The TDD Course for Beginners : Learn by Practicing 7 Katas
Learn how to do Test Driven Development using Ruby within 4 hours. You will get:
1. The transcript of the entire course in PDF.2. TDD in Ruby ebook in PDF, Mobi and Epub formats
3. Members only TDD tutorial website that walks you through every exercise in the course.
4. Monthly Google hangout Q&A session that supports your learning objectives.
5. All the slides used in the course in PDF format.
6. TDD Course Tools Checklist for every sub-skill covered in the course.
7. TDD in Ruby Course Outline that was used to create the course.
How do I get access to the videos and all the above goodies?
For only $9 / month, you get my support and access to all of the above. Send me payment via Paypal to bala.paranj@zepho.com to get access today!Testimonials
Jeff Casimir, Principal, Jumpstart LabPros:-
The actual coding TDD examples for Fizz Buzz and Fibonacci were really well done
During the coding exercises the refactoring of code was a good illustration of how to improve certainty of test results
Good overview of the importance of testing
Each lecture / exercise was only 5-10 minutes providing nice incremental gains in the course
Cons:-
The instructor's delivery was not engaging - students tune out very quickly
First 61 minutes were very high level and included no actual coding
Instructors speaking voice was monotone and slow for the entire course no inflection, jokes, or anything to keep your attention
The audio between segments varied in quality to sometimes low quality not ideal for a $200 course
Instructor used whiteboard to write notes and diagram concepts during lecture (also wrote in cursive and at least 1 time wrote off viewable screen)
Summary:
We wouldn't recommend it for Turing pre-requisite work, but could be valuable supporting material for students in the class.
Mylene Reiners
When you want a theoretical background on TDD, this course is great (and the Ruby part is not too hard for people knowing only a little Ruby...)
Yury Voloshin
This is a good introduction to TDD for those who either have never used it or who have a very rudimentary understanding of it. Some of the more advanced concepts toward the end are somewhat rushed through, but I' sure that can't be helped due to time constraints and to the nature of the material. At least now I know the topics that I need to into more deeply.
Nikolas
This course introduces a solid foundation for practicing TDD. The instructor definitely knows what he's teaching. Information is divided in small logical and understandable chunks/lectures.
Jesse Mignac
Techniques, examples and theoretical material. This course is a really nice start to TDD with Ruby
Andrew Platkin
Very good pace and learned alot
Thom Parkin
The beginning of this course seems a bit slow and very dry. But your patience is well rewarded because the depth and detail of information provided is priceless! Mr. Paranj uses a time-tested technique of methodical presentation of ideas, one built upon the other, to its ultimate success. I am grateful and impressed by this course.
Jikku Jose
I am very happy to have such a comprehensive course from Mr. Paranj. I have been trying to do TDD in my projects for quite sometime without much success. This course helped a lot to expose much of the concepts and details one should focus on while doing TDD. I wish the examples mentioned in "Fake It till you make it" and "Triangulation" was a bit more involved rather than the basic ones presented so that the techniques could be better understood. I thank Mr. Paranj and Udemy for the course, it really helped me. Hope more advanced Ruby related materials can be brought out.
Pawel Jackowski
Instructor knows TDD and explains it with ease. I am quite familiar with technique and just wanted to refresh knowledge and I still recommend course. I definitely learned something about common mistakes and importance of every step in TDD sequence. I enrolled for free.
Steve Freeman
Instructor uses katas very effectively to show the patterns behind TDD. His clear examples and pointers to material for further study were very helpful and I look forward to practicing katas on my own. If you're trying to make sense of TDD I highly recommend this class!
What are the requirements?
Basic programming skillsYou need to have your favorite text editor installed on your machine
You need Ruby 2.0 or above installed on your machine.
What am I going to get from this course?
Do Problem Domain AnalysisDo Solution Domain Analysis
Design Test Cases
Write Tests First
Apply Canonical Test Structure when having difficulty in writing a test first.
Who is the target audience?
Beginners to Test Driven DevelopmentYou should already know how to write programs in Ruby
You should already know how to create an instance of a class and invoke methods.
Course Description
In this course you will learn the basics of Test Driven Development. You will learn how to do Problem Domain Analysis, Solution Domain Analysis, Designing Test Cases and Writing Tests First. Learn the Basics of Test Driven Development in Ruby using this Beginner Course. This course will take 4 hours to complete.Practice skills using 7 katas
- Use the downloadable checklists to guide you when coding
- Learn 3 different techniques to do Test Driven Development
- You can be more productive if you practice TDD at work. Companies that adopt Test Driven Development are great places to work.
The concepts are first explained in a presentation. Then a coding demo illustrates how to apply the theory in practice. At the end of the lesson an exercise is given to reinforce the material.
You will learn the following concepts:
- Assertions
- The structure of a test
- TDD Cycle
- Minimal Implementation
- Starter Test
- Story Test
- Next Test
- Refactoring
- Obvious Implementation
- Fake It Till You Make It
- Triangulation
- Hiding Implementation Details
Subscribe Now
For only $9 / month, you get my support and access to all of the above. Send me payment via Paypal to bala.paranj@zepho.com to get access today!
Thursday, February 22, 2018
Saturday, February 10, 2018
ActionController::UnknownFormat (ActionController::UnknownFormat):
This happens with Devise when working with API only Rails app.
Solution: Add respond_to :json in the controller.
Solution: Add respond_to :json in the controller.
ActiveModel::UnknownAttributeError (unknown attribute 'user' for User.):
Devise throws this error.
Solution:
Don't use the protected method signup_params. I used my own method:
def allowed_params
params.permit(:first_name, :email, :password, :password_confirmation)
end
Solution:
Don't use the protected method signup_params. I used my own method:
def allowed_params
params.permit(:first_name, :email, :password, :password_confirmation)
end
the build_resource call uses this method.
build_resource(allowed_params)
I copied the create action from Devise::Registrations controller and customized it:
def create
build_resource(allowed_params)
resource.save
if resource.persisted?
if resource.active_for_authentication?
sign_up(resource_name, resource)
respond_with resource, location: after_sign_up_path_for(resource)
else
expire_data_after_sign_in!
respond_with resource, location: after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
set_minimum_password_length
respond_with resource
end
end
Subscribe to:
Posts (Atom)





















































