All Blogs
Written by Kiprosh, team of passionate and disciplined craftsmen turning your ideas into reality.
Kiprosh
is now part of
LawLytics
Written by Kiprosh, team of passionate and disciplined craftsmen turning your ideas into reality.
Recently we developed one feature where we wanted to present a new tab view for an existing smaller form interface whereby users can use the full screen of the new window to move around and use the feature with ease. While we were developing the feature, we came across few challenges and thereby few learnings which we thought would be good to share. 1. Caching existing values. We have around 8-9 forms from where we can use this feature but each of them have different implementation based on the requirement. So before we open the new tab - we wanted
Best way to learn writing software is to read open source code — Every Senior Programmer.Reading open source code is the best and effective way to tech yourself to write better code, especially if the tool is fairly new or the standards around that tool is still evolving. ReactNative is a perfect candidate for such a tool. It is under constant iteration cycle with APIs evolving with every release, Massive pool of libraries to chose from and very limited list of resources on how to move beyond getting started guides. Even otherwise, It is always a best practice to read
Recently while working on one of our project, there was a requirement of scheduling background job for processing some stuff once record is saved. So I written enqueue logic for job in after_save callback of record. But then job started giving unexpected results. After long time of debugging I found that job was not able to fetch record from db which was just saved and after some researching on it I got to know that sometimes job scheduled in after_save callback fails to access that record as it tries to process it before transaction actually completes, so if
We were debugging one issue in our application which was caching the scope we had in where clause for first_or_create in model callbacks - and found one interesting issue - Theconditions in the where clause were cached in after_create callback if we use where().first_or_create, please check example below - Example: Contact.where(first_name: 'Kiprosh').first_or_create Contact Model: after_create :sanitize def sanitize Contact.where(creator_id: 123).solr_index end This should fire Contact.where(creator_id: 123) but instead fires Contact.where(first_name: 'Kiprosh', creator_id: 123) On further
What is a property? JS DOM objects have properties. These properties are kind of like instance variables for the particular element. As such, a property can be different types (boolean, string, etc.). Properties can be accessed using jQuery’s prop method (as seen below) and also by interacting with the object in vanilla JS. Let’s take a look: <a href='page.html' class='link_classes' name='linkName' id='linkID'>Hi</a> $('#linkID').prop('href'); // returns "http://example.com/page.html" $('#linkID').prop('name'); // returns "linkName" $('#linkID').prop('id')
Ruby Comments There are basically two types of comments in Ruby. And they work in the same way as follows: The block comment The comment block is created with the =begin and =end delimiters. def welcome =begin This will print the welcome message. You can also add your custom message. =end puts "Welcome to ruby comments learning :)" end The line comment This is the simple comment where you place an octothorpe(#) as the first non-whitespace character of the line, and everything else written is excluded from being interpreted by Ruby. def welcome # This will print the welcome message.
Cordova File Transfer Plugin allows you to upload and download files. Installation cordova plugin add cordova-plugin-file-transfer FileTransfer: uploads a file to a remote server. Properties: onprogress: Called with a ProgressEvent whenever a new chunk of data is transferred. (Function) Methods: upload: Given an absolute file path, uploads a file on the device to a remote server using a multipart HTTP request. download: downloads a file from server. abort: Aborts an in-progress transfer. Upload: Parameters: filePath {String} : Full path of the file on the device server {String}: URL of the server to receive the file successCallback (Function}: Callback to be invoked
Web app had heavily evolved from times when web app was just meant to display some data using markup languages. There was a time when every software needed to be installed in every machine that want to use the software. Improvement in server side technologies, browsers and internet speed have fueled the phenomena of SAAS (Software As A Service). The rule of building a software has changed drastically. Most of the software that are developed today is developed by considering "use from any machine at anytime philosophy". There is a boom in SAAS market. More and more SAAS
We recently upgraded one of our app to Ruby 2.2.2 Bundle installed failed ...... crying about well known issue of Error installing gem with native extension, but this time for Gem json -v 1.8.3 Detailed error shows Fetching: json-1.8.3.gem (100%) Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby -r ./siteconf20151209-13741-vqcxt1.rb extconf.rb creating Makefile make "DESTDIR=" clean make "DESTDIR=" compiling generator.c linking shared-object json/ext/generator.so /usr/
If you have recently upgraded your Xcode to 7.1 version, you will start getting cordova/CDVViewController.h file not founderror. You would be surprised that earlier build was working perfectly fine with Xcode 6.4 and Xcode 7.0 To fix this error follow these steps: In Xcode select the project and go to Build Settings of the project and the Search for Header Search Path It will show you below shown screen. Double click on the Multiple values row and it will show you a list pop-up now add a new row to this list and add content