Cat's Page
This is Catalin Patulea's little corner of the Web. This is mostly
a collection of programming and electronics projects, but there's some other
stuff too.
My e-mail address is: cat@vv.carleton.ca
Interested in live music in Montreal or Ottawa? Check out EPHEMERIS!
Blog blag blog: http://i-cat.blogspot.com/
My Stuff
- Hints on Spam Filtering with SpamAssassin
- PHP Photo Album Tutorial
- A really bad HTML Chat in PHP;
messages.html
must be Apache-writable
- A PHP Directory Listing Script that emulates Apache's (for when you cannot do
Options +Indexes
)
- Web-based Lyrics Database in PHP with MySQL; searches Google for new titles and caches in local database; schema and typical queries in
lyrics.txt
- Web-based Movie Event Management System (automated movie list retrieval, poll, ticket management) in PHP with MySQL
- Interactive Parabola Coefficient Solver in C (source code, screen shot); fairly straightforward, see readme for more information
- Server Availability Monitor in C (source code); see readme
- "Handy", a tiny, invisible, desktop hotkey utility (source code, screen shot); read the readme!
- "JoyBoard", a small joystick-to-keyboard converter (source code, screen shot); more information in the readme
- FrameGrabber.cpp, sample DirectShow
still frame grabber
- "GGraph", a data acquisition and graphing program (screen shot, source code)
- "LEDVis", a Winamp visualization plugin for LEDs attached to the parallel port (source code, hardware schematic, ports on the left are from the parallel por (power is supplied off-board, not from the parallel port), photos from top, top with power adapter, underside)
- "Strip3", an ID3 tag remover (source code); filenames given as arguments, recurses into directories
- "Temper", temperature sensor software (source code, hardware information coming soon, photo)
- Simple Web-based Collaboration Platform in PHP and MySQL; written for the student council of my high-school
- About the DWL-650+ wireless CardBus adapter
- "TorCap2", a transparent SOCKS redirector based on TorCap (source code zip, GitHub); more information in the readme
- MiniMedia, a tiny (2 KB) media player
written purely in assembly (assembly source
file, source package); read the readme!
- GDMode, a small utility that allows you to
switch the Google Desktop display mode from the command line (source code, readme) Warning: Broken
in recent GD builds!
- Desktop Netstat, a
Google Desktop plugin to monitor your
current network connections in realtime
v1.3a
- MsgLookup (download link down since WinUpack gets flagged as malware), a small utility (19K packed
with WinUpack) that searches a list of
over 1000 Windows messages by value and by name
(source code,
screenshot)
- A guide to making a band-stop audio filter in VirtualDub
(sorry, it's in Romanian, but it's mostly screenshots)
- "SocketStd", a code snippet in C for
redirecting a console application's I/O to a socket
- Magnifier, another Google Desktop plugin to magnify the
active part of your screen
- A guide on Opening EXE Files Directly in
Firefox (Use with care!)
- An algorithm for merging two ordered lists into
a third ordered list (or for generating both set differences) in O(m+n)
time
- "Minimalist In-Process Interface Marshaling:
Implementing in-process cross-apartment COM interface marshaling without type libraries or registry changes.",
article on CodeProject
- ShareIt, a Google Desktop
gadget that allows you to easily share items with your
Google Talk friends:
text snippets, web addresses, images and pictures, files!
- Carleton Central Timetable Enhancer
Greasemonkey script
- alameda 0.1, an open-source Linux
JAD (Java Application Descriptor) downloader for Motorola phones
(see the readme)
- SYSC 2001 Assignment 2 Test Harness, helps test
the implementation of the instruction set thoroughly and automatically
- SSD0303 AGSI Simulation Module,
simulates a SSD0303 display controller as in the Stellaris LM3S811
Evaluation Board
- linloader,
a Linux boot loader for the Olympus m:robe 500i personal portable media player;
read the readme!
- "Lessons from RMI Hell", explanations of some
more subtle issues when RMI interacts with hash tables, garbage collection and
dynamic stubs
- "Drawing Circles on a Tight Budget",
a presentation for IEEE Carleton University Student Branch's
IEEE Papers Competition
about "using an 8-pin PIC12F675 microcontroller, harmonic oscillator theory and
software PWM to generate in-phase sine and cosine signals" (source code)
- Reverse engineering a remote controlled fan: RF electronics and home automation
My Contributions
Here are small things I've contributed to various projects or communities:
- "Drastically" improving query speed of the Metasploit Opcode Database (see 2.4 Release Readme, under "The Opcode Database now includes ...")
- Patches to the WINE Project, to fix Unicode output in winedbg (in CVS 30/06/2003) and to make winedbg understand both Unix and DOS-style pathnames (in CVS, but deprecated)
- Patch to net-tools 1.60's
netstat -p
to properly handle processes that muck up their argv[0] (ala setproctitle(3), i.e. sshd's child processes)
- Patch to procps 3.2.3's
w
command to allow filtering by group, sorting by username (instead of tty) and display of IP address when hostname is too long
- Patch to class.jabber.php
0.4.2,
implementing an SSL connector
for Jabber servers supporting SSL on a separate port (such as the Google
Talk server)
- Contributed in
Mozilla Foundation Security Advisory 2006-57: JavaScript Regular Expression
Heap Corruption
- Patches to Neuros Technologies'
OSD product, including
fixing kernel build warnings,
fixing busybox kconfig-style configuration,
integrating some drivers into the kernel tree,
minor fix to bootloader configuration.
About Me
Master's Software Engineering student at Carleton University; member of SCESoc. Here's a map of the Carleton campus with two-letter building codes.
Programming is a hobby for me, and I'm good at it in Windows and Linux... but I've been known to program for the NES, Palm, PICs and NIOS. C, C++, Java, Visual Basic, Perl, Bash, PHP, ASP, HTML, CSS, JavaScript, SQL, the works.
- "Structured Procrastination",
a great article by John Perry
- Wikipedia - amazing!
- BT Tracker Tracker
- MSDN Library - good reference for lots of things
- Visibone Colorlab - very handy
- Graph of TCP state machine - explains many of
those "mysterious" FIN_WAIT_1, CLOSE_WAIT, etc. states you see in netstat.
- The CCS2 "Box Model"
at the W3C
- A very interesting post on CodeGuru
about the
internal storage of floats and doubles in C++.
- Refrence of
C++ I/O manipulators (endl, setw, setprecision, etc.)
- "HyperPhysics", a
very comprehensive educational site about physics, chemistry and other
sciences
- "Hello World" Programs
*chuckle* *chuckle*
- Changing xterm's definition of a "word" when it comes to double-click selections
- Assembly Language Programming Resources ("ASM Gems")
- Collection of assembly gems (Intel and Motorola) and "Tiny Programs" such as 61-byte Mandelbrot generator, 80-byte Pi calculator, etc.
- Integer multiplying by constants, multiplying by constants without using MUL (but instead combinations of SHL, ADD, LEA, SUB and MOV)
- Integer division by constants, the same idea but different mathematical basis (a little more advanced; includes obtaining both quotient and remainder)
- Assembly Language Lab, collection of assembly algorithms and in-depth analysis of impact of prefetching, pipelining, caching and MMX/SSE
- In the same vein - Bit Twiddling Hacks
- Agner Fog's "How to optimize for the Pentium family of microprocessors"
- FXT: a library of algorithms
- "A few frequently used SSL commands" (openssl)
- "ActiveX Control Fundamentals", an article on writing a fully-compliant minimal ActiveX control in 8 functions (no ATL or MFC)
- SVK, a "decentralized version
control system built with the robust Subversion filesystem", and related
workflow,
tutorials and
single-user guide; provides an elegant
solution to many problems which can, to varying degrees, be described as
repository mirroring, local branches, disconnected repository
access, etc.
- "How to crack a Linear Congruential Generator", by Haldir[RET]
- Explorer Suite, "[c]reated by Daniel Pistelli, a freeware suite of tools including a process viewer and a PE editor".
- Implicit Type Conversion Operator with a Good Piece of Pi
005956 since 06/10/2005