Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Tuesday, October 26, 2010

MediaPacker - Utility to help pack your DVDs and CDs to the brim

Media Packer is meant to solve the following problems.
1) Allow good-fit packing of DVDs, CDs with given set of directories/files.
2) Intention is to semi-automate (i.e. provide suggestions to users) or fully automate the process of packing backup media such as DVD, CDs.
3) To be developed in Python for portability and ease-of-extension

InProgress:
1) Display media space occupied by a folder structure (files and directories).
File Size code snippet,
>>> import os
>>> b= os.path.getsize("/path/isa_005.mp3")
>>> b

File I/O tutorial
>>> f = open( 'test.txt', 'at')
>>> f.writelines( str(b))
>>> f.close()
>>> f = open( 'test.txt', 'rt' )
>>> s = f.readlines()
>>> s
Directory Size Lister (Check out the comments at end of blog to get info on )
Pydirstat. pydirstat is a really handy cross-platform, command-line way to generate information about disk usage. http://developer.berlios.de/projects/pydirstat/

Future features:
1) Add catalog and search facility to uniquely identify each media, add tags for folders/files and user comments.
2) Allow collaboration and sharing of catalogs among friends to share useful files.
3) Possibly use bit-torrent protocol for the sharing??

To be released under GPL.

See Also:
MediaPacker sourceforge account

Wednesday, October 6, 2010

Understand Source Code by Reading Code and Refactoring for Maintaining Large Projects

This list consists of one-liner tips to be used for easy lookup and reference.

Rewriting Code for Better Understanding (Coding Horror)

  • What I cannot create, I do not understand. [Richard Feynman]
  • "What I do not create, I do not understand."[Chris]
  • "It's easier to understand 600 tables than 100,000 lines of code." [PaulC on comp.databases.theory/2005]
  • Create a new project with blocks of code copied from old code. Refactor to reduce "old code smell"
  • Start refactoring by adding small tests to better understand code and act as regression tests.
  • Just scan through huge amounts of code till it starts making sense - "understand by constant exposure".
  • Create a text file to capture your understanding - briefly describe how the component works, realtions to other components, what it persists, its states, and source browsing/debugging tips you found useful.
  • Manually reformat a copy of the code - white space, and indented as per your personal style.
References:
  1. Working Effectively with Legacy Code
  2. Object Oriented Reengineering Patterns
  3. Refactoring: Improving the Design of Existing Code