| | Chat with OSSCube
  • About OSSCube
    • Core Team
    • Partners
    • Locations
    • Investor Relations
    • Careers
      • SugarCRM Application Manager
      • MySQL Instructor, DBA and Consultant
      • Senior Symfony Developer
      • Senior Drupal Developer
      • Senior SugarCRM Developer
      • Senior PHP Engineer
      • Technical Sales Engineer
      • Flex Developer
    • News
    • Events
    • Blog
  • Services
    • Enterprise 2.0 Development
    • Open Source Products
    • Open Source Training
    • Engagement Models
  • Technology
    • Linux
    • MySQL
      • MySQL Architecture & Design
      • MySQL High Availability
      • MySQL Migration
      • MySQL Performance Tuning
      • MySQL Remote DBA
    • PHP
      • Symfony Development
    • Web 2.0
  • Solutions
    • SugarCRM
      • What is SugarCRM
      • SugarCRM Editions
      • Why Choose SugarCRM
      • Why OSSCube
      • SugarCRM Case Studies
      • SugarCRM Jobs
      • SugarCRM Services
      • SugarCRM Support
    • Symfony Development
      • Hire Symfony Developers
      • Symfony Case Studies
      • What is Symfony
      • Why OSSCube
      • Why Symfony
    • Drupal
      • Drupal Services
      • Drupal Support
      • What is Drupal
      • Why Drupal
      • Why OSSCube
    • Business Intelligence
    • Moodle
    • Health Care Development
      • CCHIT/EMR/EHR Development
      • Custom PMS Development
      • Why OSSCube
  • Training
    • MySQL
      • MySQL Cluster
      • MySQL High Availability
      • MySQL Performance Tuning
      • MySQL for DBA
      • MySQL for Developers
    • Zend Training
      • PHP Certification Training
      • PHP I: Foundations
      • PHP II: Higher Structures
    • SugarCRM
      • Introduction to SugarCRM
      • Building Effective Workflows
      • BI and Reports Development
      • End User Training
      • Admin Fundamentals
    • Symfony & Doctrine Training
    • Ruby on Rails Training
    • Python Training
    • Customer Testimonials
    • Schedule & Pricing
  • Customers
    • Education
    • Government
    • Health Care
    • SaaS / Web 2.0 / Mobile
    • Technology
    • Case Studies
  • Resources
    • Blog
    • Pictures
    • Presentations
    • Videos
    • Sitemap
  • Blog

Home› Blog

Experiences at GNUnify presenting Papers on MySQL

Posted by sonali on March, 10th 2010

GNUnify is one of the major annual FOSS events here in India. Organised by the students of Symbiosis Institute for Computer Science & Research and the Pune Linux Users Group (PLUG), GNUnify is an event of consequence in the Indian FOSS ecosystem. This year, the conefrence took place on Feb 19th and 20th in the wonderful city of Pune.

I submitted two papers on MySQL and fortunately both of them were selected. Thanks to the organising team, who were helpful enough to schedule both sessions on the second day on request, since I would not have been able to make it on the first day. But more of that later. Let me recount the experience of GNUnify 2010.
The conference was very well organised. The students took good care of everything at the conference. There was not a single issue that would need any resolution. Team GNUnify, Great Job! Yes, the shceduling of the events on the second day was a bit loose, and it was mostly a student crowd but that is more about how Pune is.
I gave two presentations at the conference. One on MySQL Performance Tuning best practices and one on MySQL Stored Procedures. Both the presentations were very well recieved by the audience. In the first session, I walked the participants through the best practices of setting up MySQL and optimising it. In the MySQL Stored Procedures session I focussed on how we can achieve MySQL Optimisation by writing routine processes as stored procesdures.
I am including both my presentations below:
MySQL Performance Tuning - GNUnify 2010
View more presentations from OSSCube
MySQL Stored Procedures: Building High Performance Web Applications
View more presentations from OSSCube
I am still waiting for the videos and images to come out, once they do I will update this post and add them here as well.
It was also a wonderful experience to meet other FOSS enthusiasts and speakers at the conference, and the students. The Mozilla team was also present at the event all gung-ho! It was fun to interact with Arun and Seth. Discussions with Shantanu about MySQL Replication and Shell Scripting were very interesting and refreshing. But for me the best was the discussion I had with Venkat on Collaborative Innovation. He also made a very interesting presentation on the same - was not to be missed. Vivek Khurana and Abhishek Nagar did a good job or keeping things in sync at the conference, Kudos to them.
I am looking forward to the next GNUnify and hoping for a bigger participation from OSSCube then.
Tags
Events
CommentLeave Comment

What to Expect from Creative Commons Salon Delhi

Posted by kinshuk on February, 27th 2010

With only a day between us and Delhi's first Creative Commons Salon Delhi, I am getting many calls about what to expect from the event? Will it be boring? Will it be fun? Will it be worthwhile on the eve of Holi? I think, it is best I pen down my thoughts here for a general use.

Why 28th? It's one of the most pertinent questions. Mohak and I wanted to do the event on a weekend (we want to do all out events on weekends); weekends are most convenient for everyone. The wireside chat with Lawrence Lessig was scheduled for Feb 25th and the weekend nearest to it is Feb 27-28. Now Feb 27 is TEDx Gurgaon, so the only logical choice was Feb 28 - sadly, Chhoti Holi. Given the event timings - 1.30PM to 6.30PM, it should not be troublesome for anyone to make it to the event without disrupting their holi plans. Hopefully.

So, what are the sessions? Two: The Wireside Chat with Lawrence Lessig and a talk on Open Educational Resources by Dr. Savithri Singh. Even though we are telecasting a recorded chat with Lawrence Lessig, the chat has been instrumental and successful globally (look at the twitter hashtag #wireside). Lawrence, in the chat, has addressed many issues including copyright in a digital age, and the role (and importance) of a doctrine like “fair use.” Fair use allows limited use of copyrighted material without requiring permission from the rights holders, and is essential for commentary, criticism, news reporting, remix, research, teaching and scholarship with video.

After the telecast, we will have Dr. Savithri Singh talk about Open Educational Resources and WikiEducator. Open Educational Resources include anything uses in the educational context including learning designs, software, open standards & specs, design patterns, and content including Open CourseWare. Dr. Singh will talk about what are OERs and how to build one, why are they relevant, and why they are critical to Open Education.

After the Session by Dr. Singh, we begin with open house sessions. The idea behind these sessions is to promote discussions, interactions and networking between the participants and share their views and experiences on Sharing, Open Access, Creative Commons and Licensing.

As far as I understand, this social sandbox will be immense given the participation we are having - a major chunk is the blogging community, then are artists, photographers, creative professionals, lawyers and students. Given this composition of participants, not only this sandbox brings together people from diverse backgrounds but also presents varied perspectives to sharing, licensing and copyrights.

During these sandboxes, we expect a lot of ideas and content to be generated and shared amongst the participants and the global community in general. Do follow the event live on Twitter with the hashtag #ccsdel and be a part of the discussions. We are also working out how best to live stream the event. Keep watching for updates.

Post these sandboxes, we will move to creating a road-map for the CC NCR Community and figure out how to proceed forward. Remember, nothing is possible without your support. Be there to make a difference ;)

In this post, I will also like to acknowledge the support extended by various individuals and institutions. Niyam Bhushan has been a great help in ideation and setting the direction of the event. We hope to make the event more appealing with his guidance. CC India has also helped us every possible support in promoting the event, though we were late in making contact with them. Thanks to iCommons and Open Video Alliance for sponsoring the event. Sarai for being the event hosts and accepting all our cranky requirements from the venue. Mohak has been very instrumental in setting up the whole show; wouldn't have been possible without his passion and energy. Yadu has been extremely creative in doing all the art assets for the event.

In the spirit of promoting the open source and open access ecosystem, we have been doing a lot of community events including OSScamps. We believe that with your support, Delhi's first Creative Commons Salon will be a huge step forward in our initiatives as well.

The event flyer made by Yadu:

Tags
community , creative commons , delhi , event , india
CommentLeave Comment

Creative Commons Salon Delhi on Feb 28th at Sarai

Posted by kinshuk on February, 23rd 2010
CC Salons are global, informal events focused on building a community of artists, developers, and creators of all kinds around Creative Commons licenses, standards, and technology. The first event took place in San Francisco in 2006 with the idea to replicate in other locations internationally. Since then salons have sprung up in cities around Whether you're familiar with Creative Commons or are brand new to the concepts behind it, we encourage you to check out a salon near you. Come and be a part of Delhi’s First Creative Common Salon on February 28th at Sarai, CSDS. The event’s objective is to start the social collective of artists, developers and creators around the Creative Commons Licenses and standards.

DETAILS

  • What: Creative Commons Salon, Delhi
  • When: Sunday, February 28, 2009 - 2 PM to 6.30 PM
  • Where: Sarai-CSDS, 29 Rajpur Road, Civil Lines, Delhi - 110054
 SCHEDULE
  • 1.30 PM - Organiser’s Note + Introduction + Open House
  • 2.00 PM - Playback of Wireside Chat with Lawrence Lessig (Playback of 45 minute chat given by Mr. Lessig on February 25th 2009 with an additional 30 minutes of Q&A session)
  • 3.30 PM - Open Educational Resources by Dr.Savithri Singh
  • 4.15 PM - Focussed Sessions on Software Freedom, Creative Commons and Licenses
  • 5.00 PM - Open House + Networking Sessions
  • 6.00 PM - Roadmap for future CC Salons Delhi.
  • 6.30 PM - Concluding Note

EXPECTED PARTICIPATION A lot of content creators and thought leaders such as artists and conceptualizers are expected to participate at Creative Commons Salon Delhi. Also, an important chunk of the audience will be developers and from the technical domain.

Contact Kinshuk Sunil, Manager, Community & Relations OSSCube (+91 99100 24895)

Updated Event Details: http://wiki.creativecommons.org/Delhi_Salon

Tags
Events
CommentLeave Comment

5 Tools to Develop AAA Games

Posted by yadu on February, 9th 2010

In an earlier article titled ‘Getting Started with Game Development’, published in the December 2009 issue of LFY, we looked at the skeletal structure of a game, and had a cursory glance over some open source libraries and tools. This time around, we will look at five specific open source tools that are used frequently in many AAA titles.

To begin with, let us highlight the key functions within the game. Every time you run a game, a piece of software that is called the game engine loads itself into the memory. The game engine is like a kernel for the game. It will manage all resources, levels and your in-game progression. Everything that you see, hear or do, is managed by the engine. The engine itself is a collection of services that provide these capabilities.

Once the engine is loaded, it uses the rendering subsystem to set your screen and start the game interface—legal screens, intros and menu systems. Using this rendering and the game logic through the game engine, you begin your gaming session. Every thing that you see is taken care ofby the rendering engine. So, we will look at a rendering engine—OGRE 3D to be specific.

A very integral part of your game experience is also the sound design and implementation. Without good sound integration, it will be very difficult for a game to sweep you off your feet. We will look at one of the cuttingedge sound libraries out there, called Open AL.

Now, since a game is an emulation of the real world, it has to have the richness and detail of the real world. There are two aspects to this: visual richness and behavioural richness. Things not only need to look real, they also have to behave real. The models and textures used in your game, plus the capabilities of your rendering engine will determine the first aspect, while the physics and AI employed in your game determine the later. We will look at Blender and how it can help you with visual richness, while we will consider the Bullet Physics library to see how physics and AI can be taken care of.

Lastly, a great multi-player experience is something that adds a lot of value to your game in the current networked world. We will look at how RakNet helps in adding that bang to your multi-player experience.

Since we are looking at five tools—all in one—we will keep it simple this time and work individually with each tool at a later opportunity. Also, since we don’t claim to be experts in the field and are only learning, most of the content here is derived from our researches over the Internet, rather than personal experience.

Open Graphics Rendering Engine (OGRE 3D)

Object-Oriented Graphics Rendering Engine (or OGRE, for short) is a highly modular graphics rendering engine. Its job is to interface through the available render systems to connect to the underlying graphics hardware on your computer, process the required data and send it to the display device through the graphics hardware. To put it more clearly: OGRE takes all your levels, players, along with the pretty images and sends it to your graphics card for processing. It does so by connecting to one of the two interfaces available -- DirectX or OpenGL. Through one of these render systems, the data is sent to the graphics card to be processed and displayed on your screen.

OGRE is written in objected-oriented C++ with many language bindings available for developers using other languages. It is clean and easily-understandable code, has an immense amount of documentation (API, wikis and forums) and a highly active developer community ( forums and IRC channels), which makes it a suitable choice for all sorts of development requirements. It sure does take an experienced C++ developer with some graphics programming experience to actually go into the details and understand the inner working of the behemoth, but with a good knowledge of STL and object-oriented programming in C++, you can be well on your way to making games or other applications that require a 3D rendering engine.

OGRE is highly modular—its pluggable architecture makes adding new features a cakewalk. From custom scene graphs—that is, compositors that post process your screens to input and GUI systems—almost everything can be plugged in and used.This level of abstraction from the underlying system gives developers more time to work on the bigger picture rather than get down and dirty, pushing vertices around.

OGRE is a scene graph-based engine, with all of OGRE’s scene managers plugged in to the root of the engine. OGRE comes with an octree, BSP and Paging Landscape scene manager that has support for progressive LOD (level of detail)—automatically or manually created—with many others written and supported by its 10-year-old community.

This multi-platform engine runs on Linux, Mac, Windows and other platforms like the XBox360, PS3 and the iPhone, to name a few. Its flexible licence makes it an optimal choice for both Free/OSS and commercial projects. OGRE was earlier distributed under the GPL and LGPL, but from 1.7 (Cthugha) onwards, it uses the MIT License.

OGRE is purely hardware driven—it runs on your graphics hardware, dedicated or otherwise. There has always been a question of why unlike other engines (like IRRLICHT, with multiple software renderers for fallback) OGRE sticks to being purely hardware driven. The simple answer is that it focuses on cutting-edge technology and supporting the latest hardware-driven features. OGRE tries to stay lean and mean, focusing on what it does best, and letting others do what they do best. It supports Vertex and Fragment programs as well as shaders written in GLSL, HLSL, Cg and assembler.

A recent addition to OGRE's feature list is the new compositing manager and its scripting language. The compositing manager gives the developers full screen post processing for effects such as blooming, blurring, noise, HDR and much more. OGRE has an animation engine with full hardware skinning support and also complete pose mixing. This enables you to blend between animation poses, giving you smoother and more realistic animation. It also comes with a highly extensible particle manager with customisable emitters and effectors.

Apart from being a wonderful graphics rendering engine, OGRE also deals with minimal windowing, memory debugging, input, GUI systems, resource loading and management, to name a few. There are many community projects that also deal with content creation, as well as the export and import of pipelines for the engine.

OGRE can be seen in action in many free and open source interactive applications and games, as well as in many commercially successful projects like Jack Keane, Venetica, Torchlight and Zombie Driver, to name a few.

Open Audio Library (Open AL)

Open AL is a free, cross-platform audio API. The API and coding conventions resemble Open GL, and the library has the best multi-channel 3D positional sound support. The library is, currently, supported by Creative Technology and Apple, with an active community backing. It is an excellent DirectSound alternative.

The library models a collection of audio sources moving in a 3D space that are heard by a single listener somewhere in that space. The basic OpenAL objects are: a listener, a source, and a buffer. There can be a large number of buffers, which contain audio data. Each buffer can be attached to one or more sources, which represent points in the 3D space that emit some sound (audio). There is always one listener object (per audio context), which represents the position where the sources are heard—rendering is done from the perspective of the listener.

The source objects point to an audio buffer, besides the velocity, position, intensity and direction of sound. The audio buffer is the audio data. The listener object contains the velocity, position and direction of the listener (mostly your in-game character). With the help of these three objects, OpenAL helps recreate natural 3D sound in the virtual world (with natural effects such as the Doppler Effect). The library is built with an extensible architecture that makes it very agile and flexible for the future as well.

The API is highly cross-platform and binaries are available for the following platforms: Mac OSX, iPhone, GNU/Linux (OSS/ALSA), BSD, Solaris, IRIX, Windows, Xbox/360, AmigaOS 3.x, and MorphOS. New platform support is not likely in the near future, but this in itself is an exhaustive list.

And if you are wondering what games use Open AL, the following are just some examples: Battlefield 2, Bioshock, Colin McRae: DiRT, Doom 3, Ghost Recon: Advanced Warfighter, Lineage 2, Quake 4, Race Driver: GRID, and Unreal Torunament 2004. The Open AL is also an integral part of the id Tech 3/4/5 and Unreal Engine 2/3 engines.

The library is licensed under LGPL. To work with Open AL, look at the detailed walkthroughs on Open AL by Dev Master (www.devmaster.net/articles.php?catID=6).

Blender

Once an in-house production software and later freed by its creators, Blender is the animation/CG industry's new kid on the block. Blender is a multi-platform 3D graphics application used for modelling, texturing, rigging, animating, etc. Its source code was opened and it is now released under the GNU GPL. It is also a very powerful tool when it comes to UV unwrapping, 2D/3D painting, skinning, sculpting, water-creation, physics, particle simulations... and no, the list doesn't quite end yet, but goes on to include post production tools as well, like a non-linear editing suite with a compositing tool to boot. Blender can also be used to create interactive 3D applications and games. It is available on multiple platforms including Linux, Windows, and Mac OSX. There are official and unofficial ports to other popular operating systems as well.

Blender has a light footprint and an intuitive interface, and covers almost all features of its commercial counterparts, even doing a better job at some places. Blender goes a step further to be a single resource for all your 3D production and post-production needs. It treads into real-time rendering and games with its integrated game engine. Not stopping there, Blender provides game logic, real-time physics and a workflow that connects your asset creation pipeline to your post-production and extends it to the realm of game development.

If you have worked on games or animation projects, you will have seen that both share a very similar development/production pipeline, only dividing towards the end, where one is rendered offline and the other in real-time. So it is an obvious choice to extend a well-built 3D production and animation suite to game development. Most of Blender is written in C/C++ and Python. It can be extended using plug-ins and can be customised using Python scripts as well.

Blender sports many of the features that are on par with 3D CGI production powerhouses, like Maya and Softimage. It supports a variety of geometric primitives, including polygon meshes, Bezier curves, NURBS surfaces, metaballs, fast subdivision surface modelling, digital sculpting, and outline fonts. It supports key-framed animation tools including inverse kinematics, armature (skeletal), hook, curve and lattice-based deformations, shape keys (morphing), non-linear animation, constraints, vertex weighting, soft body dynamics including mesh collision detection, LBM fluid dynamics, bullet rigid body dynamics, particle-based hair, and a particle system with collision detection. Blender renders geometry in all its glory -- lit, textured and composited with the integrated YafRay ray tracer.

It has an intuitive interface, but it still can be a bit of a steep learning curve for even those who have experience in other 3D graphics applications like Maya or 3D Max, apart from those who have no previous experience. It will take almost the same amount of time to master Blender as it will to get comfortable with Maya and Max.

The Blender foundation tries to stay focused on creating cutting-edge tools and adding new functionality in Blender, while trying to make the learning process easy by conducting workshops, releasing DVDs, updating the wiki, tutorials and other documentation. The ever-growing community of Blender artists fuels the fire that burns in the hearts and minds of everyone involved with Blender.

Bullet Physics

Bullet Physics is a professional collision detection, rigid body and soft body dynamics library. The library is free for commercial use under the ZLib License. The library is under active development and its roadmap includes support for CUDA, OpenCL, and the fracture of rigid bones.

The library is a cross-platform library and supports Playstation 3, Xbox 360, Wii, PCs with the Linux and Mac OSX, and the iPhone. It has a very advanced feature set:

  • Discrete and continuous collision detection including ray and convex sweet test. Support for all basic primitive shapes and concave/convex meshes.
  • Fast and stable rigid body dynamics, vehicle dynamics, character control and slides, hinge physics, plus twist constraint for ragdoll physics.
  • Soft body dynamics for cloth, hair/fur, rope objects and deformable volumes, supporting two-way interaction with rigid bodies plus binary constraints.
  • Integration with major development tools such as Maya, Blender and COLLADA.
  • Completely written in C++ and the source has been open sourced under the Zlib License.

As Bullet is fairly unknown in the general gamer circles (unlike Blender, OGRE and Open AL), you may be wondering which projects have used it. How about: Grand Theft Auto 4, Sony's Free Realms, and 2012 (last year's Hollywood blockbuster). Bullet Physics is also included within the RAGE Engine of Rockstar Games.

RakNet

RakNet is a cross-platform, open source, object-oriented networking library for game programmers, written in C++ by RakkarSoft. A lower-level framework powers the higher-level features such as game object replication, voice chat, and patching binaries.

It is a DirectPlay alternative touted as being better than the DirectX component due to its simpler integration. The library uses UDP for all network connections and is written primarily for game development. The library is available in three different licensing models: GPL, shareware and commercial licences. RakNet also offers free licences for indie developers.

The major features of the library include:

  • Object replication: Automatically creates, destroys,serialises and transmits game objects
  • Player lobby: Database-powered lobby with support for friends, rooms, quick matches, and ranking
  • Secure connections: Support for SHA1, AES128, SYN cookies and RSA
  • A robust communication layer with automatic flow control, message ordering on multiple channels, message coalescence, and splitting and reassembly of packets.
  • An autopatcher to automatically patch the software at the gamer’s end with the latest updates
  • Support for the various C/C++ remote procedure calls.
  • Support for voice communication, including bindings for Port Audio, FMOD, and DirectSound, besides NAT Punchthrough for voice support over P2P applications.

As it’s also used as a commercial tool, most applications of RakNet are protected under NDAs. So a finite list of games using RakNet is not freely available. However, RakNet is being used in a number of games by Epic Games China, Codemasters, and the Unity Engine. It was also used in the games Crashday and Hyperball Racing.

In a nutshell

Yes, yes, the tools look totally awesome, we know... and they sound jam packed with features and efficiency. Yes! You will be surprised with how frequently they are used in major titles. We suggest you check out the Further Reading section and try out these tools for yourself.

Step up and reach out—all the awesomeness is within reach. Sing the song!

Further Reading

  • OGRE 3D Websites: http://www.ogre3d.org/
  • OGRE 3D Features: http://www.ogre3d.org/about/features
  • The Story of OpenAL: http://www.linuxjournal.com/article/4400
  • About Open AL - http://connect.creativelabs.com/openal/default.aspx
  • List of Games using Open AL - http://connect.creativelabs.com/openal/OpenAL%20Wiki/Games.aspx
  • Applications of Open AL (Wikipedia) - http://en.wikipedia.org/wiki/OpenAL#Applications
  • Blender Website: http://www.blender.org/
  • Blender 3D Features - http://www.blender.org/features-gallery/features/
  • Community of Blender Artists: http://blenderartists.org/
  • Bullet Physics Features List: http://bulletphysics.com/Bullet/BulletPhysics2.74_2.htm#_Toc223854815
  • Bullet Physics on Google Code: http://code.google.com/p/bullet/
  • The Bullet Physics Issue List - http://code.google.com/p/bullet/issues/list
  • Working with Bullet Physics: http://bulletphysics.com/Bullet/BulletPhysics2.74_2.htm
  • RakNet Features List: http://www.jenkinssoftware.com/raknet/index.html
  • Visual Guide to RakNet Features: http://www.rakkarsoft.com/raknet/manual/RakNetMajorFeatures.html
  • RakNet Licensee List: http://www.jenkinssoftware.com/licensees.html

Written by Kinshuk Sunil and Yadu Rajiv. Originally published in LinuxForYou February 2010

Tags
Open Source
CommentLeave Comment

How can Social Platforms work in India - Looking for some answers at Social Media Club Meet #2

Posted by kinshuk on January, 25th 2010

On Jan 16th I was at the Social Media Club, Delhi's second meet up. The topic for the meet was 'How can Social Platforms work in India'. It was presented by Mayank Dhingra and Dipankar Sarkar, who used their first hand experience of kwippy as a case study. To discuss the event in brief, let me tell you what kwippy was.

Kwippy enables one to integrate their IM status updates with the product. So, apart from regular microblogging feature, it also catches your IM statuses and when’er you update IM status, it goes as a kwipp to all your followers. (Thanks Pluggd.in!)

So, Mayank and Dipankar launched kwippy in 2007 and by late 2008 they closed it down - after a delayed investment decision and almost getting (tech)crunched. They had a story to tell - why did this happen?

This is what they learned:

  • Most social platforms in India are improvisations of western social platforms for the Indian market. Innovation is hardly there.
  • The challenge with building a social platform is to build something users will like and, more importantly, want. Ensuring that they keep wanting it. Keep adding value to the offering and aligning the business interest of the product while managing the aforesaid.
  • The challenge is not only in designing a shining product but also ensuring that it is accessible.
  • Making money is very important to stay in business. Don't loose the focus.
  • Manage the perception of the product in your user's mind and media. Position it well.
  • The 80:20 Rule - 80% of your users use 20% of your features only. Don't overload your app with features. Add only that which makes sense.
  • From the user's perspective: Interface Design  and Interface Usability is very important. As important is the reliability of the product - delivering the features in a timely fashion.
  • Why is it tough to get investors to invest in your product? - Their is hardly any innovation!
  • The First Mover's advantage can make or break a business. Example: Slideshare is doing better than its technically superior competitors due to the first mover's advantage.
  • Managing Social Platform projects is all about managing chaos - don't compromise with the individual. The project management is a big fail if you expect people to work like you. Make your processes and workflows such that they are not interfering and let the person contribute his best. Don't hamper your team's activities.
  • Having a team is a lot more important than everything else.
  • Mentoring can wait. It never contributes as much, in any case. Focus on building your teams. That is what will take you forward in the long run.
  • All Social Media apps are a clone of one basic idea: "Someone commenting about something"
  • There is a good opportunity to make international apps based on APIs right now, plus, interoperability is the future (Reminds me of sn:afu *sniff*)
  • It was their frustration with work (they were working at Slideshare) that needed a creative outlet and they came up with kwippy. See! A bad work experience isnt that damaging to your careers. Point is:  Hey there, Mr. Grumpy Gills. When life gets you down do you wanna know what you've gotta do? Just keep swimming. Just keep swimming. Just keep swimming, swimming, swimming. What do we do? We swim, swim.

It was, all in all, a very useful insight into how small startup teams are working towards innovation. The same applies to what Twitter and Facebook did right - small projects that are now huge behemoths. By the way, Twitter still doesn't have a business model -  something, Mayank's extra emphasis on a business model, kept coming back to me. What did I tell him?

"At some point of time, it seems to me that folks at kwippy started not having fun and working more towards a business. I guess its pretty important to have fun all the way and not loose focus. Do you know what I am doing? I am building an application for India, which I know will never work in India - Social Matrimony, just for laughs" I was glad that everyone had a good laugh then, including Mayank and Dipankar.

Tags
Events
CommentLeave Comment

Experiences at India Twitter Conference

Posted by kinshuk on January, 25th 2010

On Jan 9, I participated at the first India Twitter Conference. Organized by Compare Infobase, it was a conference on and about Twitter and how it is being used by Indians. It was organized as a panel discussion by some prolific tweeters from the country on 'Is Twitter Indian in Character?'.

The panelists included:

  • Kanchan Gupta - Associate Editor of the Pioneer
  • Saad Akhtar - Runs Flyyoufools.com, a popular, web comic
  • Pramit J Nathan - Heads Idea to Impact, a branding consultancy
  • Simarprit Singh - Founder of TwitSnaps.com, CEO- Compare Infobase Ltd
  • Lydia Polgreen - South Asia correspondent- New York Times
  • Sidin Vadukut - Managing Editor- Livemint.com at HT Media Ltd

The discussion started at around 3pm and continued till 6 in the evening. While there was not much new to the discussion and nor was anything new to learn about Twitter, there were some great insights into what Twitter is and how it is being used.

Twitter, for instance, was described as an experience in Chandni Chowk. Such is the social integration at Twitter that you are almost always with someone you know on Twitter. A phenomenon described as always being with someone you know.

But the business implications of Twitter were obviously the most interesting topic in the conference. A special emphasis was on how Twitter is an effective medium, but also were discussed the ethical issues of ghost-tweeting, or how celebrities outsource their tweeting  to social media agencies.

An example was given by Simarprit: to check if Mallika Sherawat tweets for herself, he asked her a question in Punjabi one day, after around 6 hours he got a very generic reply in English. Later in the night, he sent another tweet in Punjabi to her and got a prompt reply in Punjabi. He concludes that while sometimes Mallika herself tweets, during the day (at least) it is a social media agency tweeting for her.

Another issue discussed was how Guy Kawasaki and other famous Twitter Celebrities use Twitter. And it was an interesting point to be made that now Twitter is like a new Media Source - like a customizable headlines reel that can guide you to news you care about lightening fast. Another important point was - to be successful on Twitter, you need to understand why you are tweeting.

There were similar many insights into the social and Indian character of Twitter and why Twitter clicks in India.

If you are still not on Twitter, it would be a nice idea to join Twitter. You can find OSSCube at Twitter at @OSSCube

Tags
Events
CommentLeave Comment

Congratulation Mohit for joining the prestigious group of ISTQB Certified Testers

Posted by pranab on January, 11th 2010


Hello All,

It is a great pleasure to share with you all that Mohit has successfully cleared the International Software Testing Qualifications Board (ISTQB) Certified Tester Foundation level exam with 85% and joined the prestigious group of ISTQB Certified Testers. On be half of OSSCube family, I would like to congratulate him for the success!!!

Cheers
Pranab

Tags
Life@OSSCube

Suggested Reading
  • December 10, 2009 -- Yet another feather in our Chief Mentor's cap
  • November 02, 2009 -- ePrescribing – what, why and how?
  • November 02, 2009 -- I am Airborne!
  • October 20, 2009 -- HL7 Standards : A key to deal with healthcare interoperability issues
  • October 14, 2009 -- Pathway to CCHIT Certification
CommentLeave Comment

Object Relational Mapping

Posted by ashutosh on December, 16th 2009

Object Relational Mapping (ORM) integrate object programming language capabilities with relational databases, managed by different relational database managers like MySql, Oracle etc.

ORM has information about the object model in our application and knows how to transfer or map object instances data into our relational database structure and vice versa.It hides and encapsulate the changes made in the data source; whenever data sources or their correspondign API changes one only needs to change the ORM and not the application which uses ORM to data transformation.

Thus we can say that ORM is a technique for data conversion between two different type of systems with respect to how they handle data in their respective systems.

While developing the applications using Object oriented language like Php etc, we deal with objects and their instances to play with the data. And in most of the time we store the data on a permanent storage using some relational DBMS like MySql etc.

The root cause is, objects can't be directly saved to and retrieved from a relational database. Objects have their respective identity, state, and behavior in addition to data associated with them while an RDBMS stores data only. And there is no direct mapping between Objects and RDBMS data types, hence we need a method for Object- Relational integaration; Which could help us to map object with RDBMS to ease our work of data transfomation between Objects and RDBMS.

While dealing with objects a developer need to convert the object values into groups of simpler values for storage in the database and convert them back into objects type upon retrieval. And we also need to change data transformation method if/ever we have different data storage source, i.e.for each type of storage type separately.The ORM perform the same work, therefore instead of writing own method of data transformation one can use the pre-developed and well tested available ORM for the languages we are using.

Apart from the data transformation work an ORM has support for various DBMS.
It has capability to provide its own validation for the various data which can be very handy.

There are different programming languages to go with and similarly we have different ORM to choose with respect to our chosen language. For Php we have some well proven and tested ORM to go with. Some of them are Doctrine, Propel, Rocks etc

In this section we are going to have some light on the Doctrine :

Doctrine is an ORM for PHP 5.2.3 + which does not require any external libraries to run and it uses PDO (Comes officially bundelled with PHP) for database function call abstraction.
Hence, before using doctrine in the application one needs to confirm whether installed PHP has version 5.2.3+ and PDO is installed.

Doctrine has two main layers; first is DBAL (Data Base Abstraction Layer) and ORM. The DBAL is responsible to interact with PDO (Basic Cross-Databae API) and completes and extends the database abstraction provided by the PDO.

The main concept of Docrine is the Doctrine Query Language (DQL). By using the terminology of domain model: class names, fields name, relation between classes, etc. it expresses queries for an object or for a full object graph.

After installing the Doctrine a bootstrap file should be created for various initialization purpose of the ORM. The main part of this bootstrap file is the creation of connection parameter;

For connection in doctrine we have different appraoches like initializing a new PDO instance.
$dsn = 'mysql:dbname=test;host=localhost';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
$conn = Doctrine_Manager::connection($dbh);

but directly passing a PDO instance to Doctrine_Manager::connection() will not allow Doctrine
to be aware of the username and password which is required by Doctrine to be able to create and drop databases, hence we explicitly need to set username and password for connection object

$conn->setOption('username', $user);
$conn->setOption('password', $password)

The second approach is lazy database connection which should be preferred.

$conn = Doctrine_Manager::connection('mysql://username:password@hostname/dbname');
This is callled lazy connection since, Doctrine will only connect to database when needed.

Configuration for Doctrine can be defined for various levels viz for global level, for connection level or for table level.

Afer making initial configuration (installation, configuration, connection buildup etc) the main work is to define model to be used by the Doctrine for the application. And for developers sake Doctrine has support for generating doctrine_record claasses from existing database. Thus it reduces manual work to write all the doctrine_record classes for the domain model.

To genetrate model Doctrine provides its method :
Doctrine_Core::generateModelsFromDb('models', array('connection_name'), array('generateTableClasses' => true));

where models:the directory where the generated record files will be written to
connection_name : name of the connection for which model is to be build
and from the created/existng models we can create YAML schema file to manage models and generate PHP classes from them.

To be able to use all model classes we need to load the classse and for which we have Doctrine_Core::loadModels('/path/to/models'); this segment should be added in bootstrap file If we want we can go vice-versa, i.e we can create our database using availabe model classes and YAML schema file.

Now once the models have been defined we can perform the various query for the same. Some of the examples for the sake of simplicity are as follows;

Select query
$q = Doctrine_Query::create()
->select('field_name')
->from('class_name')
->where('condition');

To see the query generated we can have
echo $q->getSqlQuery();
to execute the query
$res = $q->execute();

for insert data
$table = new table_class();
$table->property1 = 'value1'
$table->property2 = 'value2'
$table->save();

for updation
$q = Doctrine_Query::create()
->update('table_class')
->set('field_njame','value')
->where(condition);
$q->execute();

for deletion
$q = Doctrine_Query::create()
->delete(table_class)
->where(condition);
$q->execute();

These are some basic DQL(Doctrine Query Language) examples, for more detail we can refer to its available resources

Hence, when we have a need to map object data with DBMS data or/and need to write multi DBMS based query or need to write a query in a less complex way one can go for a suitable ORM.

For Further reading on Doctrine http://www.doctrine-project.org can be accessed

Tags
MySQL
CommentLeave Comment

11 things to keep in mind when writing your HTML

Posted by yadu on December, 14th 2009

We all know HTML; chances are that at least once in our life, we must've seen and worked with HTML or markups in general. For those of us doing any web development, we regularly eat, sleep and occasionally dream HTML, apart from other things. We might've learned these things during our years of working with markup; but just in case, so as not to forget, I'm writing them down.

  • HTML is for defining content! HTML markup is used to define your document and give it a semantic structure.
  • Know what each tag does, what all attributes they share and what makes them different. Understanding this will give you a clear idea of what type of tag you need to use with different types of data.
  • Using a strict DOCTYPE can save you a lot of trouble later.
  • Know and understand the Box Model.
  • Know and understand the difference between a block level element and an inline element.
  • Know and understand that certain elements can contain other elements while other cannot.
    - You can have multiple paragraphs in a div; But you cannot have a div inside a paragraph or a paragraph inside another paragraph
  • Use attributes and metadata and as much accessiblity information as possible. This can make your website accessible to anyone over any platform using any hardware
  • Keep in mind that each tag has a default set of attributes assigned to them and they can be manipulated using css later on if needed.
  • Just because a tag changes its appearance of its contents to something you want doesn't mean it can be used to do so. Tags are used to define the content they hold and Styles(CSS) are used to change its appearance.
  • Avoid applying inline css like the pleague! Absolutely no inline css, attributed or tags that affect the appearance of your output!!
  • Know when to use classes and Ids. Know the difference! Ids *must not* be used on more than one element. They have a higher precedence when it comes to styling.
    #container .myStyle { ... } will win over .myStyle { ... }

Apart from these, there might be more things you've come across, feel free to add them as a comment below.

Tags
Web Development

Suggested Reading
  • September 17, 2008 -- Web 2.0 Expo, September 16-19, New York
CommentLeave Comment

Yet another feather in our Chief Mentor's cap

Posted by kinshuk on December, 10th 2009

Folks, with great pleasure we’d like to break the news that Lavanya Rastogi, our chief mentor and cofounder, has been inducted as the Vice President for Global Networking in the Academy for Global Business Advancement (AGBA). Lavanya will now be responsible for propagation of AGBA agenda and initiative in various countries of the world, bringing closer the economies and forging mutual trade.

For the uninitiated, AGBA is a not-for-profit institution established in the year 2000 in Texas. Today it proudly boasts of more than 1000 members including scholars, corporate leaders, consultants, government officials, and entrepreneurs across more than 50 countries. By connecting scholars across developing countries with that of the developed world, AGBA seek to accelerate the process of globalization.

Speaking on the appointment, Prof. Zafar U Ahemed, President and CEO AGBA expressed his confidence on Lavanya to “bring in the much needed velocity, focus and sustainability.” This added responsibility comes in quick succession after Lavnya’s appointment as ACCS Executive Committee member. Here at OSSCube, we are confident that he will successfully continue with his role in building synergies among thought leaders in the academic and corporate fields of all parts of the world.

Tags
Life@OSSCube

Suggested Reading
  • January 11, 2010 -- Congratulation Mohit for joining the prestigious group of ISTQB Certified Testers
  • December 10, 2009 -- Yet another feather in our Chief Mentor's cap
  • November 02, 2009 -- ePrescribing – what, why and how?
  • November 02, 2009 -- I am Airborne!
  • October 20, 2009 -- HL7 Standards : A key to deal with healthcare interoperability issues
CommentLeave Comment
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • next ›
  • last »

Connect with us…

  • OSSCube Community Initiative "OSSCamp"
  • OSSCube in Video
  • OSSCube in Pictures
  • OSSCube Slideshare Channel

  • Subscribe…

    • Receive Blog Updates as Feed
      ( Subscribers Subscribers)
    • Receive Blog Updates as Email
    • Follow OSSCube on Twitter
      (1181 Followers)
    • Latest News
    • Polls
    • Upcoming Events
    • Videos

    • Experiences at GNUnify presenting Papers on MySQL
    • What to Expect from Creative Commons Salon Delhi
    • Creative Commons Salon Delhi on Feb 28th at Sarai
    • 5 Tools to Develop AAA Games
    • How can Social Platforms work in India - Looking for some answers at Social Media Club Meet #2

        • Experiences at GNUnify presenting Papers on MySQL
        • Creative Commons Salon Delhi on Feb 28th at Sarai
        • How can Social Platforms work in India - Looking for some answers at Social Media Club Meet #2
        • Experiences at India Twitter Conference
        • Wordpress is the Overall Best Open Source CMS 2009

        Latest In Photos

        Authors

        • kinshuk
        • sonali
        • vineet
        • lavanya
        • ashutosh
        • yadu
        • priyanka
        • pranab
        • anil
        • ankur

        Tags

        • Careers
        • community
        • conference
        • creative commons
        • delhi
        • Drupal
        • event
        • Events
        • gnunify
        • india
        • Life@OSSCube
        • Linux
        • MySQL
        • Open Source
        • ORM
        • PHP
        • platforms
        • sugarCRM
        • Symfony
        • testing
        • Training
        • Web Development
        • Zend

        Archives

        • March 2010 (2)
        • February 2010 (3)
        • January 2010 (3)
        • December 2009 (5)
        • November 2009 (4)
        • October 2009 (10)
        • September 2009 (3)
        • June 2009 (2)
        • May 2009 (6)
        • April 2009 (2)
        • March 2009 (9)
        • February 2009 (11)
        • January 2009 (1)
        • December 2008 (4)
        • November 2008 (5)
        • September 2008 (2)
        • July 2008 (3)
        • June 2008 (4)
        • May 2008 (3)
        • February 2008 (2)
        • December 2007 (8)
        • October 2007 (1)
        • July 2007 (7)
        • June 2007 (2)


        Home  |   Careers  |   About Us  |   Contact Us
        All Rights Reserved. ©2009, OSSCube.