When you are working on web development, only working fast isn’t enough – you’ve to work smart. At work I use Windows as my operating system because my work involves using a lot of Adobe tools that do not run on Linux.
Here I’ll be sharing two things that I found made my work faster and smarter.
Create scripts to automate your tasks
Analyse your workflow and list out the tasks that you repeatedly preform. Make sure you are listing out the activity that you repeat, and not only the ones that you do often. So, they could be anything like preparing a Photoshop document for logo design which happens only about once a week or so, or something as frequent as opening a particular folder.
I noticed that I open a couple of particular folders quite often – the ones that contain the designs that I’m working on, my web root directory and the folder where I store generic assets for design projects. So I created a set of batch files that contain the commands that I regularly use. Batch files are really useful little files that can automate things for you.
Some examples that I use are simple ones like
explorer "D:\Designs"
and some more bigger ones like this
mkdir "Project"
cd "Project"
mkdir "UI"
cd "UI"
mkdir "css"
mkdir "images"
mkdir "scripts"
cd..
copy ..\HTMLStarter\home.php UI\home.php
copy ..\HTMLStarter\css\components.css UI\css\components.css
copy ..\HTMLStarter\css\reset.css UI\css\reset.css
copy ..\HTMLStarter\css\style.css UI\css\style.css
copy ..\HTMLStarter\scripts\jQuery.js UI\scripts\jQuery.js
copy ..\HTMLStarter\scripts\app.js UI\scripts\app.js
If you haven’t guessed, I use this one to create a folder to hold a new web project. It basically copies some files from a folder called HTMLStarter, and places them into appropriate folders like css, scripts and images. The actual script mainly only copies the HTMLStarter folder, and renames it to Project, but I’ve rewritten the script here to show what it exactly does.
Another interesting script that I wrote was one that opens three Explorer windows. This came through because while working on HTML-ization, I frequently refer to the project’s wireframes, layouts, and slices that are stored in folders named based on their content. I’m yet to refine that script to open those three folders within the project main folder that I specify, but the current implementation is also a time saver.
I save these batch files in a folder whose path I’ve added to my Command Prompt’s PATH environment variable. That lets me execute those batch files from any directory in the command prompt.
Similarly I’ve created Actions in Photoshop that let me prepare new documents for web design, complete with guides, starter layers, etc.
Sublime Text 2 and ZenCoding
The editor that you use can speed up or slow you down. It’s that app that as a programmer you live with pretty much all of your time. Currently Sublime Text 2 is my editor of choice. Multiple cursors, easy file switching, and blazingly fast search are what attract me to it. Combined with the ZenCoding plugin, it makes HTML development really quick and easy. ZenCoding lets me write HTML using abbreviations, like div#myID>ul.cotnainer>li*3. Expand that after typing and you get this HTML
<div id="myID">
<ul class="container">
<li></li>
<li></li>
<li></li>
</ul>
</div>
Imagine how fast that can let you code.
ZenCoding in CSS lets me write abbreviations like
bdt+
and expand it to
border-top: 1px solid #000;
or write “brad” and expand it to border-radius declarations for Webkit, Mozilla and IE vendor prefixes. It really makes the editor get out of your way.
I also use snippets and macros a lot. They let you store frequently used code slices and have them expanded using abbreviations. Macros let you perform actions repeatedly.
These tools and tricks let you take out small repetitive things out of your workflow and let you concentrate on creating awesome stuff. After all editors, files and documents are only a by-product of the experience that you create.
–
Nikhil Tailang - UI Developer, Kodeplay
Posted in Design > Development on January 24th, 2012 by kodeplay>
While developing a fairly complicated application such as a social network, starting with an existing platform or a framework can prove quite useful. Frameworks handle a lot of low-level stuff so that we can concentrate on the real deal that the application has to offer. So before starting to develop such applications, choice of the platform or a web framework quite clearly becomes an important decision.
This post is about an evaluation that we carried out at kodeplay for deciding the best-fit opensource platform for a social network application we were looking to kickstart. Although we had past experience of working with quite a few frameworks in php and java, it was important to make sure that we knew what others are capable of too and that we are not missing something good offered by them. Language was not a problem as long as it was not radically different from what we are good at for eg. python, ruby were fine but erlang or clojure were out of question. To some extent we were also looking to take advantage of existing social network solutions or as they are called social network engines.
So after considering some platforms, it finally narrowed down to these four -
1. Elgg
2. Oxwall
3. Pinax (based on django)
4. Diaspora (based on Ruby on Rails)
But before that, A Disclaimer!
These frameworks/platforms were evaluated keeping the task at hand in mind. The reasons we based the final decision on are subjective. So this blog post will not answer questions such as “Which language or framework should I learn ?”. It will definitely not answer the question “Which is the best framework or language?” because we believe there is no answer to this question! It compares frameworks and out-of-the-box solutions together and we are aware that we are, and infact, want to actually compare apples to oranges.
The evaluation was based upon the following factors broadly
Required Features already included or externally available
A social networking app can grow into a monster one with lot of different functionalities. So the basic thing we were looking at was, how much of what we require is already present in the system, even if its not exactly what we need.
General Approach of code
Ready made things are of no use if they are pain to customize to specific needs. There are other things that matter too such as readability (the ease of understanding the code by reading), ease of customizing the existing features and modifying the existing theme, modularity of features, well tested code (unit and functional). We were also concerned about how different aspects of web programming are implemented such as MVC pattern, Database design and Db layer used, templating, forms etc.
Familiarity of language/framework and nature of the learning curve if there.
Our competence at the moment is mainly LAMP and JAVA. Its important to keep the learning curve in check too.
Ease of deployment
Again, coming from a PHP background, where deploying code is so easy, we needed to consider this as well.
Presence of an active community and source code availability (bonus points for source code hosted on Github
)
Comparison
| Approach/Feature |
Elgg |
Oxwall |
Django+Pinax |
Rails/Diaspora |
| Language |
PHP |
PHP |
Python |
Ruby |
| Framework |
own |
own |
Django |
Rails |
| MVC |
not exactly |
yes |
MTV of django |
MVC |
| Custom Routing/pretty-urls |
no (convention-tied) |
yes |
yes |
yes |
| Database Arch. |
entity+metadata tables |
normal |
normal |
normal |
| Database Layer |
magic! |
DAO + Service + Entity |
ORM |
ActiveRecord |
| Templating |
horrible |
Smarty |
Django TS |
dspra: haml,sass |
| i18n |
yes |
yes |
yes |
i18n gem avlbl |
| Modular apps |
yes |
yes |
yes |
no |
| Plugin system |
yes |
yes |
no (apps instead) |
no |
| Source Code Hosting |
github |
private bitbucket |
github |
github |
| Community |
active |
active on forums |
active |
active |
| Development |
open |
closed |
open |
open |
| Ease of Depolyment (sub) |
easy |
easy |
unfamiliar |
unfamiliar |
| **Features Required** |
|
|
|
in diaspora |
| Events |
yes |
yes |
available |
no |
| Blogs |
yes |
yes |
yes |
no |
| Polls |
may be available |
no |
no |
no |
| Question/Answer |
available |
no |
available |
no |
| News Feeds/Wall |
yes (activity) |
yes |
available |
yes |
| Notification System |
available |
? |
django-notification |
yes |
| Bookmarks |
available |
? |
yes |
no |
| Forums |
available |
? |
available |
no |
The Result!
The above table pretty much captures the differences between these platforms and our views about them.
Long story short, the winner in the end was django/pinax.
To summarize briefly as to how the selection was done -
Elgg that initially seemed like the perfect fit was ruled out because much of the approach it follows is not what we subscribe to (mainly db design and html building using string concatenation) plus it looks like some learning curve to make it work and look the way we want.
Oxwall looked quite nice but it would mean learning a custom framework that is very unlikely to be used anywhere else in future. Moreover, Oxwall’s development is not quite open but happens over a private bitbucket account for certain reasons.
There is a lot of buzz around Diaspora and it looks good too but lost due of following reasons -
1. code still in alpha and a lot of reviews about bugs and security concerns with the initial release (which may or may not be true as of today)
2. few problems such as, no support for IE and https mandatory as the devs themselves admit.
3. familiarity of python/django > familiarity of ruby/RoR.
4. A quick search couldn’t find a way for developing modular applications in Rails (as in Django)
5. Diaspora uses a lot of stuff unknown to us which might result in the learning curve of these tools getting on top of the rails learning curve.
eg. haml, sass, thin, resque and what not. Sometimes seems to be an overkill as well.
Frankly, it was not entirely an unbiased decision between diaspora and pinax. Ruby on Rails wins in some aspects such as, built in support for testing. But surely, Django is a great framework and comes with great stuff such as the extensible admin app. There are python alternatives to the good things that Ruby offers such as Lettuce(Cucumber) and Fabric(Capistrano)
We could find a lot of “apps” both inside and outside pinax for the modules that we are planning to include for now (see table).
So Django has been decided. Lets see how the development goes
. In the meanwhile let us know about your thoughts on the same.
Tags: comparision, diaspora, django, elgg, python, rails, ruby, social network engines
Posted in Development > From Our Blog on November 17th, 2011 by vineet>
We’ve bought books, jewellery and gifts online. We’ve ordered electronic items from across the border and procured music we couldn’t get our hands on otherwise. We’ve bought, we’ve auctioned. We’ve done it all. So is that the end of the tunnel for e-commerce innovations? Have we really done it all?
Not yet. The latest revolution in e-commerce lets you set-up your own online mall. Complete with separate stores that can be run by a separate vendor each and yet unified in accessibility, not very different from a real life mall but with the ease of visiting one from the comfort of one’s home; no real estate issues, no parking problems, no electricity bills to pay and no facility maintenance. All those stores in one place for various vendors to login to and the users to buy from. Imagine integrating it all in a single application, the task! This is where selling and buying come of age.
Experts at Kodeplay have developed complete application for Multi-Vendors. With its E-commerce solution expertise, Kodeplay can build a multi-vendor online shopping mall for you with the following features:
- Built-In order placement and processing systems
- Buying and selling options
- Bulk requirement submission feature
- Secure customer and store owner registration
- Unlimited storeowner addition. Store owners can add their stores and products to the system with relative ease and sell or market from a single platform
- Unlimited categories and sub-categories addition
- Private control and order management for store owners
- Highly advanced design features
- Template customizations
- Payment gateway integration
- Product search and Favourite Store feature
To have that dream mall built, just contact Kodeplay and see your online mall come to life.
Posted in Development on January 1st, 2002 by Karan Ahuja>
The Internet came off age with the rise of Web 2.0 when everything could now be made richer and the user experience be made from good to great. And that applied to everything starting from Internet applications and social media sites to community portals and even Wikipedia.
Kodeplay offers development services using Web 2.0 for design, programming as well as product development. We design Rich Internet Applications and Rich Web 2.0 Internet Applications (RIA) using a whole host of technologies from Ajax and Comet to PHP, MySQL, Adobe Flash and Flex. We adhere to the strictest quality standards while integrating Web 2.0 Application Services into the client’s business processes and system environments.
- Custom Application Development
- Web Application Development
- Portal Application Development
- Inventory Management and Content Management Tools
- E-Commerce/Shopping Cart and Customer Service Applications
The deliverables as part of a Web 2.0 project as Kodeplay are:
- Consultation to document business process and provide technical specifications,documentation for marketing strategy and target audience promotion
- Prototypes using photoshop/fireworks with web 2.0 design to clearly outline the functions of the application
- Standards compliant html /css based web pages with semantic markup and search engine optimization
- Secure Server side script and database model with optimized performance to achieve speed and scale
- Complete unit testing along with Test Cases document
- Secure web hosting and annual maintainence with 24/7 supp
With all that is offered above, we ensure that you are best positioned to use the power of Web 2.0 and drive your business forward. So use the power now and request a quote. request a quote.
The Internet came off age with the rise of Web 2.0 when everything could now be made richer and the user experience be made from good to great. And that applied to everything starting from Internet applications and social media sites to community portals and even Wikipedia.
Kodeplay offers development services using Web 2.0 for design, programming as well as product development. We design Rich Internet Applications and Rich Web 2.0 Internet Applications (RIA) using a whole host of technologies from Ajax and Comet to PHP, MySQL, Adobe Flash and Flex. We adhere to the strictest quality standards while integrating Web 2.0 Application Services into the client’s business processes and system environments.
Posted in Development on January 1st, 2002 by Karan Ahuja>
People have traditionally had a need to connect and interact with each other. This happens through various media and about various topics and yet the basic need remains the same. Different clubs, forums, discussion panels have, over the years, served this need.
With the advent of the Internet and its spread, this need ported to the Internet and we saw online clubs and communities blossom to serve various groups of people. In such a situation, having a social network for your organization where all of your people can get together online and share or discuss ideas can do wonders for the connectivity between people at your organization. Such a portal, whether implemented at a school, a university or a corporate organization, gives the people involved a faster and better way to share ideas and store the discussion online for later reference. Start a community portal for your organization and see your people start buzzing with ideas!
To set up a community portal where your people can network and reach out, Kodeplay can help you customize your community portal that is not very different from Facebook and include the following features in it:
- Each user gets thier own Profile Page
- Multiple Networks
- Invite Friends
- Upload and Share Albums, Music, Videos, Blogs, Notes
- Message Wall with Share Links & YouTube Videos addons
- Message Inbox
- Sectional Search Criteria for each module
- Account & Privacy Settings
Allow us to set up your own community portal now and let your folks start sharing. Contact us now.
Posted in Development on January 1st, 2002 by Karan Ahuja>
Let’s face it, the digital era has revolutionized how data was traditionally stored and digital data is today the most effective and efficient way of storing content. It has almost become necessary to digitize data and make it time-proof and damage-proof. Organizations today are investing heavily on digitizing records for better storage and management. You too can store all your data and content online for its ease of reference and management. It is also multiple times easier to have the information updated with an online content management system so that only the latest of your information reaches your people.
Looking for a comprehensive content management system that can do wonders for the content of your site and let you manage it all with ease you never imagined? Kodeplay has the following feature to offer in its Content Management System:
- User registration and login
- Custom Themes , pages creation from a backend admin
- Addition of new posts from an admin panel
- Full Standards compliance
- Allows different types of users and permissions
- E-commerce plugins
- Blog Manager
- Forum
- Newsletter Manager
- Banner Manager
- Search Engine optimization
Posted in Development on January 1st, 2002 by Karan Ahuja>
With increasing traffic woes and long commutes making life difficult in the cities, users are increasingly resorting to the comfort of shopping from home in the recent years. The Internet has revolutionized this concept through online shopping and it only makes good business sense that your business be supplemented with an ecommerce shopping cart because:
- Your shop can be open 24X7
- The running costs of your online store will be negligible as compared to a physical store
- You can keep in better touch with your target customers through a customer database
- Your customers can be from across the borders too!
At Kodeplay, we have developed an E-commerce solution that has unlimited categories, unlimited products, unlimited manufacturers, product review feature, multi-currency and multi-language feature and payment gateway integration. The deliverables of any E-commerce project include:
- Consultation: we help you identify your strategy, target audience, nature of products and just about everything that your business needs to be up and running
- Custom Web Design and custom addons as per your business requirement
- Administration Console: to manage orders, customers and catalogs
- Automated Data Entry: to enter products, categories and existing orders
- Social Media Integration
In addition we will deliver a custom designed and standard compliant web-design that will wow your customers. Being well-versed with e-commerce business processes, we deliver a comprehensive e-commerce solution for your business so it can grow by leaps and bounds. That is exactly what the highly experienced teams at Kodeplay endeavour to give you.
So contact us now and give us a chance to help your business grow.
Posted in Development on January 1st, 2002 by Karan Ahuja>