	   __________________________________________________

	    GENSHIKEN - THE FREE VIDEO DOWNLOADER/STREAMING
				 CLIENT

			     Michael Pagan
	   __________________________________________________


			     2016-11-12 Sat


Table of Contents
_________________

1 What is it?
2 Basic Requirements
3 Where can I get a copy?
4 What is included?
5 How do I install it?
6 Getting Started!
7 Documentation
8 Feedback
9 Genshiken Icons
10 License Notice


------------------------------------------------------------------------

*Please Note:*

+ This file is best seen under [GNU Emacs].
  - The /Org mode/ version of this `readme' is the source for this
    document
    + Once you've followed the instructions in Section 3, you will have
      a copy of the `readme' files
    + If you prefer to view the same information from within /GNU
      Emacs/, then you may download the `readme.org' file from *CVS*.
      - `wget -O readme.org
        http://cvs.savannah.gnu.org/viewvc/*checkout*/genshiken/share/doc/genshiken/readme.org?root=genshiken'
  - You may use the file `readme.org' as a Transparent copy of this
    document, in order to create similar documents.  When doing so, you
    must follow the terms of the /GNU Free Documentation/ license.
+ All single character keyboard commands, such as: `b', `g', `n', `p',
  or `v' are designed for the HTML version of this `readme'.  If you
  encounter them in non-HTML versions: *IGNORE IT*
+ Code blocks labeled as *REQUIRED* are necessary in order to get
  *Genshiken* up and running
+ Everything else is *OPTIONAL*
+ All code blocks can be executed in [GNU Emacs], from within the
  `readme.org' file
  - Place point on the code block and enter: `C-c C-c'



[file:../../icons/hicolor/128x128/apps/sos-gear.png]

/Last modified on November 17, 2016 at 21:09:40/
------------------------------------------------------------------------



 *Learn more about this website:* [View the HTML sources]; [Validate
  HTML];


This website is licensed under the .  Based on a work at , with the
/Invariant Sections/ being just "*What is the purpose of Genshiken?*"
Code blocks are licensed under the .


[GNU Emacs] http://www.gnu.org/software/emacs/

[View the HTML sources]
http://web.cvs.savannah.gnu.org/viewvc/?root=genshiken

[Validate HTML] http://validator.w3.org/check?uri=referer


1 What is it?
=============

  [file:../../icons/hicolor/512x512/apps/using-genshiken-big.png]
  ----------------------------------------------------------------------
  *Genshiken* is a /bash(1)/ script designed to fetch embedded
  video/image links on a website, parse them for a valid URL[1], and
  then sends the URL as an argument[2] to either: /GNU Wget/; a media
  player; or an image viewer.  The idea is to read websites like a
  playlist of videos.
  ----------------------------------------------------------------------
  + In this documentation:
    - The proper name for this software is *Genshiken*
    - The system name for this software is *genshiken*
    - The current version is *0.5.1*
    - This copy of *Genshiken* comes with no price; the official
      distribution is gratis.
    - *Ps*
      + Although I, Michael Pagan, am the author...
        [I don't claim ownership] of *Genshiken*, because the practice
        of /monopolizing ideas/ is simply preposterous when one
        understands that [your freedom needs free software]; thus, I
        decided this software [should be free]; thus, you are *free* to
        _control this software_; and finally, that's why this software
        is called: /Genshiken - The free video downloader/streaming
        client/!


  [I don't claim ownership] http://www.gnu.org/philosophy/why-free.html

  [your freedom needs free software]
  http://www.gnu.org/philosophy/your-freedom-needs-free-software.html

  [should be free] http://www.gnu.org/philosophy/shouldbefree.html


1.1 What is the purpose of Genshiken?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  [http://orig03.deviantart.net/eb9a/f/2011/065/f/8/gnu_linux_by_legosz-d3b21cu.jpg]

  There is a bit of philosophy behind why *Genshiken* was created.  I
  will explain the reason why *Genshiken* is /free software/, and why
  you deserve to use it in freedom.  If you are new to /free software/
  and the idea of sharing knowledge, data, or software appears alien to
  you, then I would suggest you study the forthcoming links and
  footnotes to gain a better understanding.  Most references link back
  to [http://www.fsf.org/].  I have quite a bit to say, so if you're not
  interested in reading my essay-- which is what this subsection
  comprises of-- then enter `g 1.2 <RET>' or press `N' (not `n') on your
  keyboard to move on.


1.1.1 Without software freedom, we can't control how we access our data!
------------------------------------------------------------------------

  [[http://static.fsf.org/nosvn/working/w/large/unknown-pleasures.png]]

  Most websites load media files using proprietary software
  (a.k.a. [nonfree software]), and distribute said media in proprietary
  formats-- all of which restrict the user's freedom.  According to
  *John Sullivan*, /Executive Director/ of the *FSF[3]*: `When software
  is proprietary, that means that some company claims ownership of it,
  and through that' `ownership claim, imposes restrictions on users as
  to how they can or can't use the software.'  People who commonly use
  /nonfree software/ may even feel like there is nothing [wrong with
  using YouTube]-- the consequence, being your dependence on software
  which actively restricts you.  Although there exists /nonfree
  software/ in YouTube, a tech-savvy user can still view the media using
  /free software/ like `youtube-dl'.  Who knows how long this may be
  true, for Google constantly changes the way videos are distributed on
  YouTube-- the same way Microsoft keeps [changing Word format].

  *DRM*[4] streaming dis-services, however, are different.  [Streaming
  dis-services, such as Netflix, Pandora, Spotify, and iTunes, implement
  DRM] which actively prevents you from viewing media files with /free
  software/, and from sharing _your copies_ of media that you purchased.
  Some companies, like Amazon[5], even consider this malware to be a
  desirable /feature/.  As the *FSF* has already identified: `the
  initial injustice of proprietary software often leads to further
  injustices: malicious functionalities.'  *DRM* is a visible type of
  malware that proprietary software companies expect users to tolerate.
  I only bring this up, because my software is the direct opposite of
  theirs in terms of ethics and purpose: One implements *DRM*, while the
  other does not; one restricts/ensnares the user, while the other
  frees/liberates the user; one enforces dependence and subjugation,
  while the other encourages development and community.  There are
  several proprietary companies that use or make /nonfree software/ in
  an effort to subjugate users, so what should we do in response to
  that?  Sometimes, if we want to keep our freedom, we need to make
  sacrifices.  But [the kind of sacrifices I'm talking about] are small;
  any ethical person can make these kinds of sacrifices, in order to
  protect their freedom.


  [[http://static.fsf.org/nosvn/working/w/large/unknown-pleasures.png]]
  http://www.fsf.org/working-together/demand

  [nonfree software] https://gnu.org/philosophy/proprietary.html

  [wrong with using YouTube]
  http://www.gnu.org/philosophy/whats-wrong-with-youtube.html

  [changing Word format]
  http://www.gnu.org/philosophy/no-word-attachments.html

  [Streaming dis-services, such as Netflix, Pandora, Spotify, and
  iTunes, implement DRM] https://www.defectivebydesign.org/drm-streaming

  [the kind of sacrifices I'm talking about]
  https://www.fsf.org/blogs/community/cancel-netflix-if-you-value-freedom


1.1.2 Is it OK for companies to create malware, like DRM?  What are they trying to accomplish?
----------------------------------------------------------------------------------------------

  [[https://upload.wikimedia.org/wikipedia/commons/e/e9/Copyrightpirates.jpg]]

  The idea behind *DRM*, is to subject all users to a system that
  prevents copyright infringement.  In reality, though, this software
  exists to restrict users from controlling their software; from sharing
  digital media; from cooperating with other users; from maintaining
  anonymity and privacy; and finally-- like all proprietary software--
  it gives the owner unjust power over the user.  We don't need such
  defective software, and we certainly don't need the large scale
  surveillance that it employs.  No one should have this kind of power,
  so why encourage this malpractice, and why use propaganda terms that
  are in favor of *DRM* and other types of malware?

  Malware, by definition, mistreats the user-- _never forget that_; no
  ethical reason or justifiable defense exists for those implementing
  it.  To implement malware is malicious, because the mistreatment of
  users is irrational, and can make people anti-social if they believe
  that sharing _their copies_ of digital information (e.g. media files,
  books, software, etc.) will brand them as /pirates/-- `someone who
  attacks and steals from a ship at sea'.  Ignore any propaganda
  definition that implies that the word /piracy/ involves copyright
  infringement.  I'm not only talking about files that you can easily
  download off of the internet; I'm talking about files that _you pay
  for_ in order to access, or store a copy of.  You are not allowed to
  make copies of your own media files, if it is encumbered with *DRM*!

  Copying data means you are reproducing the original digital work in
  the form of `ones' and `zeroes', which is binary data for computers to
  read; whereas, sharing data means you are redistributing a copy of
  said original work.  Reproduction is not the same as theft!  The
  former involves recreating the original copy; the ladder involves
  _physically taking_ the original copy.  Just to let you know: It is
  physically impossible to /steal/ something as intangible as digital
  information.  If I haven't gotten through to you yet, riddle me this:
        How can anyone say that you are /pirating/ data, when you
        are the *owner* of said data, or when the data in question
        is just a *copy*-- _not the original_?  This vague
        assumption proposes that you are capable of stealing
        information from yourself or others!  How ludicrous!?
        Information can't be stolen, and damages or losses are not
        incurred when you make copies of information.
  ----------------------------------------------------------------------
  + *In conclusion with the above-- for illustrative purposes-- please
    examine the following scenarios:*
    - I dare you to steal the text on this screen!  Go on, remove the
      text off of this website.  Well, did you /steal/ it, yet?  Oh!
      That's right... it _can't be stolen_, only copied.
    - Let's pretend this website was published using a nonfree license
      (it's not).  Now let's say that the only way that you can access
      this information, is to install some [secret, restrictive software
      that will allow you to view this website, in such a way that you
      can't copy it.]
      + Ok, the *DRM* software is installed.  After a few corporate
        click-throughs, you activate the /nonfree software/.  You are
        now viewing this website, and noticed that all copy commands
        have been disabled-- as intended, of course, since you are not
        allowed to have freedom.
      + Now, for the questions:
        1. What stops you from recreating this nonfree website using a
           pen, paper, and a free text editor on another computer?
        2. If the website in question was streaming DRM-encumbered
           media, what would prevent you from copying this media with a
           video camera?  Sure, there might be a loss in quality, but
           you can still copy it.
        3. If this DRM-laden software required you to buy a sensor for
           your computer, that would detect if unauthorized people were
           in the room watching *DRM* videos...  would you /still/
           install it?
           + Wouldn't this be an invasion of your privacy?
           + Wouldn't this be considered mass-surveillance?
           + Wouldn't this make society anti-social, knowing that people
             can't access their data without getting spied on; knowing
             that they can be censored when they publish their data?
             1. Facebook users may not understand this sentiment, and
                may unknowingly [*like* spyware on websites];
                fortunately, there [already exists free replacements for
                Facebook].
                - Yes, Facebook uses spyware and it is considered to be
                  a mass-surveillance engine.  Because this spyware is a
                  form of malware, and since Facebook uses /nonfree
                  software/ in general: You have no control of your data
                  on Facebook, and it can collect more data about you
                  from /like buttons/ on other websites.  It uses this
                  type of Malware to trace and track users, and to
                  create personal profiles of them-- even if they have
                  no Facebook account.
                - Facebook /like buttons/ are the spyware!  Learn more
                  about [Facebook Spyware].
                - If you read their [privacy policy], then you'll learn
                  that not only is Facebook directly in control of your
                  data, but it can also turn it over to a third party--
                  like /big brother/-- at their discretion at anytime.
                  This implies that they actually *can*-- regardless of
                  what they say-- turn over your /PII/ (a.k.a
                  *Personally Identifiable Information*) if someone with
                  more authority than Facebook [coerces them to provide
                  it].  Because /your/ data exists on /their/ server,
                  there is no guarantee that when you delete your
                  account that it's actually being removed-- the very
                  nature of /nonfree software/ prevents you from
                  verifying this.  Since their privacy policy mandates
                  that they must collect information on you, then that
                  means their privacy policy, like [Google's], means no
                  privacy for you.
             2. Users who are interested in social media may try [GNU
                Social], if they wish to avoid malware commonly found on
                proprietary social media dis-services, like Facebook.
                - This software provides microblogging capabilities
                  similar to Facebook; however, the difference is that
                  you can use it in freedom.  Users are in control of
                  the software, and can even implement their own
                  versions on their servers.
                - Because you are not being forced to communicate and
                  store all of your data onto a single server, this
                  software creates [a decentralized network that
                  promotes privacy, eliminates censorship, and gives you
                  the freedom to control your data]-- all of which, is
                  on the contrary for Facebook.
                - Since /GNU Social/ servers are federated, users may
                  communicate with each other even if their accounts
                  exist on other servers-- just like with *XMPP*
                  (formerly /Jabber/).
           + Is it not *frustrating* to realize that someone else is in
             control of what you are doing on _your own computer_?
  + The only thing *DRM* is effective at, is [stopping users from
    sharing their own copies of digital information with each other][6].
    This malware creates /disunity/ between users, which prevents public
    cooperation and threatens the very autonomy and spirit of our
    community!
    - Proponents of *DRM*, who wish to legitimize this malware, act
      against the public's interest.  How can we learn, if we are
      restricted from sharing what we know?
    - When your data is DRM-free, it's portable, and you can make copies
      to view on other devices you own; however, if your data is
      encumbered with *DRM*, it becomes immobile, and remains
      constrained within the confines of its digital prison.
    - Information is not designed to be locked away; it is designed to
      be shared.  [Information] would not exist, if people never saw a
      reason to [inform].  How can we inform, if *our* information is
      restricted and uncommunicable?
    - The only solution is to reject /nonfree software/, for this is
      software that seeks to restrict us-- some, in more ways than
      others.  *DRM*-- in this respect-- stands out as the type of
      software that should never be accepted by any society, for it
      takes away control of our programs and personal information.
  + Maybe in the future, businesses will start selling DRM-paper that
    can only record information from DRM-pens.
    - The DRM-paper will have a fingerprint sensor that will only allow
      people to write on it, if they've already submitted their
      fingerprints to a corporate or federal database.
    - The DRM-paper can store authorized fingerprints inside it's
      miniature database, which will only allow /authorized/ people to
      read what was written.  You know what that means... alternatives
      to circumvent this technology could become outlawed soon after.
      Citizens may no longer find it strange for proprietary software
      companies to work hand-in-hand with their govenments; thus, the
      corruption begins.
  + Maybe in the future, businesses will start selling DRM-pens that can
    only write information that hasn't been discovered, or owned yet.
    Once all information has been seized and declared as nonfree, pens
    may no longer function as intended anymore.
    - As you write with your DRM-pen, the pen will make constant checks
      via its network connection to see if what you are writing already
      exists in their database.  If what you wrote matches something
      under copyright, patent, or trademark laws, and it is not under a
      free license... the ink will vanish off the face of the page!
    - You won't be told why this is happening, but you'll know the
      reason.  Someone owns that knowledge, and what you wrote needs to
      be revised to /reinvent/ the wheel, so to speak-- which may be
      hard to do, if the wheel itself was patented, and that's what you
      were writing about.
    - When businesses start adopting DRM-pens and other subjugating
      devices, /free software/ activists will protest; however, their
      efforts may be to no avail for they usually only represent a
      minority of, perhaps, 1% in the current population.  One imaginary
      activist excaimed:
            Is it right to call something a /right/, when that
            "right" takes away our rights?  Perhaps we should call
            this riduculous law *copywrong*, for I hardly see any
            rights being preserved by these wrongdoings.  The same
            can be said for *DRM*; how dare you take away our
            copying machines and public libraries!?
      Sadly, this was a voice that was gradually silenced...
    - Time passes and the DRM-pens become even more malicious, and can
      now only load authorized DRM-ink.  The ink is holographic and
      multi-colored; a design chosen in order to distract readers, and
      to make the information harder to remember and duplicate.  The ink
      is also laced with psychedelic chemicals in order to prevent
      savants from mentally photographing the information.  These
      poisons were strictly opposed at first; however, after banning the
      use of copying machines, there was little resistance when
      DRM-authorities declared it to be the next logical step-- all
      under the auspices of copyright, which was slowly being rebranded
      as /copywrong/ by protesters.
  + Maybe in the future, every single media file will be distributed
    with *DRM*.  Corrupt mathematicians will have created an algorithm
    to detect if your camera is capturing something that appears eerily
    similar to what already exists in a *DRM* media files database-- a
    restricted repository containing data which you own, but businesses
    will have already convinced you that it's safer in their hands!
    - The moment the *DRM* in a camera detects you copying DRM-data, the
      camera will refuse to continue recording.
    - If you try to correct this malicious behavior, then the owner of
      the *DRM* program would proceed to brick your camera in order to
      prevent you from using it in freedom.
      + The concept of /bricking/-- or rendering hardware
        non-functional-- is becoming standard practice by proprietary
        software companies today.
      + Computers that contain 100% /nonfree software/, can be bricked
        at anytime at the owners discretion (sorry, the owner of the
        /nonfree software/ controls your computer-- _not you_, which is
        why is should be replaced with /free software/).
        1. Section 2 of this `readme', /Basic Requirements/, contains
           resources that you can use to avoid this threat.  Ensure to
           reject /nonfree software/ whenever you encounter it, and to
           educate users by pointing them to [http://www.fsf.org/], and
           [http://www.gnu.org/] in order to protect their freedom!
      + With /free software/, there are no owners-- only users, where
        every user is a potential contributor for the program; however,
        with /nonfree software/, there exists an owner who arbitrarily
        imposes restrictions on you.
      + /Nonfree software/ users are often asked to comply with an [NDA]
        or [EULA] in order to get them to agree with the restrictions
        that come with the program, because the "owner" has declared
        that all knowledge of the program is strictly confidential.  If
        you read these tyranical contracts, you'll learn that the
        software in question is not being sold to you; rather, it is
        being /licensed/ to you.  In essence, you are not allowed to
        purchase a copy; you are a licensee of a /black box/ technology
        (i.e.  a technology whose inner-workings are censored), that
        exists in a binary executable.
      + All software-- except Public Domain software-- is distributed
        under a license, and these licenses will tell you what you can
        or can't do with the software.  I urge you to read the license
        that comes with your software, in order to find out how much
        control you /really/ have over your programs.  If a program does
        not come with source code, and the author[s] of the program have
        not given you permission to freely control it, then the normal
        restrictions of copyright apply: The owner of the program has
        exclusive rights for its use and distribution; in other words,
        the user does *NOT* control the program, the owner controls it.
        *RMS:* `The owner controls the program and the program controls
        the users, which means this program is an' `instrument giving
        the owner unjust power over the users.  This is why nonfree
        software should not exist, so the aim of the Free Software
        Movement is: No more' `nonfree software; we want to liberate
        everyone in cyberspace.'
      + According to *RMS*, President and Founder of the *FSF*...
              As a computer user today, you may find yourself
              using a proprietary program. If your friend asks to
              make a copy, it would be wrong to
              refuse. Cooperation is more important than
              copyright. But underground, closet cooperation does
              not make for a good society. A person should aspire
              to live an upright life openly with pride, and this
              means saying no to proprietary software.

              You deserve to be able to cooperate openly and
              freely with other people who use software. You
              deserve to be able to learn how the software works,
              and to teach your students with it. You deserve to
              be able to hire your favorite programmer to fix it
              when it breaks.

              You deserve free software.
    - What if the above threat of *DRM* has affected several colleagues
      of yours?
      + I'll expand.  Pretend you live in a world dependent on /nonfree
        software/...  Some of your colleagues were able to inform you of
        the irregularities they noticed in their cameras right before
        they became bricked.  Noticing the irregularities in your own
        camera, when you tried to record an invaluable speech about
        freedom-- which was seized by the government and then
        copyrighted-- you power it off, just in time!  You now proceed
        to transfer the temporary copy of the recording onto DRM-paper.
        After approximately 69 hours of physically transcribing the
        binary information by hand, the *DRM* ink starts becoming
        blurred.  Your fingerprint is stored on both the DRM-paper and
        inside the DRM-camera, so DRM-authorities were able to identify
        you as attempting to infringe the copyright draconian laws.
      + Your actions manage to set a precedent, though...  The ink does
        not disappear, even though the data you copied matches a file in
        the *DRM* media files database.  The reason for this, is because
        corrupt lawyers, businessmen, and programmers never expected
        anyone to rip a media file onto DRM-paper; thus, they never
        added a routine to make ink disappear when such an event occurs.
        You see, DRM-paper isn't accepted by printers in this era;
        printers have been outlawed by this time since *DRM* can't be
        used on them; the same goes for public libraries-- they don't
        even exist in this time frame.  The only way to capture and
        disseminate information in this proprietary era, is to use /DRM
        approved information devices/-- otherwise known as *DAID*.
        Businesses provide people with *DAID* gratis whenever they want
        to begin an academic career, or wish to create technical works;
        however, all users of *DAID* are subjected to surveillance,
        censorship, and royalty fees (this specific penalty is incurred
        whenever you publish information with *DAID*-- providing a
        steady income that continues to fund the proprietary
        corruption).
      + I digress, though.  No one expected you to circumvent DAID!  You
        managed to bypass the nonfree restriction of *DRM*, and
        retrieved a lost artifact of the old world-- evidence of *free
        speech*!  You publish your findings on over a thousand copies of
        DRM-paper, using an illegal copying machine running /free
        software/.  You transfer it to a friend, who just so happens to
        be a pilot.  After dumping boxes and boxes filled with this
        publication to neighboring cities, people soon begin to wake up
        and question their local businesses and governments.  Even
        though you were incarcerated before your friend took flight,
        *DAID* and all draconian laws that enforced *DRM* were abolished
        10 years later.  After people finally came to their senses,
        nations were able to communicate with each other in peace for
        the first time in decades; not only that, but scientific
        progress and public literacy skyrocketed!  Students were no
        longer criminalized for "/taking notes/" while [studying
        textbooks]; public libraries were re-opened; copying machines
        were no longer guarded by security guards; authors were no
        longer forbidden from cooperating with each other, and were able
        to create bibliographies again; children were allowed to bring
        the source code of programs that they liked on digital devices,
        so that [they could present how they work] for "/show and
        tell/".  You were released from your imprisonment soon after and
        given the /Presidential Medal of Freedom/, as well as a copy of
        the /U.S. Constitution/-- with the [missing 13th Ammendment]
        restored-- one of the first documents in over five decades to be
        written without *DAID*.  For your insights on *software
        freedom*, you were applauded as a visionary for a free society.
        Soon after, /nonfree software/ became outlawed on every
        continent on earth, in order to ensure that the general public
        will never be left divided and helpless again!
      + What's the moral of the story?  Such a bleak and dismal future
        awaits us if we accept /nonfree software/, so why support the
        possibility?  Do not write, run, share, or fund /nonfree
        software/!
        - _When you write_ /nonfree software/, you impose restrictions
          on the user that are similar to the above story.  Software is
          born *free*... until /you/ decide to distribute it without a
          free license.  Keep in mind that the moment you create a work
          (in the U.S. at least), [your work becomes copyrighted] by
          default and hence restricts users; thus, unrestrict your work
          via a free license so that users can have their basic
          computing rights (A.K.A. software freedom).
        - _When you run_ /nonfree software/, you develop a dependence on
          software that you can not control, and that can mistreat you
          at the owners discretion.  Most of the time, there exists
          *DRM* that controls how many copies you can install and hence
          run on your computer; once you reach the install limit, the
          malware will corrupt the installer so that you can't install
          anymore copies.  Do you really think you are in control of
          such software?
        - _When you share_ /nonfree software/ with others, you run the
          risk of being branded as a pirate for making unauthorized
          copies, and can be jailed for this "/crime/"; whereas, if you
          made copies of /free software/, the /Free Software Movement/
          will not penalize you for sharing-- we encourage this type of
          cooperation and do *NOT* consider it to be illegal.  Another
          reason to reject /nonfree software/, is because it supplants
          the users right to *software freedom*, with the penalty of
          *software restriction*.
        - Last, but not least: _When you pay_ for /nonfree software/,
          you help fund the creation of a dark and dismal future similar
          to the above story; a future, where all users are restricted,
          and left divided and helpless.  A [free society] will not come
          into being, if we accept software designed to prevent its
          existence.
  + /Nonfree software/ is the gateway to malware!
    - Knowing that you can't see the source code and change it,
      proprietary developers will be tempted to put in malicious
      functionalities.  This type of software can abuse you at anytime;
      imposes usability restrictions; and how it works, remains a
      secret.
    - No matter if its a backdoor, censorship, sabotage, spyware, or
      *DRM*, the consequence for it's inclusion is always the same:
      /Nonfree software/, in the form of malware, will put the user at a
      disadvantage; implant dependence for future abuse; and can
      remotely change it's policies, your programs, and your data
      without your consent.  Nonfree software that restricts *Freedom
      #1* is always possible malware, because there is no way to verify
      or rule out that it is not without the source code.
  + Malware does not exist in the /free software/ world, because the
    moment a *free* program is published, you have the chance to view
    the source code of that program.  If it contains bugs or malicious
    functionalities, the users are in a position to take the effort to
    get rid of them.  They can make a modified version of that software,
    devoid of any bugs or malware.  No computer user wants to install
    defective software, so they'll use the corrected version instead.


  [[https://upload.wikimedia.org/wikipedia/commons/e/e9/Copyrightpirates.jpg]]
  https://en.wikipedia.org/wiki/Software_piracy

  [secret, restrictive software that will allow you to view this
  website, in such a way that you can't copy it.]
  http://www.artistscope.com/prevent-screen-capture.asp

  [*like* spyware on websites]
  http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1717563

  [already exists free replacements for Facebook]
  http://directory.fsf.org/wiki/Category/Live-communications/microblogging

  [Facebook Spyware]
  https://www.researchgate.net/publication/263567024_We_Are_All_Connected_to_Facebook_by_Facebook

  [privacy policy] https://www.facebook.com/about/privacy/

  [coerces them to provide it]
  http://epic.org/2015/12/house-adds-cyber-surveillance-.html

  [Google's] https://www.google.com/policies/privacy/

  [GNU Social] http://www.gnu.org/software/social/

  [a decentralized network that promotes privacy, eliminates censorship,
  and gives you the freedom to control your data]
  http://www.w3.org/2008/09/msnws/papers/decentralization.pdf

  [stopping users from sharing their own copies of digital information
  with each other] http://www.artistscope.com/news/2015-10-07.asp

  [Information] https://en.wiktionary.org/wiki/information

  [inform] https://en.wiktionary.org/wiki/inform

  [NDA] https://en.wikipedia.org/wiki/Non-disclosure_agreement

  [EULA] https://en.wikipedia.org/wiki/Software_license_agreement

  [studying textbooks] http://www.gnu.org/philosophy/right-to-read.html

  [they could present how they work]
  http://www.gnu.org/education/edu-why.html

  [missing 13th Ammendment] http://www.w3f.com/patriots/13/13th-01.html

  [your work becomes copyrighted]
  http://copyright.gov/help/faq/faq-general.html#mywork

  [free society] http://www.gnu.org/doc/fsfs-ii-2.pdf


1.1.3 In light of all this-- what makes free software, like Genshiken, so different?
------------------------------------------------------------------------------------

  [[http://static.fsf.org/nosvn/working/w/large/closer.png]]

  I mentioned earlier that /nonfree software/ in general and *DRM* (a
  type of /nonfree software/) both restrict the user; however, how do
  they compare with one another?  Here's an oversimplified answer: With
  /nonfree software/ in general, you can not control a program; with
  *DRM* specifically, you can not control your data.  Proprietary
  software owners want to control your programs, but they also want to
  control your personal data, as well.  Most people find that they can
  not copy their DRM-encumbered data to non-DRM enabled devices.  This
  malpractice is an example of /vendor lock-in/, because the vendor does
  not want you to leave their platform.  The fact of the matter is that
  if you use /nonfree software/, then your freedom will be restricted--
  plain and simple.

  *Genshiken* is different from proprietary streaming dis-services,
  because you are not required to give up your freedom in order to use
  it.  *Genshiken* gives you the freedom to be in control of the content
  you watch.  Since most websites, companies, or services use /nonfree
  software/-- which has already been identified as divisive to society--
  the user is left helpless for they can not control the software
  (i.e. no access to the source code; denied software freedom; more on
  this topic later).  In comparison, /free software/ programs operate in
  a transparent manner and can be audited, adapted, and shared to suit
  our needs!

  _The main purpose_ of *Genshiken* is to give *you* that kind of
  control when [loading online videos], without the need for /nonfree
  software/-- which can't be audited, adapted, or shared by anyone
  except for the owner of the nonfree program who monopolizes the
  software.  *DRM* is proprietary malware; thus, it is incompatible with
  /free software/, and will never be found in *Genshiken*'s source code.
  Also, since there is no *DRM* in *Genshiken*, there is no concept of
  /approved platforms/-- *Genshiken* can run on any platform that
  supports /free software/.  I don't believe in /vendor lock-in/,
  either-- every file you download with *Genshiken*, can be shared on
  any platform that supports /free software/.

  *Genshiken* is _not a browser plugin_, but rather, a command-line
  script that parses the HTML markup of a website.  Websites are then
  converted into playlists, marked from A-Z, that are sent to a pager
  program on your computer.  From there, you can browse and select from
  an alphabetized list of video series.  Once you've made your
  selection, you may prompt for a description to be printed to standard
  output-- along with an image, giving you an idea of what type of
  animation to expect.  If you like what you've read and seen, then you
  may download/stream the series.

  *Genshiken* currently works on 1 website: [The Watchcartoononline.COM
  Network].  This website acts as a central hub that hosts third party
  video links submitted by users.  These links, however, are loaded
  utilizing /nonfree software/, like Flash[7] or nonfree JavaScript[8].
  With /nonfree software/ being run on your computer, you do *NOT*
  control how these videos are loaded-- that's where *Genshiken* comes
  in.  *Genshiken* is similar to /youtube-dl/ and /Linterna Magica/[9]
  in purpose.  *Genshiken* is designed to operate on a website, treat it
  as a series of playlists, and works with external players/viewers that
  you have installed on your system.  It's name comes from an Anime
  whose abbreviation meant: "/The Society for the Study of Modern Visual
  Culture/".


  [[http://static.fsf.org/nosvn/working/w/large/closer.png]]
  http://www.fsf.org/working-together/control/

  [loading online videos] file:HACKINGthe%20main%20purpose

  [The Watchcartoononline.COM Network]
  http://www.watchcartoononline.com/


1.2 What capabilites or features are available?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  + Current features for version *0.5.1* of *Genshiken*, include:
    - Converting a website into a series of playlists
    - Defining which video to start on from any playlist
    - Ability to query for a description of your content before
      selection
      + This description comes with an image, since pictures are worth a
        1,000 words
    - Streaming online videos
    - Downloading online videos
    - Playing local videos that were downloaded by *Genshiken*
    - Colored output from the command-line
    - Simple values accepted as arguments to *Genshiken*, instead of
      lengthy URL's
    - Ability to save an active session to a file
      + You can maintain as many sessions as you want!
      + When you load the session, you're back where you left off
    - Content URL visibility
      + You always know exactly where your content is coming from
      + By default, only ethical sources are selected
  + Examples of execution from the command-line:
    - `genshiken --get anime-dub'
    - `genshiken --view cartoon --start-at latest'
    - `genshiken --stream movie --no-update'
  + *Genshiken* will be supporting more websites soon!


2 Basic Requirements
====================

  [[http://www.gnu.org/graphics/gnu-head.jpg]]

  First and foremost, please know that this software relies heavily on
  software from the /GNU Project/[10].  If you are *NOT* running a
  *GNU/Linux[11]* operating system, then downloading and installing
  *Genshiken* will be more difficult!  There are free distributions
  available at: [http://www.gnu.org/distros/free-distros.html].  These
  distro's use a deblobbed version of the kernel Linux, known as
  /Linux-libre/[12].

  In 3 steps, you can be up and running with a free distro! (Enter `n'
  if you're system is already free).  You may scroll down by entering
  `v', if you are Not ready for freedom.

  *First*, you'll need to ensure that your computer is compatible with
  /free software/.  In the age of /treacherous computing/[13], you may
  need to buy a computer that grants you more freedom, or create one
  that respects your freedom off the bat.  The *second* step would be to
  choose a free distro to install from the above website, and then make
  a bootable device.  Once you've done this, the *third* step would be
  to tell your BIOS[14] to load your bootable device; however, this may
  be tricky if your computer comes with /Restricted Boot/[15] enabled.
  + Below are some resources for liberating your computer!
    - [Hardware Devices that Support GNU/Linux] Here are some devices
      that are certified to /respect your freedom/[16]!  If you wish to
      make your own computer, consider accessing *H-Node* first; each
      device listed in this database is tested for compatability with
      /free software/.
    - [Burn Trisquel CD images] *OR* [How to Create a LiveUSB] Learn how
      to create a bootable CD or USB of a free distro.  This particular
      example provides a /Live/ system-- meaning, you can boot *AND*
      test it without having to install it first.
    - [How to access your computers set up screen...]  If your computer
      uses a proprietary BIOS[17], then it does *NOT* respect your
      freedom!  You might still be able to load a free distro if you
      follow these instructions.
  + *Not ready for freedom, yet?*
    You deserve to be in control of _your computer_; however, if you are
    not comfortable with installing a fully-free operating system at
    this time, then you may access the below resources instead to get
    the software running on a [nonfree] system.  Do realize though: Only
    a [free]-- as in *freedom*-- operating system, gives you the
    _ability to control_ all software installed on your computer;
    whereas, a nonfree system may contain malware like *DRM* ([exists to
    restrict your freedom]), which can't be removed and whose sole
    functionality is to mistreat the user.


  [[http://www.gnu.org/graphics/gnu-head.jpg]] http://www.gnu.org/

  [Hardware Devices that Support GNU/Linux]
  http://www.fsf.org/resources/hw

  [Burn Trisquel CD images]
  http://trisquel.info/en/wiki/burn-trisquel-cd-images

  [How to Create a LiveUSB]
  https://trisquel.info/en/wiki/how-create-liveusb

  [How to access your computers set up screen...]
  https://www.fsf.org/working-together/moving/bios-howto

  [nonfree] https://gnu.org/philosophy/proprietary.html

  [free] http://www.fsf.org/working-together/systems/

  [exists to restrict your freedom]
  http://www.gnu.org/philosophy/programs-must-not-limit-freedom.html


2.1 GNU/Linux users
~~~~~~~~~~~~~~~~~~~


  [[file:img/gnu-ascii-white.png]]

  + Run check-dependencies, and install whichever software packages that
    you are missing.
  + Here are some common install commands for different
    *GNU/Linux-libre* distro's:
    - Dragora GNU/Linux-Libre
      `sudo pkg add dependency-1 dependency-2 ...'
    - GuixSD
      `guix package -i dependency-1 dependency-2 ...'
    - Parabola GNU/Linux-Libre
      `sudo pacman -S dependency-1 dependency-2 ...'
    - Trisquel GNU/Linux
      `sudo apt-get install dependency-1 dependency-2 ...'
  + Review the documentation that comes with your package manager for
    more details!
    - If your package manager can not find a required dependency inside
      it's available repositories, then refer to the homepage of your
      missing package (Enter `b', to return here).


  [[file:img/gnu-ascii-white.png]] http://u.fsf.org/16f


2.2 OS X® users
~~~~~~~~~~~~~~~


  [[http://static.fsf.org/nosvn/dbd/dbd-new-sticker-thumb.png]]

  + Jump to the dependencies section, and then return here by pressing
    `b'.
    - Whichever software you don't have on that list, you'll need to
      install.
    - Consult the below resources in order to install the required
      software packages.
    - You may learn how to install the /Mac OS X/ version of
      /Dependencies 6-8/, via the software package's respective
      homepages.
      + [Install and Use GNU Command Line Tools on Mac OS X] Here is a
        resource with /free software/ that you may install!  I suggest
        installing all *GNU* software recommended on that website; the
        /complementary set of packages/ are optional.  With this
        resource, you'll be able to install /Dependencies 1-5/ of
        *Genshiken*.
      + [I use Mac OS X... moving to free software... ]  Here is a
        resource for those that are starting to realize that [nonfree
        software], like /Mac OS X/, is an unethical, user-subjugating
        system, and that it's time to move on to *freedom*.  /Free
        software/ replacements are offered for common proprietary
        programs.  This resource is listed in order to grant you access
        to additional free programs that you may find useful.
      + [Free Software for iOS] Here is a resource with /free software/
        that you may install!  Unlike /Windows/ for the PC, replacing
        /iOS/ with a free operating system is not an easy task.
        Regardless, here are some programs that are interoperable with
        /iOS/ and /Replicant/-- a free operating system for mobile
        devices.  This resource is listed in order to grant you access
        to additional free programs that you may find useful.
    - You may follow the link to *Imgv* for /Dependency 9/ in order to
      install a free image viewer.  Download and extract the *GNU*
      compatible tarball or zip file, and read the `README-UNIX.txt'
      file for installation instructions.
  + Once you've installed all of *Genshiken*'s dependencies, run
    check-dependencies in order to verify that you've installed all of
    the required software.


  [[http://static.fsf.org/nosvn/dbd/dbd-new-sticker-thumb.png]]
  https://www.defectivebydesign.org/apple

  [Install and Use GNU Command Line Tools on Mac OS X]
  https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

  [I use Mac OS X... moving to free software... ]
  http://www.fsf.org/working-together/moving/mac-os-x/

  [nonfree software] https://gnu.org/philosophy/proprietary.html

  [Free Software for iOS] http://www.gnu.org/software/for-ios.html


2.3 Windows® users
~~~~~~~~~~~~~~~~~~


  [[http://static.fsf.org/fsforg/graphics/windows-infographic_share.png]]

  + Jump to the dependencies section, and then return here by pressing
    `b'.
    - Whichever software you don't have on that list, you'll need to
      install.
    - Consult the below resources in order to install the required
      software packages.
    - You may learn how to install the /Windows/ version of
      /Dependencies 6-7/, via the software package's respective
      homepages.
      + [Free Software for Windows] Here is a resource with /free
        software/ that you may install!  Use this resource in order to
        install /Dependencies 1, 2 and 8/ of *Genshiken*.  You need to
        install *MinGW*[18] from the /Programming Utilities/ Category,
        so that you can acquire *GNU Bash* and *Getopt*.  The last thing
        to install from this resource is a free media player called
        *VLC*, which *Genshiken* is already configured to interface
        with.  You can also try installing [MSYS2] instead of *MinGW*,
        which aims for better interoperability with native /Windows/
        software and even comes with its own package manager, *Pacman*,
        to make it easier to install free software.
      + [GnuWin Packages] Here is a resource with /free software/ that
        you may install!  Use this resource in order to install
        /Dependencies 3-5/ of *Genshiken*.  These *GNU* command-line
        utilities give shell scripts, like *Genshiken*, their
        functionality.  Most shells, can hardly function without these
        types of programs.  You must also install *GNU Make* or /make/,
        so that you can execute the `Makefile' for installing
        *Genshiken*; /make/ is not listed as a dependency because
        *Genshiken* does not require it in order to run-- only to
        install.  If you installed *MSYS2* from the above resource, then
        you should already have the required GNU software; if not, then
        you'll need to instruct *Pacman* to install those packages for
        you.
      + [I use Windows... how can I move to free software?]  Here is a
        resource for those that are starting to realize that [nonfree
        software], like /Windows/, is an unethical, user-subjugating
        system, and that it's time to move on to *freedom*.  /Free
        software/ replacements are offered for common proprietary
        programs.  This resource is listed in order to grant you access
        to additional free programs that you may find useful.  The above
        resources are listed specifically for *Genshiken*.
    - You may follow the link to *Imgv* for /Dependency 9/ in order to
      install a free image viewer.  Download and extract the *GNU*
      compatible tarball or zip file, and read the `README-WINDOWS.txt'
      file for installation instructions.
  + Once you've installed all of *Genshiken*'s dependencies, run
    check-dependencies in order to verify that you've installed all of
    the required software.


  [[http://static.fsf.org/fsforg/graphics/windows-infographic_share.png]]
  http://www.upgradefromwindows8.com

  [Free Software for Windows]
  http://www.gnu.org/software/for-windows.html

  [MSYS2] https://msys2.github.io/

  [GnuWin Packages] http://gnuwin32.sourceforge.net/packages.html

  [I use Windows... how can I move to free software?]
  http://www.fsf.org/working-together/moving/windows/

  [nonfree software] https://gnu.org/philosophy/proprietary.html


3 Where can I get a copy?
=========================

  [[http://www.gnu.org/graphics/meditate.png]]

  *Genshiken* is distributed under a *free* license[19], and with source
  code[20] so that you can [control the software][21].  A `HACKING' file
  is provided to make *freedom #1* more practical for computer users.

  In the below subsections, you may choose to edit the location of the
  source directory, `MY_SOURCES'.  This variable represents the
  designated location, where the software will be downloaded and
  extracted to.  To do so in /Org mode/: Enter `M-S-g MY_SOURCES=src
  MY_SOURCES=where-you-want-to-extract-to <RET> !', to query and replace
  all instances of the source directory.

  By default, the source directory will be created in your home
  directory.  If this is not to your liking, then you may also edit the
  variable `BASE_DIR'.

  + An example could be one of the following (these examples require
    `root' access):
    - `BASE_DIR=/opt'
    - `BASE_DIR=/usr'


  [[http://www.gnu.org/graphics/meditate.png]]
  https://savannah.nongnu.org/

  [control the software]
  https://gnu.org/philosophy/free-software-even-more-important.html


3.1 How do I authenticate this software?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  A digital signature is provided (e.g. the file ending in `.sig') to
  ensure the authenticity of this software.  Before I securely copy
  *Genshiken* to the download server, I create a detached signature to
  go along with it using public-key cryptography.  In order to verify
  the signature that comes with *Genshiken*, you'll need the /GNU
  Privacy Guard/[22] (`gpg').  With /GnuPG/ you can retrieve my public
  key which I have stored on a keyserver, verify that I am indeed the
  author, and verify whether the software is intact.

  ,----
  | KEYSERVER=keys.gnupg.net
  | PROJECT_HOME=http://www.nongnu.org/genshiken
  | AUTHORS_KEY_ID=$(lynx -source $PROJECT_HOME/AUTHORS |\
  | 		 gawk -F: '{ print $3 }' |\
  | 		 sed -n '2 p')
  | # This will add my public-key to your keyring
  | gpg --keyserver $KEYSERVER --recv-keys $AUTHORS_KEY_ID
  `----
  Listing 1: REQUIRED: Retrieve my public key, so that you can verify my
  signature

  ,----
  | # The 2 fingerprints (1 from my website; 1 from your keyring) must match
  | lynx -source $PROJECT_HOME        | sed -n 's_.*GPG Key:.\(.*\)</a>.*_\1_p' &&
  | gpg --fingerprint $AUTHORS_KEY_ID | sed -n '/^[[:blank:]]\+Key/s/^.*= //p'
  `----
  Listing 2: REQUIRED: Verify my fingerprint to ensure the key you
  retrieved is authentic


3.2 Where can I download each version of the software?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Tarballs[23] are provided in the [Download Area] of *GNU Savannah*.
  If you do not have access to a browser, or simply wish to use the
  command-line: Follow the below instructions inside of /bash(1)/.  If
  you already have the [Makefile], then you may enter `make grab-pkg'
  instead.  *Freedom #2* isn't theoretical!  Feel free to /mirror/ the
  /Download Area/, in order to make it more accessible to others.

  ,----
  | BASE_DIR=$HOME # Feel free to change this value
  | MY_SOURCES=src # Feel free to change this value
  | ATOM=https://savannah.nongnu.org/news/atom.php
  | GETV="1,/<title>Announcing ${NAME^?}/ s/.*[ ]\([0-9]\.[0-9].*\)<.*/\1/p"
  | FEED=${ATOM}?group=${NAME:=genshiken}
  | DOWNLOAD_SERVER=http://download-mirror.savannah.gnu.org/releases
  | LATEST_VERSION=$(lynx -source $FEED | sed -n "$GETV")
  | LATEST_TARBALL=$DOWNLOAD_SERVER/$NAME/$NAME-$LATEST_VERSION.tar.gz
  | mkdir -p $BASE_DIR/$MY_SOURCES
  | cd $BASE_DIR/$MY_SOURCES
  | # Removing any old traces of Genshiken
  | find -name 'genshiken' | xargs rm -rf
  | find -name 'genshiken-*.tar*' | xargs rm -rf
  | # Downloading the tarball, and its associated signature
  | wget $LATEST_TARBALL
  | wget $LATEST_TARBALL.sig
  | PKG=$(ls $NAME-*.gz)
  | SIG=$(ls $NAME-*.sig)
  | # Verifying the tarball is intact
  | gpg --verify $SIG 2> /dev/null
  | if [[ $? -ne 0 ]]
  | then echo -e "\n\e[31mError:\e[0m Either the download was interrupted, or the official file is corrupt."
  | else tar -xzvf $PKG; echo -e "\e[32m${NAME^?}'s tarball has been extracted to: $(cd $BASE_DIR/$MY_SOURCES; pwd)\e[0m"
  | fi
  | cd ./$NAME
  `----
  Listing 3: REQUIRED: Download and extract the latest version of
  Genshiken.  Verify the signature that comes with it.


  [Download Area] https://savannah.nongnu.org/files/?group=genshiken

  [Makefile] file:Makefile


3.3 How do I get the latest version from source code control?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  For those who wish to grab the source code that contains the latest
  changes, a [repository] is made available via the /Concurrent Versions
  System/ (*CVS*).  If you do not have access to a browser, or simply
  wish to use the command-line: Follow the below instructions inside of
  /bash(1)/.  The below script `get-current-repository', will give you
  anonymous access to a /read-only/ version of the repository.  You can
  get /read-write/ access, if you become a project member; go to section
  8.1, /Development Resources/ (Enter `g 8.1 <RET>'), for more details.

  ,----
  | if [[ -d ${CVSROOT:-} ]]; then
  |   BASE_DIR=$HOME # Feel free to change this value
  |   MY_SOURCES=src # Feel free to change this value
  |   mkdir -p $BASE_DIR/$MY_SOURCES
  |   cd $CVSROOT
  |   # Checking out Genshiken via Anonymous CVS
  |   ACVS=:pserver:anonymous@cvs.savannah.nongnu.org:/sources
  |   cvs -z3 -d$ACVS/${NAME:=genshiken} co $NAME
  |   cd ./$NAME
  |   make tarball
  |   mv ../$NAME-*.tar.gz $BASE_DIR/$MY_SOURCES
  |   cd $BASE_DIR/$MY_SOURCES
  |   PKG=$(ls $NAME-*.gz)
  |   tar -xzvf $PKG
  |   echo -e "\e[32mA clone of the repository is located here: $CVSROOT/$NAME\e[0m"
  |   echo -e "\e[32mA fresh tarball of ${NAME^?} has been created from the repository, and has been extracted to: $(cd $BASE_DIR/$MY_SOURCES; pwd)\e[0m"
  |   cd ./$NAME/
  | fi
  `----
  Listing 4: OPTIONAL: Check out a copy of the current repository.  You
  _must_ have /CVS/ installed, first!


  [repository] http://cvs.savannah.nongnu.org/viewvc/?root=genshiken


4 What is included?
===================

  *Genshiken* comes pre-packaged with various scripts and documentation.
  Execute the command `lynx MANIFEST.html', in order to view the list.
  You may run: `md5sum file-in-manifest', in order to ensure the
  authenticity of each file.  The MD5 Checksum of each file should match
  the same hash inside `MANIFEST.html'.
  ,----
  | CVSROOT=$(echo ${CVSROOT:-${PWD}/..})
  | cd $CVSROOT/${NAME:=genshiken}
  | cat <(find -type d | sed 's_./__; 1 d; s/.*/& **********************************/' |\
  |       grep -v 'CVS') \
  |     <(md5sum \
  |       $(find -type f | sed 's_./__' | grep -v 'CVS') |\
  | 	gawk '{ print $2,$1 }' | sort | sed 's/\(^[^ ]*[ ]*\)\([^ ]*\)/\1*\2*/')  |\
  | gawk '{ print $2,$1 }' | grep -n '.*' | sed 's/[ ]/\t/; s/:/.\t/' |\
  | gawk 'BEGIN { print "#\tMD5 Checksum\tFile\n" }; { print }' |\
  | while read column
  | do
  |   manifest_desc=share/doc/$NAME/manifest-desc.txt
  |   file=$(echo "$column" | gawk '{ print $3 }')
  |   description=$(grep "| $file " $manifest_desc | gawk -F'|' '{ print $3 }')
  |   echo -e "$column\t$description" | sed '/#/ { s/File/&\tDescription/ }'
  | done > MANIFEST
  `----
  Listing 5: OPTIONAL: Execute the following commands, inside the source
  directory, to create a basic MANIFEST file for Genshiken


5 How do I install it?
======================

  Installing *Genshiken* is a trivial process on *GNU/Linux*, but if you
  are using a nonfree system, then you may run into some difficulties.
  *Genshiken* has only been tested on the *GNU/Linux* system.  If you
  are having difficulty installing or running *Genshiken* on a nonfree
  system, then post a message on the mailing-list (See section 8.2,
  /Contact Information/, for details) for help.  The answer may be as
  simple as modifying a few lines of code in *Genshiken*'s `Makefile',
  so do not give up on the first attempt.


5.1 What does Genshiken require in order to function?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Provided below is a checklist of required software that *Genshiken*
  depends on, and a list of optional ones.  A dependency checker is
  built into the main script of *Genshiken*, and will complain if you
  attempt to run it when not all dependencies are installed.  You may
  execute the script `check-dependencies' to verify whether you have all
  of the required software packages, and you may view the list of
  dependencies to install whichever is missing.


5.1.1 Check Dependencies
------------------------

  - Execute the below script `check-dependencies', to find out what
    you're missing
    ,----
    | # Checking version of GNU Bash (needs to be version 4 or higher)
    | [[ $BASH_VERSINFO -lt 4 ]] && echo -e "\e[31mError: You need to install version 4+ of GNU Bash." >&2 ||
    | {
    |   # Take note of any Warnings that are printed!  You'll need it for section 6
    |   echo -e "\e[32mOK:\e[0m Package \e[36mbash\e[0m is the correct version: \e[35m$(bash --version | sed -n '1 p')\e[0m"
    |   type getopt &> /dev/null
    |   [[ $? -eq 0 ]] &&
    |   echo -e "\e[32mOK:\e[0m Package \e[36mgetopt\e[0m is already installed." ||
    |   echo -e "\e[31mError:\e[0m You need to install \e[36mgetopt\e[0m!" >&2
    |   # Checking for the GNU Core Utilities...
    |   info coreutils &> /dev/null
    |   [[ $? -eq 0 ]] && echo -e '\e[32mOK:\e[0m You have the \e[35mGNU Coreutils\e[0m installed.'
    |   for pkg in $(echo -e 'cp\nsed\ngrep\ngawk')
    |   do
    |     type $pkg &> /dev/null
    |     [[ $? -eq 0 ]] &&
    |     echo -e "\e[32mOK:\e[0m Package \e[36m$pkg\e[0m, a part of \e[36mcoreutils\e[0m, is already installed." ||
    |     echo -e "\e[31mError:\e[0m You need to install \e[36m$pkg\e[0m!" >&2
    |   done
    |   # Checking for the GNU Find Utilities...
    |   find --version | grep GNU | grep '.*' &> /dev/null && xargs --version | grep GNU | grep '.*' &> /dev/null
    |   [[ $? -eq 0 ]] && echo -e '\e[32mOK:\e[0m You have the \e[35mGNU Findutils\e[0m installed.'
    |   for pkg in $(echo -e 'find\nxargs')
    |   do
    |     type $pkg &> /dev/null
    |     [[ $? -eq 0 ]] &&
    |     echo -e "\e[32mOK:\e[0m Package \e[36m$pkg\e[0m, a part of \e[36mfindutils\e[0m, is already installed." ||
    |     echo -e "\e[31mError:\e[0m You need to install \e[36m$pkg\e[0m!" >&2
    |   done
    |   # Checking for command-line networking utilities...
    |   for pkg in $(echo -e 'wget\ncurl\nlynx')
    |   do
    |     type $pkg &> /dev/null
    |     [[ $? -eq 0 ]] &&
    |     echo -e "\e[32mOK:\e[0m Package \e[36m$pkg\e[0m is already installed." ||
    |     echo -e "\e[31mError:\e[0m You need to install \e[36m$pkg\e[0m!" >&2
    |   done
    |   # Checking to see if you have common media players...
    |   which mpv mplayer2 totem vlc xine | grep '.*' &> /dev/null
    |   [[ $? -eq 0 ]] &&
    |   echo -e '\e[32mOK:\e[0m You already have a \e[35mmedia player\e[0m installed.' ||
    |   {
    |     echo -e '\e[33mWarning:\e[0m Could not detect any media players!' >&2
    |     echo -e 'Please install one of the following media players:'
    |     echo -e '\e[36mmpv\e[0m'
    |     echo -e '\e[36mmplayer2\e[0m'
    |     echo -e '\e[36mtotem\e[0m'
    |     echo -e '\e[36mvlc\e[0m'
    |     echo -e '\e[36mxine\e[0m'
    |     echo -e '\e[36ma-different-choice\e[0m'
    |   }
    |   # Checking to see if you have common image viewers...
    |   which eog geeqie ristretto | grep '.*' &> /dev/null
    |   [[ $? -eq 0 ]] &&
    |   echo -e '\e[32mOK:\e[0m You already have an \e[35mimage viewer\e[0m installed.' ||
    |   {
    |     echo -e '\e[33mWarning:\e[0m Could not detect any image viewers!' >&2
    |     echo -e 'Please install one of the following image viewers:'
    |     echo -e '\e[36meog\e[0m'
    |     echo -e '\e[36mgeeqie\e[0m'
    |     echo -e '\e[36mristretto\e[0m'
    |     echo -e '\e[36ma-different-choice\e[0m'
    |   }
    | }
    `----
    Listing 6: REQUIRED: Check to see if you have all required
    dependencies


5.1.2 Dependencies [55%]
------------------------

  If you are running a [GNU/Linux] operating system, then at least half
  of these packages (approx. 55%) should already be installed by
  default.  Follow the URL for each software package to learn more about
  them.
  1. [X] GNU Bash (Version 4+)
     - License: GPLv3+
     - URL: [http://www.gnu.org/software/bash/]
  2. [X] Getopt (from util-linux 2.25.2 or higher)
     - License: GPLv2+ (defined in `getopt.c' under `misc-utils' of
       /Util-linux/)
     - URL: [ftp://ftp.kernel.org/pub/linux/utils/util-linux/]
  3. [X] GNU Core Utilities
     - License: GPLv3+
     - URL: [http://www.gnu.org/software/coreutils/coreutils.html]
  4. [X] GNU Find Utilities
     - License: GPLv3+
     - URL: [http://www.gnu.org/software/findutils/findutils.html]
  5. [X] GNU Wget
     - License: GPLv3+
     - URL: [https://www.gnu.org/software/wget/]
  6. [ ] cURL
     - License: MIT/X
     - URL: [http://curl.haxx.se/]
  7. [ ] Lynx
     - License: GPLv2
     - URL: [http://lynx.browser.org/]
  8. [ ] A video player (below are some examples; export `PLAYER' for
     others)
     - Mpv (fork of MPlayer2)
       + License: GPLv2+
       + URL: [http://mpv.io/]
     - GNU Videos (formerly known as `Totem')
       + License: GPLv2+
       + URL: [https://wiki.gnome.org/Apps/Videos]
     - VLC Media Player
       + License: GPLv2+
       + URL: [http://www.videolan.org/vlc/]
     - Xine
       + License: GPLv2
       + URL: [http://xinehq.de/]
  9. [ ] An image viewer (below are some examples; export `IMAGER' for
     others)
     - Eye of Gnome
       + License: GPLv2+
       + URL: [https://wiki.gnome.org/Apps/EyeOfGnome]
     - Geeqie
       + License: GPLv2
       + URL: [http://geeqie.sourceforge.net]
     - Imgv
       + License: GPLv2
       + URL: [http://directory.fsf.org/wiki/Imgv]
     - Ristretto
       + License: GPLv2+
       + URL: [http://goodies.xfce.org/projects/applications/ristretto]


  [GNU/Linux] http://www.gnu.org/distros/free-distros.html


5.1.3 Optional Packages
-----------------------

  The following packages may also be installed for use with *Genshiken*.
  The URL of certain videos can't be ascertained by *Genshiken* alone;
  thus, [youtube-dl] may be invoked to test whether Python can handle
  the job.  Certain video links are obscured through the use of
  JavaScript; which, most of the time is nonfree.  Support for
  [PhantomJS] could be added in the future; hence, any URL's to video
  links which are contained inside of JavaScript, instead of
  user-friendly iframes, could be read by /PhantomJS/ within a subshell.
  + XRandR
    - License: X11
    - URL: [https://www.x.org/wiki/Projects/XRandR/]
  + youtube-dl
    - License: Public Domain
    - URL: [http://rg3.github.io/youtube-dl/]
  + A notification program (below are some examples)
    - gxmessage
      + License: GPLv3
      + URL:
        [http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage]
    - Notify
      + License: MIT
      + URL: [http://directory.fsf.org/wiki/Notify]
  + A terminal emulator (required to use *Genshiken* inside a GUI; below
    are some examples)
    - gnome-terminal
      + License: GPLv2+
      + URL:
        [ftp://ftp.gnome.org/pub/GNOME/sources/gnome-terminal/2.16/gnome-terminal-2.16.1.tar.gz]
    - RXVT
      + License: GPLv2
      + URL: [http://rxvt.sourceforge.net/]
    - XTerm
      + License: X11
      + URL: [http://invisible-island.net/xterm/]
    - *Genshiken* can also be run within Emacs using the *ansi-term* or
      *shell* commands; however, these commands must invoke /bash(1)/ in
      order to run *Genshiken*.


  [youtube-dl] http://rg3.github.io/youtube-dl/

  [PhantomJS] http://phantomjs.org


5.2 Installing Genshiken
~~~~~~~~~~~~~~~~~~~~~~~~

  Before you execute the following commands: Ensure the above
  dependencies are installed.  You should have already downloaded and
  extracted the software at this point; if not, go back to Download the
  Tarball.

  + Are you a /Windows/ user?
    - If you are installing *Genshiken* on /Windows/, then you'll need
      to export the `PREFIX' variable before you install *Genshiken*.
      The command `export PREFIX=/', will set your root directory
      (`c:\', is the typical drive letter) as the install directory.  An
      alternative command `export PREFIX=/Program?Files' should set the
      install directory to coincide with the rest of your /Windows/
      applications.  I have not tested this, since I do not use nonfree
      software.
    - Make sure to verify that the `PREFIX' variable is valid by
      changing into the saved directory: `cd $PREFIX'.

  ,----
  | # OPTIONAL: export PREFIX to install in another directory (e.g. ~export PREFIX=/usr~)
  | BASE_DIR=$HOME # Feel free to change this value
  | MY_SOURCES=src # Feel free to change this value
  | cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
  | sudo make install
  `----
  Listing 7: REQUIRED: Install Genshiken - The free video
  downloader/streaming client :-)

  ,----
  | BASE_DIR=$HOME # Feel free to change this value
  | MY_SOURCES=src # Feel free to change this value
  | cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
  | make new-config
  `----
  Listing 8: OPTIONAL: Install a new configuration file for Genshiken

  ,----
  | #  NOTE: if you set the PREFIX variable before the install,
  | #+ then you must set it the same way before the uninstall.
  | BASE_DIR=$HOME # Feel free to change this value
  | MY_SOURCES=src # Feel free to change this value
  | cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}
  | sudo make uninstall
  `----
  Listing 9: OPTIONAL: In order to uninstall Genshiken from your system
  :-(


6 Getting Started!
==================

  [file:../../icons/hicolor/128x128/apps/sos-gear.png]

  Now that we've installed *Genshiken*... what do we do now?  Simple!
  It's time to run it.  Assuming you've followed all of the above steps
  correctly, you should now have *Genshiken* installed on your computer.


6.1 How do I access the quickstart guide?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ,----
  | # You may append =less=, to view the output in a pager
  | cat <(genshiken --help; echo) \
  |     <(man genshiken |& sed -n -e '/^EXAMPLES/,/^[ ]*PLAY$/ p' \
  | 			      -e '/^ENVIRONMENT/,/^AUTHOR/ p' |\
  | 		       sed -e '$ d')
  `----
  Listing 10: Print a quickstart guide

  If you find an easier way to create a simple reference for using
  *Genshiken*, then please post it on the mailing-list (See section 8.2,
  /Contact Information/, for details).


6.2 Do I need to configure Genshiken before I use it?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  You may need to configure *Genshiken* depending on the below test.
  You'll need to take note of whichever media players or image viewers
  that you have installed on your system.  *Genshiken* will be
  interfacing with them in order to send all videos/images to your
  screen.

  + Test if you have media players or image viewers that are recognized
    by *Genshiken*.
    - Execute check-dependencies, again.
    - There shouldn't be any errors at this point
      + If there are and you're stuck: Post a message onto the
        _mailing-list_ for help
      + Learn more about the mailing-list in section 8.2, /Contact
        Information/
    - What we are looking for are any /Warnings/ printed from the script
      + If the script says you already have `a media player', or `an
        image viewer': *SUCCESS!*
      + If the script /does/ give you a warning... *don't worry!*
        - You can always use `a-different-choice'
        - Execute the following:
          `export PLAYER=my-favorite-media-player'
          `export IMAGER=my-favorite-image-viewer'
        - Consider adding these commands to your `.bashrc' file to make
          them permanent.
  + Remember:
    - *Genshiken* is /free software/!
      You can configure *Genshiken* to behave the way you want it to!
      You can even hack the program so that it works on different
      websites!  Learn more about what you can do with *Genshiken* in
      section 7, /Documentation/.


6.3 How exactly do I use Genshiken?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  The best way for me to explain how to use this software, is via an
  actual example of its usage.  I executed *Genshiken* inside of an
  Emacs buffer running /bash(1)/.  After watching an episode of a video
  series, I exececuted `C-x h C-x r N', in order to add line-numbers to
  the entire buffer; afterwords, I moved point to column 3 and executed
  `column-marker-2' to add a cyan marker, thereby seperating the
  line-numbers from the actual *Genshiken* session.  I then executed
  `M-x htmlize-buffer', in order to save my session as an HTML file so
  that we can use it as an example.

  + The below example is written in HTML.  Access it online at:
    [http://www.nongnu.org/genshiken/]
  + [View this example session in a new tab/window, and I'll explain how
    it works below]
    - Line 1 I executed `genshiken --stream anime-dub'.  What I am
      essentially telling *Genshiken*, is that I would like to
      watch/stream some online videos-- simple!  The option `--stream',
      can be replaced with `--get' in order to download videos, instead.
    - Line 17 I press `[ENTER]' or `<RET>' to read the Legal Disclaimer
      from the /Watchcartoononline.COM Network/.
    - Line 89 I enter `yes' to acknowledge what I've read.  You may
      remove this particular procedure from your versions, if it starts
      to annoy you.
    - Line 92 Believe it or not, *Genshiken* can detect whether you are
      using an HDMI Monitor or not; however, this requires that you have
      *XRandR* installed (if you have *X11*, then you already have it).
      It will attempt to configure it for you if it's connected when you
      press `[ENTER]'.  If there is one connected when you enter
      `<RET>', then it will ask if it's okay to set it up; `xrandr' is
      invoked to execute this task.  The procedure is buggy at best, but
      may work for certain monitors of different resolutions.
    - Line 97 *Genshiken* has detected that I have saved some previous
      session files to the filesystem, and is asking if I would like to
      either: [S]tream the video identified in the current file; move to
      the [N]ext previous session file; [R]emove the current file; or
      simply continue with a new session.  I pressed `<RET>' to continue
      with a new session.
    - Line 100 *Genshiken* is downloading the webpage marked in the red
      carrots.  What's happenning, is that the website HTML markup is
      being parsed in such a way, that all video series will become
      alphabetized for easy reference.  As you've noticed on line `101',
      there are some series that do begin with either a number or
      punctuation mark.  Each of these lists can be viewed with a pager
      like /less(1)/.  If you see that there is a letter of the alphabet
      missing-- don't panic!  It's not a bug-- it's just that
      *Genshiken* has not detected there to be any videos for that
      category.  If you do find a bug: Report it to me (See section 8.1,
      /Development Resources/, for more details).
    - Line 129 *Genshiken* is informing you that you may enter `Q' to
      quit at the next prompt; although, I don't see why you would want
      to :-)
    - Line 162 I am able to enter `Q', or a number from 1-27.  Each of
      these row rumbers, will give me access to a different series.  I
      enter `5' to enter `series_D'.
    - Line 166 Do you see the single characters in brackets, colored in
      Magenta?  They represent keystrokes that you can enter at the next
      prompt.  Entering `A', means you changed your mind and want to
      view [A]nother series; entering `V', means you forgot which number
      is associated to your particular choice of video, and you want to
      re[V]iew the list again to determine the row #; finally, entering
      `Q' quits the program.
    - Line 237 Now we're getting somewhere!  I can finally tell
      *Genshiken* which specific show I would like to watch.  In this
      prompt, a number from 1-62 can be entered, or the letters `A',
      `V', or `Q'.  I enter `51' to relive my childhood; please excuse
      me if you don't like my choice-- just couldn't resist :-)
    - Line 240 We have confirmation; a show has been selected!  As a
      programmer, I'll never forget this moment-- will you?  20 episodes
      later...
    - Line 242 I know it's pretty obvious what these options mean;
      however, I know some of you will want an explanation, anyway.
      Here we go: `A'-- I changed my mind, please output the list of
      series for me again; `S'-- I know what I want, just play the video
      already; `D'-- this show has an interesting title... I might watch
      it if I'm informed on what it's about, and if the graphics are
      decent; `Q'-- it's time to [Q]uit :-(.  Anyway, I decided to get a
      description of the video series, so I entered `D'.
    - Line 246 A Plot Summary is provided thanks to the /Description/
      option.
    - Line 264 I am prompted again if I would like to stream this
      series.  This time, I enter `S', so that I can watch the show.
    - Line 272 *Genshiken* is informing you how big the playlist is, and
      what number it's starting off with.  You can change which episode
      to start on using the `--start-at' option.
    - Line 278 If you actually visit the webpage identified on line 273,
      then you'll notice there are 3 players available to watch the
      video.  Of course, you're not going to actually view those videos
      using those players, since they use /nonfree software/.  All red
      lettered words with underscores in them, are actually the names of
      *Genshiken*'s functions.  /Extract Information/ exists to inform
      you what players are available, and which website is hosting a
      video whose URL can be parsed by *Genshiken*.
    - Line 291 *Genshiken* has selected a player-- meaning, that the
      website that the player refers to is hosting the video in a way
      that can be parsed by *Genshiken*.
    - Line 292 What you think might be the URL of the video, might
      actually be a redirection to another website-- these *are*
      third-party websites, you know.  The /Watchcartoononline.COM
      Network/ is just linking to them.
    - Line 295 After *Genshiken* parses the HTML of the website that we
      redirected to, it captures the actual URL of the video.  The
      function name makes it obvious what *Genshiken* is doing.  Believe
      it or not, downloader browser plugins have a hard time figuring
      out the URL of a video if redirection is involved-- *Genshiken*
      attempts to find it anyway, though.
    - Line 299 Why is the phrase in Magenta so verbose?  /Streaming/ is
      printed, because *Genshiken* is trying to tell you what it's
      doing; that word will be replaced with /Downloading/ if we used
      the `--get' option, instead of the `--stream' option.  /Single/ is
      printed, because videos may be viewed as a /Single/ episode, a
      /2-Parter/, or a compilition of more than 1 episode.  /Regular
      Episode/ is printed, because the video in question might be a
      /Movie/, or a /Special Episode/-- like an original video
      animation, which might not be considered as canon to the original
      work.
    - Line 300 This is why *Genshiken* exists-- to _play online videos_
      without /nonfree software/!!  If this wasn't possible, *Genshiken*
      would never have been released.  At this point, a video is being
      watched-- HA-OOH HA-OOH HA-OOH!
    - Line 327 You can move on to the next episode by exitting the
      video, either by: Pressing `Q', `<ALT>-[F4]', or simply waiting
      for the video to finish.  To exit and save the current session to
      a file so that you can watch it later, press `C-c'.  Since I was
      in an Emacs buffer that isn't a fully emulated terminal, I entered
      `C-c C-c' instead.  My session is now complete.  If you prefer not
      to save your session, then consider using the `--no-sessions'
      option.
  + If you find any discrepancies, or are confused by this example:
    Please post a message about it on the mailing-list.


  [View this example session in a new tab/window, and I'll explain how
  it works below] file:genshiken-example-session.html


7 Documentation
===============

  To print a brief usage summary from the command-line, execute
  `genshiken --help'.  If you need more information, then read the
  manual instead.


  - Ps The `FAQ' is in Section 1 of the `HACKING' file.  Visit section
    8.1, /Development Resources/, for more details.


7.1 What is the best way to read the documentation?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Most of the documentation is written using /plain text/
  (a.k.a. /ASCII/[24]), because this is a format that all computers can
  understand; also, it encourages [future retrieval and reuse].  The
  best way to view all documentation is via /Org mode/ inside of /GNU
  Emacs/!  If you feel lost or don't have an easy way to navigate the
  outline structure of the org documentation (e.g. via /Org mode/
  itself; via /org-tree-slide/; via /epresent/; etc.), then you may use
  any other versions that are avialable.

  + The Emacs command to export Org files to other formats is:
         *org-export-dispatch* (`C-c e')
  + Assuming you installed the software without changing the `PREFIX'
    variable, the main documentation should all be located in
    `/usr/local/share/doc/genshiken'.
  + There are 6 files in question that make up *Genshiken*'s
    documentation.  They should be read in the following order:
    - `readme', `readme.texi', `readme.info', `readme.org', or
      [http://www.nongnu.org/genshiken/]
    - `NEWS'
    - `ChangeLog'
    - `manual.org'; learn more about this file in the next subsection
    - `HACKING', or [http://www.nongnu.org/genshiken/HACKING.html]
    - `TODO'
  + If you read the `MANIFEST.html' file inside the tarball, then you
    should already have a basic understanding of what these files are
    for.


  [future retrieval and reuse] http://www.podval.org/~sds/data.html


7.2 How do I access the manual?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  + Are you a /Windows/ user?
    - If you are trying to view *Genshiken*'s manual on /Windows/, then
      you'll need the equivalent of the `man' command.
      + Install [GNU Troff], so that you can read *Genshiken*'s manual.
      + Execute the following commands in succession to view
        *Genshiken*'s manual:
        1. `cd $BASE_DIR/$MY_SOURCES/${NAME:=genshiken}'
        2. `groff -Tascii -pet -mandoc -P-c share/man/man1/genshiken.1 |
           less -irs'
    - *Still having trouble?*
      + [ManScript] If you are still having trouble reading man pages on
        /Windows/, then review this resource.  Provided are scripts
        designed to work with *MinGW* and /Windows/ console programs, so
        that you can view man pages using a simple command.  A
        configuration file is also provided to allow you to define
        possible locations for man pages.  For instance, you may append
        `MANPATH /Program?Files/share/man/man1' to `man.conf', so that
        `man.sh' will understand how to pull *Genshiken*'s man page when
        you execute `man genshiken'.
      + If you have *MSYS2*, then instruct *Pacman* to install the `man'
        command.  Chances are, it may already come with the `man'
        package by default.  If you don't have *MSYS2* and are
        interested in installing it, then visit the Windows® users
        section for the link and information.

  ,----
  | ;; You may execute ~man genshiken~ in bash(1), instead
  | (man "genshiken")
  `----
  Listing 11: Get access to Genshiken's manual.

  ,----
  | ;; If the buffer doesn't change, execute: ~C-x b *WoMan 1 genshiken*~
  | (woman-find-file "share/man/man1/genshiken.1")
  `----
  Listing 12: Alternatively, you may execute the following in GNU Emacs
  for a different manual style.
  - You may also access the online version: `manual.html'
  - Here is the corresponding source code for the [manual]!
    + Export to man within /Org mode/ using: `M-x org-man-export-to-man
      <RET>'


  [GNU Troff] http://gnuwin32.sourceforge.net/packages/groff.htm

  [ManScript] http://www.mingw.org/wiki/ManScript

  [manual] file:manual.org


8 Feedback
==========

  [[http://static.fsf.org/nosvn/images/badges/fsfs_icons_beige-bg.png]]

  This is a /free software/ project!  Unlike /nonfree software/, which
  thrives on a *dependence model*-- where users are subjugated and
  [forced to go along with every change] the owner of the program makes;
  /free software/ provides a *development model*-- which allows a
  community to correspond with the developers, cooperate with
  contributers who take part in making changes, and-- above all else--
  grants the user the right to _exercise their freedom_.

  With that said: The below resources are available to you, if you have
  any additional questions or wish to make a contribution.  The *4
  essential freedoms[25]* are a big theme in this document, because
  *Genshiken* consists of *100%* /free software/ powered by *GNU*.  As
  the above infographic suggests, you can exercise these freedoms to
  control this software!


  [[http://static.fsf.org/nosvn/images/badges/fsfs_icons_beige-bg.png]]
  http://u.fsf.org/16e

  [forced to go along with every change]
  http://www.gnu.org/philosophy/the-root-of-this-problem.html


8.1 Development Resources
~~~~~~~~~~~~~~~~~~~~~~~~~

  + For a history of changes: See the [ChangeLog] for more details.
  + For a set of release notes or news announcements: See the [NEWS]
    file for more details
    - Subscribe to the [Atom Feed] to stay updated!
  + Visit the [Project Development Page] for current developments.
    1. If you want to contribute to this project:
       + Sign-up for an account on [https://savannah.nongnu.org]
       + Afterwards, read the `HACKING' file listed below
    2. Found a bug?
       + Submit a [bug report]!
         - For documentation, bugs can be:
           1) Grammer errors
           2) Diction errors
           3) Nonfree resources that should be replaced with free/libre
              resources
              - For instance:
                + An /Org target/ that links to a HOWTO or tutorial that
                  is licensed as nonfree, should be replaced with a
                  HOWTO or tutorial that is licensed as free/libre.
           4) Information that conflicts between different documentation
              - For instance:
                + If The definition of a parameter differs between the
                  `--help' option and the manual, then that's a
                  documentation bug.
         - You may apply the same above criteria for source code
           comments, as well
         - For the software, bugs can be:
           1) Improper use of a command
           2) Using deprecated parameters, instead of safer or more
              effective parameters
           3) Sending unwanted output to standard output
           4) Using a nonfree file
              - For instance:
                + If there is no Copyright Notice or License Notice for
                  the file, and it is not in the Public Domain, then the
                  file is nonfree.
                + If the file is licensed as free, but it recommends or
                  links to nonfree files
  + Engineer your own solution by [HACKING Genshiken]!
    1. This file contains a list of _Frequently Asked Questions_
       (`FAQ').
       + Feel free to add your own questions to the file!
    2. A basic guide is included for getting more familiar with the
       software.
       + This requires some basic understanding of the *GNU/Linux*
         operating system
       + [Introduction to the Command Line] -- Free/Libre manual
                   documenting the *GNU/Linux* command-line
       + New to /free software/?  Read the above manual before entering
         the `HACKING' file!
    3. Familiar with *Genshiken*?  Execise *Freedom #1*, and /hack/[26]
       *Genshiken*
       + Consider exercising *Freedom #3*, so that all users may benefit
         from your /hack/
       + Some people wonder... why write /free software/?
         - Well, there are [several motives] for writing libre programs,
           so please contribute!


  [ChangeLog] file:ChangeLog

  [NEWS] file:NEWS

  [Atom Feed] https://savannah.nongnu.org/news/atom.php?group=genshiken

  [Project Development Page]
  https://savannah.nongnu.org/projects/genshiken/

  [bug report]
  https://savannah.nongnu.org/bugs/?func=additem&group=genshiken

  [HACKING Genshiken] file:HACKING

  [Introduction to the Command Line]
  http://en.flossmanuals.net/command-line/

  [several motives] http://www.gnu.org/philosophy/fs-motives.html


8.2 Contact Information
~~~~~~~~~~~~~~~~~~~~~~~

  [[https://static.fsf.org/nosvn/enc-dev0/img/en/full-infographic.png]]
  [[http://mailutils.org/graphics/mustamp.png]]
  + Get technical support or feedback of software use via /GNU
    Mailutils/!
    - Any and all questions are welcome :-)
      [[file:img/835840.png]]
      *Michael Pagan*
      *71B46D72*
      [[https://static.fsf.org/nosvn/logos/surveillance.png]]
      *[mailto:michael.pagan@member.fsf.org]*
      *[GPG Key: B942 AD12 82B1 6D14 27A0 86AE 119E 451E 71B4 6D72]*
            `For those who prefer using a text interface: Gnus
            comes with GPG integration!'[27]
      _My E-Mail_-- for personal/business messages, and questions not
      directly pertaining to *Genshiken*.  Click on my /FSF member
      button/ to join the *FSF*!  For those outside the loop: Encrypting
      our messages with /free software/, is a big first step towards
      securing our privacy, and forming the _web of trust_.  [Fight back
      surveillance][28], with *GnuPG*!
      [file:img/xmpp.png]
    - pegzmasta@member.fsf.org
      This is my *XMPP[29]* account, for Instant Messaging.  E-Mail is
      still the best way to contact me, though.  Via E-Mail, we can
      arrange for a real-time /Jabber/ conversation.  If you plan on
      contributing to *Genshiken*, then this is the best place-- besides
      the `HACKING' file-- to get all your questions answered.  I don't
      use this account often, but you should be able to see my current
      status there.
      [[http://static.fsf.org/nosvn/dislike100.png]]
    - [mailto:genshiken-users@nongnu.org]
      Public mailing-list for user help and discussion.  Subscribe by
      clicking the above /Dislike/ button[30]!


  [[https://static.fsf.org/nosvn/enc-dev0/img/en/full-infographic.png]]
  https://emailselfdefense.fsf.org/en/infographic.html

  [[http://mailutils.org/graphics/mustamp.png]] http://mailutils.org/

  [[file:img/835840.png]]
  http://www.fsf.org/associate/support_freedom/join_fsf?referrer=835840

  [[https://static.fsf.org/nosvn/logos/surveillance.png]]
  https://emailselfdefense.fsf.org/

  [GPG Key: B942 AD12 82B1 6D14 27A0 86AE 119E 451E 71B4 6D72]
  https://savannah.nongnu.org/people/viewgpg.php?user_id=101089

  [Fight back surveillance]
  https://www.fsf.org/bulletin/2013/fall/how-can-free-software-protect-us-from-surveillance

  [[http://static.fsf.org/nosvn/dislike100.png]]
  https://lists.nongnu.org/mailman/listinfo/genshiken-users


9 Genshiken Icons
=================

  1. This `readme' (or `index.html')
     - using-genshiken-big.{png,svg} Depicts Fenice using the
       command-line from her cubicle
       + This image is an original I made with the GIMP and Inkscape.
       + The author is *Michael Pagan*
       + The license is: [The GNU General Public License (version 3 or
         later)]
       + Added permissions from the author
         - *NONE:* Already respects your freedom!
  2. `genshiken-anime.desktop'
     - using-genshiken.svg Depicts Fenice using the command-line from
       her cubicle
       + This image is an original I made with the GIMP and Inkscape.
       + The author is *Michael Pagan*
       + The license is: [The GNU General Public License (version 3 or
         later)]
       + Added permissions from the author
         - *NONE:* Already respects your freedom!
  3. This `readme' (or `index.html'), `HACKING',
     `genshiken-manual.desktop'
     - sos-gear.{png,svg} A blue gear with the SOS Brigades' insignia on
       it
       + This image is an original I made with the GIMP and Inkscape.
       + The author is *Michael Pagan*
       + The license is: [The GNU General Public License (version 3 or
         later)]
       + Added permissions from the author
         - *NONE:* Already respects your freedom!


  [The GNU General Public License (version 3 or later)]
  http://www.gnu.org/licenses/gpl.txt


10 License Notice
=================

  Copyright © 2015-2016 Michael Pagan
  This file is part of *Genshiken*.

  *Genshiken* is _free software_: you can redistribute it and/or modify
  it under the terms of the /GNU General Public License/ as published by
  the /Free Software Foundation/; either version 3 of the License, or
  (at your option) any later version.

  *Genshiken* is distributed in the hope that it will be useful, but
  *WITHOUT ANY WARRANTY*; without even the implied warranty of
  *MERCHANTABILITY* or *FITNESS FOR A PARTICULAR PURPOSE*.  See the /GNU
  General Public License/ for more details.

  You should have received a copy of the /GNU General Public License/
  along with *Genshiken*; see the file [COPYING].  Also, when referring
  to *Genshiken* (i.e. in either text/audio/video), please do not call
  this software: [open source] software-- it's not!  This is [free
  software]-- period.


  [COPYING] file:COPYING

  [open source]
  https://www.gnu.org/philosophy/open-source-misses-the-point.html

  [free software] https://www.fsf.org/about/what-is-free-software



Footnotes
_________

[1] /Uniform Resource Locator/; web address.  Unfortunately, most
websites obscure browser scripts (a.k.a. /obfuscript/; this is *NOT*
source code) on their webpage, making it hard to determine the video
URL, and how videos are being loaded; thus, the existence of
*Genshiken*.

[2] A value that is passed as a parameter for a program.  For example, a
synopsis for the use of /Wget(1)/ is `wget [option]... [URL]...'; where
`[URL]' is a parameter of wget, and a possible argument could be this
[https://static.fsf.org/nosvn/FSF30-video/FSF_30_1080p.webm], for
instance.

[3] /Free Software Foundation/; learn more about [the FSF]
(http://www.fsf.org/)!

[4] /Digital Restrictions Management/.  This type of malware, common
with /nonfree software/ (e.g. /Windows/, /Mac OS X/,
/the-iThings-from-[cr]apple/, /Amazon Swindle/, /Netflix/, etc.), offers
the malicious functionality to refuse to function.  Ultimately, it is
the Recording Industry that does not want you to share media that you've
purchased.  They are against the public interest, because they actively
campaign to add malware in software. *John Sullivan:* `Even the
repressive copyright regime we have now obligates the government to
represent the public's interest in promoting progress in science' `and
the arts through sharing and the dissemination of knowledge.  If the
government starts working for the media companies, they will be working
against the public interest, and we' `will surely see attempts to give
legitimacy back to Digital Restrictions Management (DRM) systems--
unethical restrictions that squash so much useful sharing, education,
and' `communication.'  Learn more about [DRM]
(http://www.defectivebydesign.org/what_is_drm_digital_restrictions_management)!

[5] Amazon implements DRM in their streaming dis-service, /Amazon
Prime/.  What they don't tell you, is that you have to install malware
in order to access videos, and Flash in order to play them-- both of
which, are /nonfree software/.  As their new commercial clearly states:
[There's More To Prime]
(http://www.amazon.com/forum/amazon%20prime?cdForum=Fx19TKUDUCVHDNP&cdThread=Tx19HPH8H35E889)!

[6] This particular article is created by proprietary developers in
order to show case their malware to potential victims.  Through the use
of *DRM* policies, /Access Tokens/, and a malware program called /ASPS
Web Browser/, media files can be distributed with restriction rules in
order to prevent access to digital files and take away the users
control.  This malevolent scheme is a real-life example, created by
/ArtistScope/, of a digital environment that allows the prevention of
sharing-- restricting *Freedom #2* and *Freedom #3* of the /Free
Software Definition/.  Propaganda terms like /Copy Protection/ is used
in order to misinform you that making copies of information can somehow
damage the original source of the information under copyright.
[http://www.nongnu.org/genshiken/] is not licensed under this
misconception, because of the fact that HTML documents can't incur
damages when users make copies of them; the assumption that this
website, or even the software that it documents, would incur damages
without the nonfree restriction is ludicrous.  *ASPS* malware is not
/FREE/ to use, since it is /nonfree software/; which also means that
their statement that it is "free software" is also false.  /Free
software/ users are accostomed to openly cooperating and freely sharing
with each other, so they might understand the irony behind the malicious
practice of sharing /unreadable/ files with each other.

[7] If you must use Flash, consider using [GNU Gnash]
(http://www.gnu.org/software/gnash/), instead.

[8] Nonfree JavaScript in your browser can be dangerous.  Read the [The
JavaScript Trap] (http://www.gnu.org/philosophy/javascript-trap.html),
for more details!

[9] Linterna Magica replaces Flash objects with <object> tags that your
browser can play.  Learn more about [Linterna Magica]
(http://linternamagica.org/)!

[10] The GNU Project is the original /free software/ project, dedicated
to providing users with a fully-free operating system!  Learn more about
[GNU] (http://www.gnu.org/)!

[11] Most people erroneously call this system /Linux/.  Does it matter?
What's in a Name?  Well, it does matter!  The name /Linux/ refers to
only a single program-- the kernel; whereas, /GNU/ refers to various
programs from the /GNU Project/ that form an almost complete operating
system (by which, they are only missing a kernel).  More importanty,
Calling it /Linux/ does not educate computer users about their freedom;
however, just by prepending the word *GNU*, we can lead computer users
to the ideals of /free software/, and why they should have control of
their computing.  Learn more about why we should call this ethical
system, [GNU/Linux] (http://www.gnu.org/gnu/why-gnu-linux.html)!

[12] /Linux/ is distributed under a free license (the *GPL*), but the
source code contains BLOBs (Binary Large OBject; a series of `ones' and
`zeroes'), which renders the software as nonfree.  This is a violation
of section 3 of the *GPL*, which clearly states: the user (i.e.  /Linus
Torvalds/) may `distribute the Program' provided that he `also do one of
the following' ... choice `a)', choice `b)', or choice `c)'.  A
requirement for each of those subsections-- choice `a)', `b)', or `c)'--
is that he must also `Accompany it with the complete corresponding
machine-readable source code'.  Since he has not complied with the
*GPL*, /Linux/ is proprietary; fortunately, ethical hackers have already
deblobbed the kernel and are providing a free version that we can trust!
Learn more about [GNU Linux-libre]
(http://directory.fsf.org/wiki/Linux-libre).  Learn about other common
distros that fall short of the ideals of freedom, by [including nonfree
software] (http://www.gnu.org/distros/common-distros.html).

[13] A *REAL* conspiracy by several proprietary companies, whose plot is
to take away control of your computing.  Learn more about [treacherous
computing] (http://www.gnu.org/philosophy/can-you-trust.html.en)!  Learn
about [how hardware vendors can help]
(https://www.fsf.org/resources/hw/how_hardware_vendors_can_help.html)
mitigate this attack on our society.

[14] Basic Input Output System

[15] A replacement for the traditional BIOS.  *Joshua Gay:* `could lock
users out of their own computers, preventing them from ever booting into
or installing a free software' `operating system.'  Learn more about
[Restricted Boot]
(https://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/)!

[16] The /Free Software Foundation/ (*FSF*) "Mark of Approval for
electronics"; *Joshua Gay:* `hardware that will do as much as possible
to respect your freedom and your privacy, and will ensure that you have
control over your device'.

[17] With /treacherous computing/ and /Digital Restrictions Management/
(DRM) on the rise, the possibility of /Restricted Boot/ becomes more
likely.  A campaign for [a Free BIOS]
(http://www.fsf.org/campaigns/free-bios.html) has already been launched!
Let's ensure that our computers are [born to run]
(https://www.fsf.org/bulletin/2011/fall/born-to-run) in freedom, with
*our* operating system of choice.

[18] Minimalist GNU for Windows

[19] How software is distributed determines whether or not it's free.
If it's not free, then you can't control it.  Read *Genshiken*'s license
notice for details on what makes it free!

[20] The human-readable files preferred for making changes to the
software.  Since *Genshiken* is a script and is not compiled, the entire
program can be read easily; Execute `genshiken --source-code' to
understand!

[21] Nowadays, we have to do all we can to ensure that we have control
of our computing.  That's why I'm going through all these lengths, to
ensure that all users of my software are in control.  It's a matter of
freedom.  You should not be passive about your freedom, either.  [Keep
control of your computing, so it doesn't control you!]
(http://www.gnu.org/philosophy/keep-control-of-your-computing.html)

[22] A tool for secure communication.  Unfortunately, the /Pretty Good
Privacy/ (*PGP*) protocol used a patented algorithm that can *NOT* be
implemented in freedom; thus, a different algorithm was used in the free
implementation of *PGP*, known as *GPG*, which we can control.  To get
up and running using /GnuPG/, try reading [The GNU Privacy Handbook]
(https://www.gnupg.org/gph/en/manual.html)!  If you want a quickstart
guide, try reading this [GnuPG Mini-HOWTO]
(https://moser-isi.ethz.ch/gpg.html).  Once you have `gpg' installed,
you'll have quick and easy access to the full documentation with `info
gpg'.

[23] A compressed archive created with `tar' and `gzip'.  The name
derives from /tape archive/, and is a common way to distribute software
in *GNU/Linux*.

[24] American Standard Code for Information Interchange.  *Allin
Cottrell:* `ASCII is the lowest common denominator of textual
communication in digital form. An ASCII message will be'
`“understandable” by any computer in the world. If you send such a
message, you can be sure that the recipient will see precisely what you
typed.'

[25] Very briefly, they are the freedoms to run, study, modify, copy,
and distribute software as you wish, for any purpose.  Here is the [full
definition, by the *FSF*] (https://www.gnu.org/philosophy/free-sw.html)!

[26] The word /Hack/, and all derivitives, are misrepresented in the
media today.  What you think are /hackers/, may actually be [crackers]
(https://en.wikipedia.org/wiki/Hacker_%28computer_security%29)--
`someone who seeks and exploits weaknesses in a computer system'.  Those
who wrote that /Hacker (computer security)/ article, are obviously not
programmers; if they claim to be: They probably use /nonfree software/,
which you are *NOT* allowed to /hack/-- just to let you know!  You may
be wondering then: What is a /hacker/?  Here is a definition straight
from the most ethical /hackers/ on the net: [hacker]
(https://www.gnu.org/philosophy/words-to-avoid.html#Hacker).  Were you
surprised?  Here's an article that appears to credit the [original
defintion] (https://en.wikipedia.org/wiki/Life_hacking), as well.

[27] /Gnus/ is a message reader, for GNU Emacs, that is used for reading
and composing both news and mail.  To start using /Gnus/ in Emacs,
enter: `M-x gnus'.  If you are only interested so that you can start
using E-Mail in Emacs, do realize that /Gnus/ is like a stone-age
newsreader (i.e. you'll have to configure it for how to do E-Mail);
there are other E-Mail clients that you can use for Emacs, but if you
are still interested-- Enter: `C-h i m gnus 5'.  Here is a resource
containing several articles for configuring /Gnus/: [EmacsWiki Gnus]
(http://www.emacswiki.org/emacs/CategoryGnus).  You may also use
public-key cryptography for secure communication!  Interested?  If so,
then follow *footnote #23* about the /GNU Privacy Guard/ to get up and
running.  Once you've done that, you'll need to create a [.authinfo.gpg]
(http://www.emacswiki.org/emacs/GnusAuthinfo) file.  If you want an
example of a working configuration, you may request a generic version of
my `.gnus.el' file via E-Mail; this configuration uses the `nnimap'
protocol to communicate to a [webmail system]
(https://www.fsf.org/resources/webmail-systems), so that there's no need
to fetch messages you have stored on another server.

[28] The *NSA* and other spy agencies are actively fighting against
online privacy by degrading commercial, nonfree encryption software.
They consider users of such software to be /adversaries/, and legitamize
adding backdoors in encryption software; thereby, adding /insecurity/ to
security software.  [It's been reported]
(http://www.theguardian.com/world/2013/sep/05/nsa-gchq-encryption-codes-security),
thanks to the bravery of Edward Snowden, that the *NSA* has been
covertly forming partnerships with proprietary software companies to add
secret vulnerabilities to their software.  The best way to escape this
type of sabotage, is to use /free software/ instead!  There already
exists [a guide to defend against bulk surveillance]
(https://www.fsf.org/blogs/community/one-year-of-encryption-with-the-email-self-defense-guide).
The transparency and control provided by /free software/ ensures that
crackers, like the *NSA*, won't add malicious features to this
software-- for fear of embarrassment, if nothing else.  /Free software/
users are much harder to surveil than /nonfree software/ users.  While
/GnuPG/ helps protect your privacy with E-Mail and allows you to encrypt
messages and documents, there are several other free programs that can
help you with other computing tasks as well.  *Zak Rogoff:* `There are
even new, free software-based, decentralized, surveillance-resistant
systems that we hope will someday replace the massive' `restrictive
corporate systems that government agencies so desperately want complete
access to.'  You can access these aforementioned tools in the /Free
Software Directory's/ [encryption category]
(https://directory.fsf.org/wiki/Collection:PRISM)!  In light of all this
deception, I would like to reiterate what was said in *footnote #22:*
`Keep control of your computing, so it doesn't control you!'

[29] Extensible Messaging and Presence Protocol

[30] Why did I add a /dislike/ button to my website?  Could it be that I
[dislike Facebook] (http://www.fsf.org/facebook)?
