Monday, October 29, 2007

A forgetful filesystem

We have this laptop running Open SuSE 10.1 installed on a ReiserFS. Recently all of a sudden a file - and a hidden file nonetheless - reverted to the contents it used to have at least several months prior. It being a hidden "dot" file makes it highly doubtful the owner modified it by mistake.

I am, quite obviously, a bit surprised here... The only explaination that comes to mind is that ReiserFS being a journaled filesystem, it for some reason rewound the journal. Now why it would do it - I have no clue. If you know the secret feel free to use the comments to enlighten yours truly and the others in the dark.

Tuesday, October 23, 2007

Resume


Boris Epstein
Malden (Metro Boston), Massachusetts, US (map)


Contact
E-Mail: borepstein@gmail.com
Phone: 617.816.9654

Summary

Strong analytical abilities derived from both study and hands-on experience. Enjoy challenge and uncertainty. Seeking a position where I could contribute and grow, both professionally and personally.

Technical Summary
Twelve years of full-time experience in the IT industry. That includes programming, systems administration (primarily various versions of UNIX and Linux) as well as network administration.
Participated in development, installation and maintenance of large-scale IT solutions in fields as diverse as telecommunications, financial, internet hosting, e-commerce, etc. Have experience developing standalone applications from scratch as well as working in a team. Diverse client interaction experience both domestically and internationally.
Operating Systems: UNIX, Linux, MS Windows (XP, NT), MS DOS, Apollo Aegis, VMS
Programming Languages: C/C++, PERL, JAVA, UNIX (C-Shell, Bourne, Korn), Tcl/Tk, PHP, Lisp/Scheme
Tools: Emacs, MS Office, FrameMaker, VI
Hardware: IBM-compatible PC, HP, SUN

Timeline
May 2007 - present
National Resource for Imaging Mass Spectrometry
Cambridge, MA

Provide IT and programming support for a unique research laboratory. Support a network consisting primarily of Linux, MacOS and Unix hosts. Participate in planning and purchasing activities. Customize various public domain applications for the laboratory's needs.

Coding is primarily done in JAVA and PHP with some UNIX shell scripting and PERL. The main focus of the effort is processing, analysis and storage of scientific graphical data. Due to the unique set of requirements for the process part of my responsibilities is determining and supporting the mix of third party and homegrown tools to be used for the task.

February 2007 - July 2007
Night Owl Deliveries
Boston, MA

On a part-time basis participated in the operation of an eCommerce restaurant delivery startup. Activities included IT consulting, data management, systems integration and sales.

April 2004 - present
Freelance writer and activist

Provide technical assistance to several online projects including Cooperative Research and New England JAVA Users Group.

In 2005, in the wake of Hurricane Katrina helped coordinate volunteer relief activities in the Gulf and personally participated in those activities.

July 2001 - April 2004
ARCON Corporation
Waltham, MA

Worked as a programmer involved in development and support of the ETMS air traffic management software for the FAA at the Volpe National Transportation Systems Center in Cambridge, MA. Specific area of concentration was the CDM component of the ETMS. The tasks included design and development of new functionality, as well as supporting legacy code. A large codebase together with the need for system reliability provide for a challenging task. The code was originally written in Pascal and later migrated to C.
The system was in essence a large transportation management system receiving and reflecting frequent (mostly once-a-minute) updates regarding the status of flights operating over the US airspace. Near realtime requirements were in place for processing and analyzing data which made for an exciting and challenging task.

December 1999 - April 2001

Boston Internet Group
Boston, MA

Performed multiple roles on a daily basis, including those of a senior system designer and developer, Windows NT and UNIX system administrator and web hosting support engineer. Key player in the technology planning and implementation area. As a sole expertise in a number of areas, including object-oriented design and development, networking, network security and systems management, advised other team members on various technology issues.
Main tasks included web site backend implementation for clients, in-house product design and implementation as well as day-to-day activities mentioned above. Most of the coding was done using object-oriented technology, with JAVA as a programming language of choice.
Provided critical insight which allowed to greatly improve stability and efficiency of the internal systems.
Clients included Davox Corporation (now part of Aspect Software), Pilates Store, Lobsters-Online, Inc. and others.

September 1999 - January 2000

Thomson Financial
Medford, MA

Worked as a UNIX administrator in a large-scale web and dataserver hosting facility. Was responsible for maintenance and troubleshooting of multiple industrial-scale UNIX servers in SUN, HP and IBM platforms. Performed database maintenance of SYBASE and ORACLE databases as well as data recovery and general server troubleshooting.

May 1999 - July 1999
GTE International (currently part of Level3 Communications)
Cambridge, MA

As part of the Y2K team worked on the remediation of custom SUN Solaris machines hosting clients' mission-critical WWW sites and applications. Complex upgrades and modifications had to be accomplished requiring an absolute minimum in customers' downtime. Tasks included upgrades of the OS, DB servers and various other third-party software. Custom scripting and coding was often required to facilitate the necessary transition.

November 1995 - May 1999
WorldCare, Inc.
Cambridge, MA

Originally hired as an outside contractor. Accepted a permanent staff position in a three months' time. Throughout my whole tenure was a critical part of a small and continually overtasked team.
Responsibilities included day-to-day maintenance and support of a network of UNIX hosts. Maintained code control systems. Designed and implemented a data backup/archival system for in-house use. Created web pages using HTML, PERL and JAVA. With the emphasis on publicly available software restructured the environment to optimize and economize the development and production process. Modified publicly available software for local needs using C, Tcl/Tk, PERL, JAVA, etc. Was also involved in equipment and software installation and support at client sites. Worked with medical applications and protocols including DICOM, ISG's VRS graphical application and AWARE wavelet compression. Wrote system installation and maintenance scripts. Modified and integrated various third party software packages. Worked with multimedia devices in medical data capture/processing systems. Set up and supported LANs and WANs.

July 1992 - November 1995
Kenan Systems Corporation (currently part of Alcatel-Lucent)
Denver, CO - Cambridge, MA

Participated in database design of SYBASE databases.As part of a product team supported development effort in a heterogeneous UNIX environment. Oversaw the operation of a distributed development environment which included multiple geographically disjoint locations. Wrote a suite of PERL scripts that encompassed the local customizations to ClearCase as required by the project. Other responsibilities included release/code management using ClearCase code control system, SYBASE database administration, system design activities.

Summers of 1990 and 1991
Unisys Corporation
Cambridge, MA

Participated in the development of ATMS (Automated Traffic Management System), an air traffic management and control system for the FAA. Coding was done in Pascal against a proprietary database. The network consisted of a multitude of Aegis hosts on the Apollo platform. The development was done under DSEE as an integrated code control and management environment.

Personal

Born in St. Petersburg, Russia in 1969. Have lived in the US since 18 years of age. Attended Tver University (website in Russian) in Tver, Russia; Boston University and University of Massachusetts at Amherst graduating in 1992 with a Bachelor's Degree in Mathematics/Computer Science in 1992.

References
Available upon request.

Wednesday, October 3, 2007

MediaWiki hack

This story did have a successful resolution, although a somewhat dirty one. After signing up to the MediaWiki mailing list and asking my question, specifically, how does one get the MediaWiki to search the text inside PDF files I received several tentative recommendations but no definite advice. The only sure thing I came across was this hack by one MHART.

The hack basically amounts to forcing the upload module to index a PDF file as it isbeing uploaded. The text is extracted from that PDF by means of pdftotext(1) and used for indexing. To do this, here is the hack. It is introduced to includes/SpecialUpload.php, function processUpload(). The function, by the way, seems a bit too long and convoluted to my taste and needs a redesign but let's not dwell on that for now.

So here is the hack (emphasis on added code):

. . .
if( $this->saveUploadedFile( $this->mUploadSaveName,
$this->mUploadTempName,
$hasBeenMunged ) ) {
/**
* Update the upload log and create the description page
* if it's a new file.
*/
$img = Image::newFromName( $this->mUploadSaveName );

/*
* Parsing the file if it is a PDF, by MHART
*/
if (strtolower($finalExt) == "pdf") {
$NewDesc = $this->mUploadDescription . "\r\n" . "","",$DocLine);
}
$NewDesc .= "\r\n" . " -->";
$this->mUploadDescription = $NewDesc;
}

$success = $img->recordUpload( $this->mUploadOldVersion,
$this->mUploadDescription,
$this->mLicense,
$this->mUploadCopyStatus,
$this->mUploadSource,
$this->mWatchthis );

...

Monday, October 1, 2007

Is Firefox too feature-rich for its own good?

I have recently been confronted with a need to integrate multimedia plugins of various kinds on our Linux boxes so that our group could have a uniform and consistent approach when it comes to multimedia. Easier said than done, I guess as if that were easy all Linux distributions would have had it in place. And some, specifically Open SuSE, leave much to be desired in that department. Others, such as Mandriva, are not bad at all, on the other hand, but it is Open SuSE we are using so it is up to me to do the multimedia integration.

Now finding various multimedia players and plugins doesn't seem like such a big deal - but getting them to work is a different story altogether. And what is puzzling me is how a browser - any browser, but I am specifically interested in Firefox as that is the one we use mostly - decides where to look for its plugins and which one to load. For example if there are two plugins available that could play a Windows Media file (let's say a MPlayer plugin and a VLC plugin) which one is the browser going to pick?

At any rate, my impression is that while Firefox is very powerful the controls and transparency necessary to configure it with ease are not there. At least not yet.

And if you know how to configure the plugins in Firefox - please email or leave a comment, help would be much appreciated.

In praise of MediaWiki

Well, something new to deal with every day... Or every week at least. The latest wonder I've come across was MediaWiki. Don't laugh - you may have had a Wiki site for years but me - up until very recently I had only been a Wiki user, not a Wiki administrator.

What can I say - this is a very nice piece of software. Installs right off the bat, easy to administer. I read the code a bit and it mostly makes sense right away too - which is, obviously, quite nice to know.

There is only one drawback that I have discovered thus far - it does not seem to be configured to search within PDF files by default, and that is exactly the functionality we need. Under Linux one has a very nice text extracftor for the purpose called pdftotext(1) that comes as part of xpdf. So technically it should not be difficult to implement this functionality under MediaWiki though I am generally somewhat reluctant to touch the code I don't own. The best I could get out of the users' forum was a suggestion to use the Lucene Search software but that looks like a whole can of worms in and of itself - and is not even guaranteed to actually do what I need done. But I guess this way or the other I will get through this one.

If any of you have any relevant experience - please advise, and your advice will as always be appreciated. But this little diffuculty notwithstanding MediaWiki really is very nice technology that does allow one to have a Wiki-style reference site up and running in under an hour.