Archive for category Uncategorized
AR lazy eval
Writing good code is not an easy task to accomplish and every developer has his weak spots.
For me, developing in a concurrent environment and scheduling between tasks is a serious weak spot.
I know, it may be obvious why these two specific topics might burden the development but I’d like to put it into simple words:
(1) The tiny fact that I cannot read the code line by line and know it really was the order of execution can sometimes make me wish I would have chosen a different profession (not really 🙂 )
Debugging suddenly becomes hell, if not useless, and all these threads pop up to your console from nowhere without having control over them. Not a pleasant experience indeed.
Lucky lucky me, as a Rails developer, I don’t get to deal with concurrency too much (if at all), but that doesn’t mean that (1) is solved…
View original post 599 more words
Burn your controller a la Erez Rabih
Don’t Solve The Problem, Prevent It.
When you deal with input in programming, it is always a good practice to make sure you can’t get from the user what you wouldn’t want to get. I know it sounds strange at the beginning, but let me further explain with the simplest example:
Let’s say you want to get a date as an input from the user. A date can have many different formats and dealing with every possible format could become very frustrating. Now if you let the user enter the date in a simple text box you leave the power in the hands of the user. He decides how the input gets to your server, and you find yourself wasting a lot of code lines on the parsing of the date.
That is exactly the reason why graphical date picker components were created. A date picker lets the user choose…
View original post 494 more words
Great post by Erez
1. It is open source
Open source projects are just inherently awesome.
Get a strange error that does not include a code line of yours? Want to know how things really work from behind? Want to improve your programming skills?
All of these may be achieved by just going through the source code on Github.
I know – it is just awesome.
Open source comes with a responsibility though: if something breaks down there’s no one to complain to, you must dig inside and handle it yourself.
2. Its fluid code
RoR is well-known for its idiomatic code style, which I sometimes call “English with underscores instead of spaces”.
This is thanks to the Ruby language itself, which the platform relies on, and to the RoR infrastructure which produced a great platform to work with.
When you develop with RoR you can achieve such levels of code-readability,
that you can just…
View original post 721 more words
Fast tests feedback is crucial for productivity (don’t wait for your tests on TDD), commit time (continuous integration), deploy time (continuous deployment)
VCR is a great tool for speeding up network bound tests. It uses an underlying layer to imitate web requests by dumping the first request into yml file and using the dumped response to stub future requests with the same headers.
Setup is super easy:
3) go over all failing tests and add :vcr to the group:
Each example group will be represented by a yml file in the spec/cassettes directory. The file will include all the requests and responses for the example group
4) update .gitignore to ignore cassettes
Run your specs and enjoy the velocity (on the second run ;-))
We are looking for passionate engineers (Frontend and Backend) with
deep understanding on testability, architecture, scalability, startup
experience, familiar and excited from the lean startup movement.
We believe in Agile and lean startup movement
We care about test driven development and continues deployment.
You will take part of a small team to develop a revolutionary
application which will maximize our customers financial potential.
- If you care about design
- If you have strong knowledge of web and distributed computing,
- If you are self motivated , fast learner
- If you are familiar with RoR or similar framework (Django, GWT),
- If you are excited from building a project from scratch,
- If you are a team player, and want to create a really exiting product for our customers
Please introduce yourself, confidentiality is guaranteed!!!
More details –
Environment – Linux, JVM
Languages: Java, Ruby, Scala
Libraries: Guice, Google Guava, Perf4j, ASM, Rack, jQuery, Mocha
Persistence: Hibernate, MySQL, Amazon S3, Active Record
RPC: Protobuf, JSON, JsonMarshaller, HTTP
Tests: Hudson, JUnit, Lighthouse, Selenium, RSpec
Principles: REST, DRY, TDD
send your details to: