Browsing Posts published by admin

    The closest relationship of a software company is with its client and to maintain a close knit relation, the company needs to understand as its utmost priority to implement and execute the client’s requirement. At a stage when Business firms are striving to become unique achievers, a simple software package with readymade applications may restrict their winning possibilities. For procuring uniqueness in Business objectives, customized or customer-friendly software is the best option. The role played by custom software development brings output as desired by the client. Customized software is prepared on the basis of the requirements and preferences of the client. Tailor-made software prepared using the latest technology, only for the client’s purpose and not for the masses is what custom software development. Any complication or disapproval of the client that stems out can be modified at the time of preparation of the software with the client’s consent and this is where the foremost advantage of custom software development lies. Once the product is made and sold to the client, there is no need to modify the custom software as it is already made for perfection. In case of a pre-developed software package, a client may have to go through a rigorous process of restructuring their objective in order to compliment the software application (which is generally not preferred). Otherwise, they may have to contact the software manufacturer for modifications in the existing software to suit the requirements. This steals a lot of valuable time and money. The customized software is made for a single buyer or a group (a business firm) and thus the entire cost of development has to be borne by one customer which is not the case with off-the-shelf software. Post-development, custom software saves time as the client does not require modifying the package. The time consumed during the preparation of custom software may be more. But, this should not be a hurdle in choosing between pre-developed and custom software for a business firm’s specific purpose as the product’s life cycle may stretch during the development stages. And why does it happen? This is because; to procure perfect custom software as the end product requires rigorous probing to understand, analyze and accurately implement the ideas to shape up into a product. Again, pre-developed software may benefit in less expenditure, but the high cost during the development of custom software is due to intrinsic research and excess requirements as the product has to be a client desired output. The output brings desired business results. Some of the examples of custom software development include software for mobile phones (phone access, automated mail triggers on event, interfacing with extreme systems and high security reports), custom data base design and web applications (constructing company websites). A dedicated custom software company stays in constant touch with the client via tele-conference, phone or email and chat, irrespective of being offshore or onshore. This is the most important task as the needs can be communicated frequently and no scope for doubts is created. Both pre-development and post-development of the custom software require communication. The former would provide the software company with information needed to start the development and the latter would be required to explain the working of a software application and also to remove any possible discrepancies. The utilization of custom software procures faster, quality business results for the cost savings. A process-driven working model is followed by such companies which also involves pilot run and quality assurance tests. The team involved in developing custom software has sound domain knowledge and also is well aware of the competitors in the business. In a fast paced business world where every firm is ready to outdo the other, working with a software that suits and is modified to the company’s needs and preferences is a viable option or lets say is a customized option.

    Keywords:
    custom,software,development,company,product,application,software manufacturer,customized software

    A NEW PET(723) FROM PHILIPS

    Are you not able to entertain yourself when you are travelling? Then here comes a mindblowing gadget which will not let you get bored whenever you are away from home. Imagine when you are out for a family tour and suddenly during the journey you wish you had something to entertain you. Thats how I felt when I was on a long journey. Then I came to know about this Portable DVD Player which was recently launched by Philips. It’s Philips PET723 Portable DVD Player.

    After I brought this player, I could easily manage to entertain myself whenever I was away from home. It never made me feel as though I was really away from my place. Because it kept me busy all the while. It has a very stylish look, sizing about 7″ in its display. It has got an SD Slot where you are allowed to fix memory card of the capacity that you require to use.

    You dont need to control it manually. You can just keep it in a place and control it with a wireless remote controller. Whenever the battery charge seems to be low, you can always charge it with a standard charger. Apart from this, you are also provided with a car charger so that you charge it when you are on a drive. You can also watch TV in this player. There is a TV slot where you need to connect TV-out cable and start watching. It is a full on entertainment device.

    NEW IPHONE RADIO APPLICATION!!

    So you like to listen to free online music on your iPhone, but for whatever reason, Pandora or AOL Radio doesn’t cut it. Now you have another choice. Slacker, the folks with the personalized radio website, now have a free iPhone/iPod Touch application to listen to online radio while on the go.Like Pandora, you tell Slacker what artists and genres you like, and it produces custom station based on your tastes. Or, if you prefer, you can listen to one of 100 pre-programmed Slacker stations.

    If music comes on that you don’t like, you can skip it, but only so many times. If you want unlimited skipping, you have to pony up $3.99 monthly. It also give you Slacker ad-free. (Slacker usually shows ads on the screen while music is playing.)

    TA4 – Searching

    So I actually made the searching pretty easy on myself, and looked at it like a filter. The advanced search dropdowns had a bunch of default value that, if they didn’t change, simply returned the entire set. So if the user did not specify any criteria for a TA search, all the TAs would simply be returned. Since I took this approach, a class search and TA search had to be different; one would return only TAs, and one would return only classes.

    Google Appengine makes it actually really really easy to do something like this. Our TA model is named “Ta” and the instances of each course is “Section”. I imported the models into my page, and if it was a TA search I created a query object with “Ta.all()” which returned a list of all the Ta objects. For classes it was the same, with Section.all().

    Like I said, this returned a Query object (documented at http://code.google.com/appengine/docs/python/datastore/queryclass.html) on which I could use to filter out different results, if the person had actually selected something. For example, if the person had all the defaults selected and then picked “Native English” to be yes, the code looked like:

    1.
    query = Ta.all()
    2.
    if self.request.get(‘nativeEnglish’):
    3.
    query.filter(“nativeEnglish =”, self.request.get(‘nativeEnglish’))

    which will filter out the TAs that speak English natively.

    To match on reference properties is slightly more difficult than that. For instance, if I want to filter out TAs that have a specific major, what is actually saved in the major property of the TA table is not a string “Computer Science” but rather a Major object with the name “Computer Science”. So you can’t just do “query.filter(”major=”,”Computer Science”). You have to query a major object from the database like so:

    1.
    if self.request.get(‘major’):
    2.
    majorInstance = db.GqlQuery(“SELECT * FROM Major WHERE name = :1″, self.request.get(‘major’)).get()
    3.
    query.filter(“major =”, majorInstance)

    The text search was pretty painless, because Google has something that makes it super easy. If I type something in and I want to see if it matches any of the TAs, I just use:
    query = Ta.all().search(“Phillip”)

    One other note. Since the query object itself is an iterator, I don’t have to call the filter() method on it in order to iterate over the list. I simply filter down through the search options and pass the Query object to my template and iterate over that.

    References:

    http://daily.profeth.de/2008/04/er-modeling-with-google-app-engine.html

    http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#ReferenceProperty

    http://code.google.com/appengine/docs/python/datastore/queryclass.html#Query_filter

    http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Getting_an_Entity_Using_a_Key

    SVN With Mediatemple

    So I have dedicated hosting through Mediatemple (specifically the dv option) and I needed to create a subversion repository on it. Here’s what I did:

    A. Enable Root Access.

    B. Install Developer Tools in your Account Center.

    C. Root Login via SSH to your domain.

    1. Create SVN user and group

    groupadd svn

    useradd svn

    2. Startup the server as a daemon (-d), pointing to a particular repository (-r), is:

    sudo -u svn svnserve -d -r /home/svn

    From here replace *repo_name* with your own!

    3. Create your repository

    svnadmin create /home/svn/*repo_name*

    4. Create the temporal structure for the repository like trunk, branches and tag

    cd /home

    mkdir site && cd site

    mkdir trunk

    mkdir branches

    mkdir tag

    5. Import this structure into your new repository:

    svn import /home/site file:///home/svn/*repo_name* –message “Creating initial repo.”

    6. Delete the temporal structure directory

    rm -R /home/site

    7. Your new repository is installed and working.

    8. Now you can add the SVN group for all users who will commit to the server.

    cd /home
    chmod -R 775 svn
    chown -R svn:svn /home/svn

    9. You can add more users in this way:

    useradd *username* -g svn
    passwd *username*

    10. Checkout your repository:

    svn co svn+ssh://*your_username*@*the_domain*/home/svn/*repo_name*/trunk

    I got this through a little trial and error, as well as these 2 links:

    http://mind.psychopsia.com/subversion-svn-repository-on-media-temple-dv-35/

    http://kb.mediatemple.net/questions/143/Using+Subversion

    I came across this super weird functionality when in the last SMP project.  It really makes absolutely no sense why Python would behave like this.  Of course, trying to find things via the all-knowing Google proved inconclusive.  Here’s what was happening.

    First, I have a Stack class that is definedlike so:

    1. class Stack:
    2. def __init__(self, initial = []):
    3. self.container = initial

    The reasoning behind that is that I wanted a default constructor that could initialize a Stack to not have anything in it, as well as initialize a Stack that already had some pre-defined stuff.  Since you can’t overload methods, you can just do default parameters giving you (seemingly) the same functionality.

    I was sorely mistaken.  It took about an hour of trying to track down the problem, but in using that class definition something unexpected happens.  Say I have the following code:

    1. mystack = Stack()
    2. mystack.push(1)
    3. mystack.push(2)
    4. mystack = Stack([3, 4, 5])
    5. mystack.push(6)

    You should think that at the end of that code, the stack would just contain 4 and 3.  However, it actually contains all the elements, 6, 5, 4, 3, 2, 1 in that order.  Wtf?  I would think that if I wanted to call a constructor that it would actually create for me a new object.  The only way I could find around it was to take out the default parameter in the constructor altogether like so:

    1. def __init__(self, initial):
    2. self.container = initial

    And declare a new empty stack like so:

    1. mystack = Stack([])

    And then it seems to work just fine.

    PLAY EASY WITH WIRELESS KEYPAD FROM SONY!!!

    You must have been fed up of entering text with a playstation controller because its very wierd and uncomfortable to type text while you are playing. But thanks to Sony for releasing its user friendly and Wireless Keypad. Recently I visited one of the Sony showrooms and thats where I came to know that Sony has released this wireless keypad designed especially for PlayStation 3.

    I feel much comfortable while playing games on PS3 whenever I need to enter the passwords or any other text. You can sit at a distance of even 5mtr away from your screen and still the wireless keypad works as good as it works at a shorter distance. When I saw the demonstration of the keypad in the showroom of Sony, I was so impressed by the features that I immediately bought one for myself. And guess what? I paid just $50. Unbelievable right? But you got to believe this.

    There are several features of this wireless keypad. It consists of battery since its wireless which can be charged by plugging via USB cable. This can be used with other Bluetooth enabled devices also. Isn’t it a wonderful gadget? Just get one for yourself and make your life go easy.

    NIKON’S GP-1 GPS!!!

    Travelling had been a childhood passion. Photography came inevitable. Photos in my numerous albums sparkle with memories of those wonderful and awesome places. Being an ardent lover of travelling, buying latest cameras and recorders were necessary. Nikon’s GP-1 GPS unit was something I recently caught hold of. Technology has advanced fairly to higher extent with things coming up totally to surprise us. So did this GPS unit. I was awestruck and felt it my eagerness to share with others.

    Nikon’s GP-1 GPS unit can be attached to the hot shoe of Nikon or to the strap, along with an adaptor. It tags the photos by recording the altitude, latitude, longitude and time of any particular place. The photos are uploaded using software like Nikon’s ViewNX software. The GP-1 unit takes few seconds to receive the satellite signals in any place. Time varies from 45 seconds to 5 seconds. It has three light indicators; solid green implies detection of three or four signals; just green means it has detected three and the last red flashes to indicate the absence of recorded GPS satellite data.