We need 100 copies of the file, with different names



  • I manage a certain line of digital products at one of the places I work.  Sadly, I often have to work with our Marketing department.  When they are not changing industry standard terms to make our products more "appealing" to consumers (e.g. inventing new words to add "pizazz" - "Who knows what an eBook is?  Let's make up a new word for it!"), they are sending me requests like this one below.

    A certain series of products is about to be released and made available on our website.  Each individual product has the exact same user manual in PDF format.

    I need to provide marketing (who is in charge of our e-commerce site) with 100 exactly duplicated PDFs, one for each product in the series, but with the file name changed slightly to be prefixed with the internal product number of each product the manual will come with.  A product number which is only used internally, and has absolutely no significance to the customer least of all on the PDF of the user manual because the manual itself already has it's own product number, and isn't ever sold or provided separately from the product.

    They don't understand my objection.

    Time to whip out my AppleScript reference book to write a little script taking a CSV file of product numbers and duplicating/renaming the PDFs.  I have a feeling I'll be using that script a lot in the future.  *sigh*


  • Garbage Person

    @KrakenLover said:

     

    Time to whip out my AppleScript reference book to write a little script taking a CSV file of product numbers and duplicating/renaming the PDFs.  I have a feeling I'll be using that script a lot in the future.  *sigh*

    No. Do it by hand. Or at a minimum, script it and then sit around doing fuck-nothing for the balance of the time it would have taken you to do it by hand. These fools should be punished for their idiotic requests.


  • @Weng said:

    @KrakenLover said:
    Time to whip out my AppleScript reference book to write a little script taking a CSV file of product numbers and duplicating/renaming the PDFs.  I have a feeling I'll be using that script a lot in the future.  *sigh*
    No. Do it by hand. Or at a minimum, script it and then sit around doing fuck-nothing for the balance of the time it would have taken you to do it by hand. These fools should be punished for their idiotic requests.
     

    That's not enterprisey enough. Also, keeping the same file around a hundred times is a waste of disk space. What you need is a mapping of acceptable file names for each file and a CGI application that allows a number of URLs to link to the same file. You could store this information in a database but you really need an enterprise data source that can work with any number of data sources: SQL Server, XML, MySQL, Oracle, DB2, CSV, Access, Excel, Twitter, and other common file and database formats. Then you need an easy-to-manage and easy-to-develop front-end for adding files to the system and maintaining the URL-to-file mapping, for example an ActiveX plugin. For maximum flexibility you'll definitely want to include an OCR engine so someone can hand-write the file mapping on a sheet of notebook paper, set it on a clean and preferably wooden table, take a picture, scan the picture, and submit it to the management application. That way you can avoid all the common errors your data entry interns will make when they manually type the data into your datasource.

    Then you'll have to develop your CGI application to take a URL and figure out the correct file to download. For maximum performace you should write the application in C and use assembly for the critical logic. It'll need to be portable so it can run on any server hardware so you'll need to find good assembly-language programmers who are knowledgeable in several operating systems and CPU architectures. Once this CGI application is written you'll be ready for beta and user-testing.

    Next you'll need to include logic to track the number of downloads for each possible file name along with the browser, OS, screen resolution, download speed, IP address, country, social security number, mother's maiden name, city of birth, and Zodiac sign for each user who downloads from this service. Of course, this is a ton of really-detailed historical information which can mean only one thing: you'll need to conjure up at least a couple dozen grand to set up a properly-licensed enterprise Oracle data warehouse with lots of failover clustered nodes and carefully-managed table partitions and indexes and high-speed fiber optic data links and other cool stuff. You can dump all that download information there and write a report utility that will process all the data and create some statistics and charts for your managers to look at. For security reasons this reporting component should only work on a PC which is not connected to the Internet. This PC needs to connect to the Oracle cluster using an RS-232 serial cable and all networking and data processing should be implemented using JavaScript. Once the JavaScript finishes it should hand off the results to an ActiveX plugin which will use the industry-standard GTK+ library to render pretty graphs while maintaining compatibility with a wide range of operating systems.

    All in all, you can probably get this project done in a mere six weeks and your managers will love it! Just think how much this will streamline your business processes!



  • Can't you just make a REST method that accepts anything for the last part of the URL and return the file no matter what?



  • @KrakenLover said:

    A certain series of products is about to be released and made available on our website.  Each individual product has the exact same user manual in PDF format.

    Wouldn't it be sensible to have an entry in the manual that lists the products that it relates to, and then just serve up the same PDF?

    I realise from the OP that a sane discussion with your marketing person/people might be out of the question.

    Failing that, can you get them to send you a separate request for each PDF that they need you to create?  Maybe they'll get bored before you do...



  • @frits said:

    Can't you just make a REST method that accepts anything for the last part of the URL and return the file no matter what?

     

    There are about a million ways that would be a better alternative.  But, marketing is in control of the website.  And what marketing wants, marketing gets.

    There's also a third party vendor in the mix along with an ancient legacy system (a white text on blue, command-line interface, database system that serves up content to the web site via an arrangement of chron jobs, manual spreadsheet uploads, and who knows what else - it's kind of a Rube Goldberg approach to e-commerce, but that's another WTF).

     @RTapeLoadingError said:

    Wouldn't it be sensible to have an entry in the manual that lists the products that it relates to, and then just serve up the same PDF?

    I realise from the OP that a sane discussion with your marketing person/people might be out of the question.

    For whatever reason, they require a separate PDF file.  I think it's some kind of mixture of misunderstanding of technology, a poorly coded "e-commerce engine" (as marketing likes to call it), and the black magic which holds our DBMS together.

     


  • Discourse touched me in a no-no place

    @KrakenLover said:

    I manage a certain line of digital products at one of the places I work. 
    Are you sure? Sounds like marketing are doing the managing here.



  • @KrakenLover said:

    But, marketing is in control of the website.  And what marketing wants, marketing gets.

    QFT. This is my personal daily hell.



  • @mott555 said:

    @Weng said:

    @KrakenLover said:
    Time to whip out my AppleScript reference book to write a little script taking a CSV file of product numbers and duplicating/renaming the PDFs.  I have a feeling I'll be using that script a lot in the future.  *sigh*
    No. Do it by hand. Or at a minimum, script it and then sit around doing fuck-nothing for the balance of the time it would have taken you to do it by hand. These fools should be punished for their idiotic requests.
     

    That's not enterprisey enough. Also, keeping the same file around a hundred times is a waste of disk space. What you need is a mapping of acceptable file names for each file and a CGI application that allows a number of URLs to link to the same file. You could store this information in a database but you really need an enterprise data source that can work with any number of data sources: SQL Server, XML, MySQL, Oracle, DB2, CSV, Access, Excel, Twitter, and other common file and database formats. Then you need an easy-to-manage and easy-to-develop front-end for adding files to the system and maintaining the URL-to-file mapping, for example an ActiveX plugin. For maximum flexibility you'll definitely want to include an OCR engine so someone can hand-write the file mapping on a sheet of notebook paper, set it on a clean and preferably wooden table, take a picture, scan the picture, and submit it to the management application. That way you can avoid all the common errors your data entry interns will make when they manually type the data into your datasource.

    Then you'll have to develop your CGI application to take a URL and figure out the correct file to download. For maximum performace you should write the application in C and use assembly for the critical logic. It'll need to be portable so it can run on any server hardware so you'll need to find good assembly-language programmers who are knowledgeable in several operating systems and CPU architectures. Once this CGI application is written you'll be ready for beta and user-testing.

    Next you'll need to include logic to track the number of downloads for each possible file name along with the browser, OS, screen resolution, download speed, IP address, country, social security number, mother's maiden name, city of birth, and Zodiac sign for each user who downloads from this service. Of course, this is a ton of really-detailed historical information which can mean only one thing: you'll need to conjure up at least a couple dozen grand to set up a properly-licensed enterprise Oracle data warehouse with lots of failover clustered nodes and carefully-managed table partitions and indexes and high-speed fiber optic data links and other cool stuff. You can dump all that download information there and write a report utility that will process all the data and create some statistics and charts for your managers to look at. For security reasons this reporting component should only work on a PC which is not connected to the Internet. This PC needs to connect to the Oracle cluster using an RS-232 serial cable and all networking and data processing should be implemented using JavaScript. Once the JavaScript finishes it should hand off the results to an ActiveX plugin which will use the industry-standard GTK+ library to render pretty graphs while maintaining compatibility with a wide range of operating systems.

    All in all, you can probably get this project done in a mere six weeks and your managers will love it! Just think how much this will streamline your business processes!

    I'm impressed that you managed to introduce the possibility of FILE_NOT_FOUND, but without providing an enterprisey way of handling it.

     



  • @PJH said:

    @KrakenLover said:
    I manage a certain line of digital products at one of the places I work. 
    Are you sure? Sounds like marketing are doing the managing here.
    Yeah.  I know.

    And, these products wouldn't even exist if a sales rep hadn't made a hard and fast promise to a single customer, sellling them the products before they were ever even thought of.

    The sales rep gets a commission+bonus for making the sale of non-existant product, and the production department has to rush to get each of the 100 or so products created and QA'd by the deadline or else we'd lose the sales contract and lose a bunch of money spent on production.



  • @KrakenLover said:

    @PJH said:

    @KrakenLover said:
    I manage a certain line of digital products at one of the places I work. 
    Are you sure? Sounds like marketing are doing the managing here.
    Yeah.  I know.

    And, these products wouldn't even exist if a sales rep hadn't made a hard and fast promise to a single customer, sellling them the products before they were ever even thought of.

    The sales rep gets a commission+bonus for making the sale of non-existant product, and the production department has to rush to get each of the 100 or so products created and QA'd by the deadline or else we'd lose the sales contract and lose a bunch of money spent on production.

    Well at least you can go back to your lovely home at the end of the day and spend some "quality time" (wink, wink) with your kraken.



  •  This problem can be easily fixed with a list of product numbers, a script, and the UNIX ln tool to create (hard or symbolic) links.



  • @powerlord said:

     This problem can be easily fixed with a list of product numbers, a script, and the UNIX ln tool to create (hard or symbolic) links.

    Let me put it this way - I missed one of the PDFs.  They emailed me, told me which PDF name was missing, and asked me to send it to them via FTP.  They were incapable of figuring out that all they had to do was duplicate any of the hundred others I provided to them, and change the name to the missing product number.  Them creating symbolic links isn't gonna happen anytime soon.


  • @blakeyrat said:

      Well at least you can go back to your lovely home at the end of the day and spend some "quality time" (wink, wink) with your kraken.
     

    He's a KrakenLover, not a KrakenFighter.

    (Either way, you probably end up with plenty of cuts and bruises.)



  • @KrakenLover said:

    Let me put it this way - I missed one of the PDFs. 
     

    You should upload it to an Apache server with mod_rewrite, called manual.pdf, into say http://downloads.example.com/. Then add this rule into .htaccess:

    RewriteRule ^manual/ manual.pdf [L]

    Then provide the link http://downloads.example.com/manual/anythingyouwant.pdf - hey presto, as many PDFs as you want! And no-one would know they point to the same file (because there's no [R])



  • @mott555 said:

    (snip)

    Then you'll have to develop your CGI application to take a URL and figure out the correct file to download. For maximum performace you should write the application in C and use assembly for the critical logic. It'll need to be portable so it can run on any embedded system so you'll need to find good assembly-language programmers who are knowledgeable in several operating systems and CPU architectures. Once this CGI application is written you'll be ready for beta and user-testing.

    (snip)

     

    Awesomeness. You forgot one meme, thought I'd help.



  • @Zemm said:

    You should upload it to an Apache server with mod_rewrite, called manual.pdf, into say http://downloads.example.com/. Then add this rule into .htaccess:

    RewriteRule ^manual/ manual.pdf [L]

    Then provide the link http://downloads.example.com/manual/anythingyouwant.pdf - hey presto, as many PDFs as you want! And no-one would know they point to the same file (because there's no [R])

    mod_rewrite is a powerful tool, but all too often it's overkill. AcceptPathInfo on and Options +MultiViews are sufficient in this case.


  • Discourse touched me in a no-no place

    @KrakenLover said:

    They emailed me, told me which PDF name was missing, and asked me to send it to them via FTP. 
    Erm? Is that your words or theirs?



  • @PJH said:

    @KrakenLover said:
    They emailed me, told me which PDF name was missing, and asked me to send it to them via FTP. 
    Erm? Is that your words or theirs?
    They had asked me to send them the PDF file by uploading it to an FTP server.  I guess throwing a flash drive across the hall would have been too straightforward.

    In case you're wondering why I couldn't just email the file to them - our attachment size cap is very low.  Anything over 10MB and our server refuses to send the email.  What's better, when anybody sends us and email with over 10MB of attachments, our server rejects and bounces it back to them with some cryptic error message.

    If we need to get a file from someone larger than 10MB, we have to give them FTP credentials to upload it to our internal server.  Given the speed of our network, it is, in some cases, faster to put the file(s) on a flash drive and mail it out for next day delivery than using the FTP.


  • Discourse touched me in a no-no place

    @KrakenLover said:

    @PJH said:
    @KrakenLover said:
    They emailed me, told me which PDF name was missing, and asked me to send it to them via FTP. 
    Erm? Is that your words or theirs?
    They had asked me to send them the PDF file by uploading it to an FTP server. 
    Ah. Sloppiness then.



    I had visions of them thinking FTP was another form of email or instant messaging whereby stuff can be `pushed' to another person.



    @KrakenLover said:
    <email>
    Why can't you just change the webserver to serve it up (using any of the suggestions above) and send them a link?



    @KrakenLover said:
    Given the speed of our network, it is, in some cases, faster to put the file(s) on a flash drive and mail it out for next day delivery than using the FTP.
    Mr Tanenbaum's (allegedly) quote is not inappropriate here.



  • @PJH said:


    @KrakenLover said:
    <email>
    Why can't you just change the webserver to serve it up (using any of the suggestions above) and send them a link?
    Marketing is in control of the webserver - I have no access to it. And they, in turn, outsource much of the server management to a third party vendor.  The vendor tells us that they can make the change to the server and the ecommerce software, but will charge us a fee and it will take a while.  This particular project has a tight deadline, and marketing would rather have me do a bunch of needless work than pay the vendor to make the change right now.

    There is no CIO or CTO.  There is no IT department.  There are outsourced service vendors, there is Marketing (and their 1 IT guy), and there is me.  That is the extent of the company's IT staff, servicing more than 100 employees and more across the country.

    So, before I came along, pretty much all IT related stuff (even internal stuff) had to go through Marketing.  Computer die?  Talk to Marketing. Email password expire? Talk to Marketing. Need someone to plug in your new USB keyboard? Click "OK" on some screen dialog box?  Set up a new internal system?  You get the idea.


  • Garbage Person

    @KrakenLover said:

    Anything over 10MB and our server refuses to send the email.
    10mb is the default for some package or other, and is the hard limit more or less all the fucking time in my experience. 


  • Discourse touched me in a no-no place

    @Weng said:

    @KrakenLover said:

    Anything over 10MB and our server refuses to send the email.
    10mb is the default for some package or other, and is the hard limit more or less all the fucking time in my experience. 

    Given how that 10M is sent, it should really be smaller. Like 1M.



  • @PJH said:

    Given how that 10M is sent, it should really be smaller. Like 1M.

    But then how will they send an email with an attachment of a Word document containing a single embedded full-screen bitmap screenshot of a text-only error message they received from a third-party product outside our control?


    (Oh, [url=http://forums.thedailywtf.com/forums/p/16344/219941.aspx#219941]déjà vu[/url])



  • Maybe they know something you don't. Have you tried, ya'know, asking them why they feel this is necessary?

    If there comes a day when these manuals are, in fact, different, this naming scheme would immediately be valuable, and you'd already be prepared for it.

    Always assume the requirements will change wildly. One from my own experience was adding an "object ID" to each instance of some class. Nobody ever used the ID or compared it, but it "felt right" to have it in there, for some reason we couldn't really pin down other than basic intuition. A few years later when we actually needed such IDs, our asses were saved, because at that point it was impossible to change the binary structure of the objects in question (they were being passed into another component that we couldn't rebuild), so adding a class member wouldn't have been possible.



  • @smxlong said:

    Maybe they know something you don't. Have you tried, ya'know, asking them why they feel this is necessary?

    As I wrote a few posts above, it has something to do with some system they really don't understand and don't want to fix.  There is no benefit to the customer, or benefit to my company by distributing this PDF in a hundred differently named copies.

    @smxlong said:

    If there comes a day when these manuals are, in fact, different, this naming scheme would immediately be valuable, and you'd already be prepared for it.

    The manuals can't ever be different - each product uses the same shell which displays different content.  The content changes, but the functionality is always provided by the shell.  So, if there is a change to one product, every single other in the series is also changed, and thus the manual will need to be changed.  Only, now, with all these different PDFs floating around, we have to make sure that each one gets updated in every system the manuals are distributed from - adding complexity to something that should be dead simple.  Now we will have to replace 100s of PDFs instead of a single PDF should there be an update to the product line.

Log in to reply