1/0 = 0 • Hillel Wayne
Have a tweet:
I have no idea if Pony is making the right choice here, I don’t know Pony, and I don’t have any interest in learning Pony. But this tweet raised my hackles for two reasons:
It’s pretty smug. I have very strong opinions about programming, but one rule I try to follow is do not mock other programmers.1 Programming is too big and I’m too small to understand everything.
mathematics  computer-science  programming  programming-languages  programming-patterns 
august 2018
[Linux Kernel Linked List Explained]
This is a brief note on how to use Linux kernel's linked list in your own applications. Concepts behind the implementation of the list and some examples on how we can use it to create new data structures are also covered
linux  kernel  algorithms  data-structures 
may 2017
What happens when the pager goes off? – Increment: On-Call
When a software application or system breaks, changes in important metrics trigger an automated alert that something is going terribly wrong. The alert is routed to an engineer who is on-call for the application or system–an engineer responsible for making sure that any incident or outage is quickly triaged, mitigated, and resolved–and delivered via a page from a paging app like PagerDuty. What happens after the engineer is paged is where the situation gets incredibly interesting and reasonably complicated: incident response is a panicked, measured, and carefully choreographed race to triage complex software outages in a matter of minutes. In the age of multi-billion-dollar software companies, the difference between mitigating an outage in five or fifty minutes can correspond to millions of dollars in lost revenue. When every second of downtime comes with a cost, a good incident response process is key.
april 2017
I don't love the single responsibility principle
Did you ever happen to disagree with a colleague on the single responsibility principle and its application? Let's try to understand why that could be the case.

I once worked with a colleague, whom we shall call Stan, who had a very different understanding of the single responsibility principle than I had. During code reviews, his feedback would often be that my classes "tried to do too much" and broke the single responsibility principle. My feedback to his patches was often the opposite, that his classed did too little and lacked cohesion.

How can we explain this disagreement? Let's assume that we both know the SRP and try to apply it at the best of our abilities: I can only see two alternatives.

The first possibility is that the classes are actually the wrong size. People are wrong all the time: maybe I was wrong and he was right or vice versa. While this sometimes happens, I would expect any reasonably competent developer who is aware of the SRP to only make this kind of mistakes in exceptional cases and not in a fundamental manner. Also, for a class to have the wrong size, there must be an objective measurement of the size, and this should eliminate pointless arguments.

The other possibility would be that different programmers have a different understanding of the principle or how it is presented. In turn, they can't agree on what constitutes the appropriate size and thus can't reach an agreement.
programming-patterns  programming  coding  software-engineering 
april 2017
Jessie Frazelle's Blog: 10 LDFLAGS I Love
Hello and welcome to what will become the most sarcastic post on my blog. This is going to be a series of “buzzfeed” style programming articles and after this post I very happily pass the baton to Filippo Valsorda to continue. And I urge you to write your own as well.
compilers  computer-architecture  programming  coding  tips 
april 2017
Datasets for Analysis & Download | data.world
Discover and share cool data, connect with interesting people, and work together to solve problems faster.
data  data-mining  research  tools 
april 2017
Facade pattern - Wikipedia
The facade pattern (also spelled façade) is a software design pattern commonly used with object-oriented programming. The name is by analogy to an architectural façade.
software-engineering  computer-science  programming  programming-patterns 
march 2017
bhrigu123/classifier: Organize files in your directory instantly, by classifying them into different folders
Organize files in your current directory, by classifying them into folders of music, pdfs, images, etc.
github  tools  python  filesystem  software 
march 2017
Unix System Call Timeouts
Recently I was writing some code where I wanted to wait for a child process, and I wanted the wait call to have a timeout. The use case is something like this: you spawn a subprocess, and you expect the subprocess to complete within ten seconds. If it doesn’t complete in that time, you want to treat it as an error (and perhaps kill the child).
linux  computer-science  operating-systems  sysadmin  programming 
march 2017
No Silver Bullet Reloaded Retrospective OOPSLA Panel Summary
It has been more than 20 years since Mythical Man-Month, author Fred Brooks, published the article No Silver Bullet: Essence and Accidents of Software Engineering. In his original paper, Fred Brooks argues that there is no innovation in software development that would achieve an order of magnitude increase in productivity (the silver bullet) in the ensuing ten years. Brooks identifies two categories of complexity in software development: the essence and the accident. The essential complexity of software development is related to the specification, design (mapping specification to software), and testing (that the design properly meets business needs). The accidental complexity refers to the difficulties related to implementation (languages, runtime, tools, and programming techniques). In his article, Brooks explained how the various innovations that attempted to address accidental complexity (at the time) were not silver bullets, and concluded that the only things that may yield close to an order of magnitude productivity improvement are those that address essential complexity, such as improvements in requirements gathering, rapid prototyping, and cultivating good design skills.
sofware-engineering  programming  computer-science  reference  computer-history  programming-patterns 
march 2017
Some time ago, I started learning how modern Wi-Fi networks are built. As a security enthusiast, I was particularly interested in how their safety mechanisms can be broken and strengthened. In this post, I'm going to list problems that can't easily be solved yet and what their solutions could be if we created a new wireless network security protocol. NOTE: this post is not meant for tech-savvy people only - in every paragraph I'm going to try to explain the problem in layman's terms.
security  computer-networking  cryptography  computer-security  github  articles 
march 2017
Millennials Question- Whats wrong with Millennials - YouTube
Simon Sinek on Millennial and Internet Addiction
Whats wrong with Millennials, this is something that has a lot of meaning , and this gives us a look into our lives and the errors that we make.
internet  philosophy  society  politics 
february 2017
Becoming And Being An Activist | PopularResistance.Org
You never know how it’s going to work out. . .

About 16 years ago my youngest son, soon to graduate from high school, visited a used clothing shop with two buddies. One of them found a pink suit, pink tie, and pink fedora hat that fit him just fine and made my son’s friend look like some strange character out of a 1940s movie. As a joke, he wore the suit to his graduation a few weeks later.

The other day, I picked up a copy of his school’s alumni magazine. There was a photograph of an African American girl in the pink suit with the pink fedora. For 16 years that outfit has been handed down from class to class to be worn at graduation by the person who best exemplified the spirit of the pink suit – whatever that is.

You never know how it’s going to work out. . . .

In February 1960 four black college students sat down at a white-only Woolworth’s lunch counter in Greensboro, NC. Within two weeks, there were sit-ins in 15 cities in five southern states and within two months they had spread to 54 cities in nine states. By April the leaders of these protests had come together, heard a moving sermon by Martin Luther King Jr. and formed the Student Non-Violent Coordinating Committee. Four students did something and America changed. Even they, however, couldn’t know what the result would be.

One of the four, Franklin McCain, would say years later, “What people won’t talk (about), what people don’t like to remember is that the success of that movement in Greensboro is probably attributed to no more than eight or 10 people. I can say this: when the television camerasstopped rolling, the folk left. I mean, there were just a very faithful few. McNeil and I can’t count the nights and evenings that we literally cried because we couldn’t get people to help us staff a picket line.”

Four people. . . . That’s you and the students on either side of you and the one in front of you. That’s all you need to make history sometimes.

I knew a civil rights leader named Julius Hobson. He used to say that he could start a revolution with six men and telephone booth. He seldom had more than ten at one of his demonstrations. Once in a church with about 30 parishioners, he commented, “If I had that many people behind me, I’d be president.”

But between 1960 and 1964, Julius Hobson ran more than 80 picket lines on approximately 120 retail stores in downtown DC, resulting in employment for some 5,000 blacks. He initiated a campaign that resulted in the first hiring of black bus drivers by DC Transit. Hobson forced the hiring of the first black auto salesmen and dairy employees and started a campaign to combat job discrimination by the public utilities.

Hobson directed campaigns against private apartment buildings that discriminated against blacks and led a demonstration by 4,500 people to city hall that encouraged the DC to end housing segregation. He conducted a lie-in at the Washington Hospital Center that produced a jail term for himself and helped to end segregation in the hospitals. His arrest in a sit-in at the Benjamin Franklin School in 1964 helped lead to the desegregation of private business schools. In 1967, Julius Hobson won, after a long and very lonely court battle that left him deeply in debt, a suit that outlawed the discrimination in teaching, teacher segregation, and the unfair distribution of spending, books and supplies. It also led, indirectly, to the resignation of the school ‘superintendent and first elections of a city school board. A few years later he started a third party that got him elected to the city council. And a few years ago that party became the local Green party.

You never know how it’s going to work out. . . .or when. .

In 1848 the first women’s conference took place at Seneca Falls in New York. 300 people were there but only one of the women present lived long enough to vote.

Usually I ask students: knowing what you know now would you have gone to the Seneca Falls conference or would you have said why bother? Would you have been an abolitionist in 1830, decades before emancipation? Would you have been a labor activist in 1890, a gay rights advocate in 1910? Or would you have said why bother?

I don’t have to ask you those questions because you’re here even though you don’t know how it’s going to work out. You have taken the leap of faith that is the necessary first step for progress: you have imagined that it is possible.

I’m not going to kid you. It’s hard. Producing positive social, economic, and political change in a country as locked down as ours is hard work. And your generation has already taken it in the chops.

With the sole exception of black Americans in the post-reconstruction era, no other generation has been so deprived of its constitutional rights and civil liberties. No other generation of young males has been sent to prison in such numbers for such minor offenses. And few generations of the young have been so consistently treated as a social problem rather than as a cause of joy and hope. Except for blacks in the post-reconstruction era – no other generation has been so deliberately cheated of so much.

If you think I exaggerate, consider these figures from the Department of Labor, figures that you won’t see on the evening news, or read in the morning paper. The earnings of everyone under 25 – black, white, latino, male and female – have actually declined over the past twenty years in real dollars, about 5% for the most part. But get this: the earnings of black and white males under 25 are down 17 to 21%. A typical white male is earning $97 less a week in real dollars than 20 years ago.

Your rights as a citizen of the United States have also been steadily eroded during your lifetime. There have been increased use of roadblocks, searches without warrants, wiretapping, drug testing, punishment before trial, travel restrictions, censorship of student speech, behavior, and clothing; excessive requirements for IDs, youth curfews, video surveillance, and an older drinking age – all of this before September 11.

Yet the system that envelopes us becomes normal by its mere mass, its repetitive messages, its sheer noise. Our society faces what William Burroughs called a biologic crisis — “like being dead and not knowing it.” And even as we complain about and denounce the culture in which we find ourselves, we are unable bury it or to revive it. We speak of a new age but make endless accommodations with the old. We are overpowered and afraid.

To accept the full consequences of the degradation of the environment, the explosion of incarceration, the creeping militarization, the dismantling of democracy, the commodification of culture, the contempt for the real, the culture of impunity among the powerful and the zero tolerance towards the weak and the young, requires a courage that seems beyond us. We do not know how to look honestly at the wreckage without an sense of surrender; far easier to just keep dancing and hope someone else fixes it all.

Yet, in a perverse way, our predicament makes life simpler. We have clearly lost what we have lost. We can give up our futile efforts to preserve the illusion and turn our energies instead to the construction of a new time.

It is this willingness to walk away from the seductive power of the present that first divides the mere reformer from the rebel — the courage to emigrate from one’s own ways in order to meet the future not as just a right but as a frontier.

How one does this can vary markedly, but one of the bad habits we have acquired from the bullies who now run the place is undue reliance on traditional political, legal and rhetorical tools. Politically active Americans have been taught that even at the risk of losing our planet and our democracy, we must go about it all in a rational manner, never raising our voices, never doing the unlikely or trying the improbable, let alone screaming for help.

We have lost much of what was gained in the 1960s and 1970s because we traded in our passion, our energy, our magic and our music for the rational, technocratic and media ways of our leaders. We will not overcome the current crisis solely with political logic. We need living rooms like those in which women once discovered others like themselves. The freedom schools of the civil rights movement. The politics of the folk guitar.. The pain of James Baldwin. The laughter of Abbie Hoffman. The strategy of Gandhi and King. Unexpected gatherings and unpredicted coalitions. People coming together because they disagree on every subject save one: the need to preserve the human. Savage satire and gentle poetry. Boisterous revival and silent meditation. Grand assemblies and simple conversations.

Above all, we must understand that in leaving the toxic ways of the present we are healing ourselves, our places, and our planet. We must rebel not as a last act of desperation but as a first act of creation.

You can do it. . . .in fact it’s pretty much up to you. . . you can tell when change is coming. .. it’s when the young demand it. We’ve had our chance and we blew it. And you’ve got at most about ten years to set things straight. Then you’ll get busy with other things.

In fact, you have to do it.

I know it looks hard. We seem, as Mathew Arnold put it, trapped between two worlds, “one dead, the other powerless to be born.”

So how can one maintain hope, faith and energy in such an instance?

If we accept the apparently inevitable – that is, the future as marketed to us by the media and our leaders — than we will become merely the audience for our own demise. Our society today teaches us in so many ways that matters are preordained: you can’t have a pay raise because it will cause inflation, you are entitled to run the country because you went to Yale, you’re not good enough to go to Yale, you are shiftless because you are poor; there is nothing you can do to change what you see on TV, you don’t stand a… [more]
politics  political-resistance  activism  sociology  society 
december 2016
Liquorix Kernel
Liquorix is a distro kernel replacement built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads.
linux  kernel  operating-systems 
october 2016
LittleSis - Profiling the powers that be
LittleSis* is a free database of who-knows-who at the heights of business and government.
politics  government  activism  database  data 
october 2016
Zstandard - Real-time data compressoin algorithm
Zstandard is a real-time compression algorithm, providing high compression ratios. It offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder (see benchmarks below). It also offers a special mode for small data, called dictionary compression, and can create dictionaries from any sample set. Zstandard library is provided as open source software using a BSD license.
computer-architecture  tools  github  computer-science 
august 2016
IPFS is the Distributed Web
A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
filesystem  filesharing  p2p  censorship  web  internet  computer-networking  surveillance  privacy  decentralized-web 
june 2016
SAFE Network - Privacy, Security and Freedom
Rather than using data centers and servers which are prone to data theft and surveillance, the SAFE Network uses advanced peer-to-peer technology that joins together the spare computing capacity of all SAFE users, creating a global network.
security  p2p  privacy  surveillance  computer-networking  decentralized-web 
june 2016
Mapping Corruption in the Panama Papers with Open Data | The Scrapinghub Blog
We are at a point in the digital age where corruption is increasingly difficult to hide. Information leaks are abundant and shocking.

We rely on whistleblowers for many of these leaks. They have access to confidential information that’s impossible to obtain elsewhere. However, we also live in a time where data is more open and accessible than at any other point in history. With the rise of Open Data, people can no longer shred away their misdeeds. Nothing is ever truly deleted from the internet.

It might surprise you how many insights into corruption and graft are hiding in plain sight through openly available information. The only barriers are clunky websites, inexperience in data extraction, and unfamiliarity with data analysis tools.

We now collectively have the resources to produce our own Panama Papers. Not just as one offs, but as regular accountability checks to those in situations of power. This is especially the case if we combine our information to create further links.

One example of this democratization of information is a recent project in Peru called Manolo and its intersection with the Panama Papers. Manolo used the webscraping of open data to collect information on Peruvian government officials and lobbyists.
internet  panama-papers  data  data-mining  web  python 
june 2016
Selected Data Mining Papers
Below are select papers on a variety of topics. The list is not meant to be exhaustive. The papers found on this page either relate to my research interests of are used when I teach courses on machine learning or data mining.
data-mining  papers  mathematics  web  data  internet 
june 2016
Intel ME (Manageability engine) Huffman algorithm
Starting at version 6 the "firmware" for the Intel manageability engine (sometimes: management engine) uses a custom compression scheme. Some of the modules are compressed with standard lzma, but others use a custom scheme whose details remained unknown until this publication. Making it impossible to inspect and audit modules compressed with it. The ME runs its own operating system on a dedicated seperate cpu inside all modern intel chipsets. With direct access to hardware, including all memory, and networking(including wifi). Is capable of running while the system is in S3 (aka off). It has code to break into your graphics/input devices outside of the Host OS' control (for secure PIN input). It provides pavp (protected audio video path) also known as DRM. It can be configured as the ultimate RAT. Code running on the ME cpu is often said to be running in ring -3. In short there are plenty of reasons to be curious.
intel  rootkits  malware  hacking  security  surveillance 
june 2016
Wires and Bits
Intel Management Engine (ME) is the firmware implementing Intel's Active Management Technology (AMT).

ME is a firmware blob running inside a special ARC core located inside the Intel Memory Controller Hub (MCH). It runs completely out-of-band with the main CPU, and is entirely transparent to the operating system. The purpose of AMT is to provide a way to manage machines remotely, similar, but more powerful than IPMI. To achieve this task, it is capable of accessing any memory region, while the main CPU needs not be aware, and cannot be aware of ME's existence.

While AMT can be a great value-add, it has several troubling disadvantages. ME is classified by security researchers as "Ring -3". Although ME is cryptographically protected, researchers have been able to exploit weaknesses in the ME firmware and take partial control of the ME. This makes ME a huge security loophole, and it has been classified a very powerful rootkit mechanism, even more potent than SMM rootkits.
rootkits  intel  cpu  hacking  security  malware  capitalism  surveillance 
june 2016
Fabricator (intelligence) - Wikipedia, the free encyclopedia
A fabricator is an intelligence agent or officer that generates disinformation, falsehoods or bogus information, often without access to authentic resources.[1] Fabricators often provide forged documents in order to substantiate their falsehoods.[2] It is normal intelligence practice to place identified fabricators on a black list or to issue a burn notice on them and to recall intelligence sourced from them
government  information 
june 2016
Anonymous remailer
An anonymous remailer is a server that receives messages with embedded instructions on where to send them next, and that forwards them without revealing where they originally came from. There are Cypherpunk anonymous remailers, Mixmaster anonymous remailers, and nym servers, among others, which differ in how they work, in the policies they adopt, and in the type of attack on anonymity of e-mail they can (or are intended to) resist. Remailing as discussed in this article applies to e-mails intended for particular recipients, not the general public. Anonymity in the latter case is more easily addressed by using any of several methods of anonymous publication.
anonymity  privacy  computer-networking  computer-architecture  cryptography  hacking 
june 2016
The Vula Connection - YouTube
The Vula Connection is one of apartheid's untold stories, and at its centre is an unusual hero, Tim Jenkin.

Quiet, and bookish, he turns against his own government and the privileged lifestyle it guarantees him, signing up with the black liberation movement that is banned in apartheid South Africa. Jenkin is caught and dispatched to a high security prison.

But against all odds, his patience and meticulous attention to detail get him and two prisoners through 10 locked doors...to freedom. This, however, is much more than an escape story.

It's about a man who plays a pivotal role in taking on the Apartheid regime in the most unexpected way. After his audacious break-out, Jenkin disappears into the backrooms of the ANC's exiled military.

Working from a non-descript London flat, he sets about designing a secret communications system which enables a small group of highly skilled operatives to dodge the Republic's spies and penetrate South Africa's borders.

Then under the nose of prison guards, he succeeds in getting messages passed to the imprisoned Nelson Mandela. These secret communications help to set up the former liberation party to claim victory in South Africa's near miraculous political transition.

But as the dream of peace becomes a reality, Operation Vula is bust and the fall-out represents one of the final skirmishes in the fight for power in this troubled land.
computer-networking  communication-systems  documentaries  videos  to-watch  south-africa  africa  apartheid  tim-jenkin 
june 2016
The Vula Connection - Promo - YouTube
Tim Jenkin is an unlikely revolutionary. Breaking from a privileged life in apartheid South Africa, Jenkin placed himself in extreme danger as a young man by volunteering to assist the banned African National Congress. After a dramatic arrest, and even more outrageous prison break, Tim disappeared into the backrooms of the liberation movement. But working from a non-descript London flat , pre-internet, he designed an ingenious secret communications system which enabled operatives to secretly pen...
computer-networking  communication-systems  documentaries  videos  to-watch  south-africa  africa  apartheid  tim-jenkin 
june 2016
vimperator labs
Vimperator is a Firefox browser extension with strong inspiration from the Vim text editor, with a mind towards faster and more efficient browsing. It has similar key bindings and you could call it a modal web browser, as key bindings differ according to which mode you are in. For example, it has a special Hint mode, where you can follow links easily with the keyboard only. Also most functionality is available as commands, typing :back will go back within the current page history, just like hitt...
web-browsers  vim 
june 2016
Tabs versus Spaces: An Eternal Holy War.
The last time the tabs-versus-spaces argument flared up in my presence, I wrote this. Gasoline for the fire? Maybe.

I think a big part of these interminable arguments about tabs is based on people using the same words to mean different things.

In the following, I'm trying to avoid espousing my personal religion here, I just thought it would be good to try and explain the various sects.
programming  programming-languages  computer-history  emacs  vim  editors  coding  computer-science 
may 2016
MOS Technology 6502 - Wikipedia, the free encyclopedia
The MOS Technology 6502 (typically "sixty-five-oh-two" or "six-five-oh-two")[2] is an 8-bit microprocessor that was designed by a small team led by Chuck Peddle for MOS Technology. When it was introduced in 1975, the 6502 was, by a considerable margin, the least expensive full-featured microprocessor on the market. It initially sold for less than one-sixth the cost of competing designs from larger companies, such as Motorola and Intel, and caused rapid decreases in pricing across the entire proc...
6502  microcomputer  microprocessors  circuits  electronic  logic 
may 2016
Welcome to Visual6502.org! Here we'll slowly but surely present our small team's effort to preserve, study, and document historic computers. We aim to present our work in a visual, intuitive manner for education and inspiration, and to serve as a solid verifiable reference for classic computer systems. See our slides for an introduction and some fun images.

Have you ever wondered how the chips inside your computer work? How they process information and run programs? Are you maybe a bit let ...
hardware  cpu  computer-architecture  computers  circuits  electronic 
may 2016
Transistor - Wikipedia, the free encyclopedia
A transistor is a semiconductor device used to amplify or switch electronic signals and electrical power. It is composed of semiconductor material usually with at least three terminals for connection to an external circuit. A voltage or current applied to one pair of the transistor's terminals changes the current through another pair of terminals. Because the controlled (output) power can be higher than the controlling (input) power, a transistor can amplify a signal. Today, some transistors are...
electronic  wikipedia  circuits  logic  hardware 
may 2016
Invisible Internet Project: Purple - A C++ client
Invisible Internet Project:
Network without borders

We are building network which helps people to communicate and share information without restrictions.

Free from censorship. Free from privacy violations.
anonymity  computer-networking  censorship  privacy  tools 
may 2016
Wire — modern, private communication. For iOS, Android, OS X, Windows and web.
Modern, private communications. Crystal clear voice, video and group chats.
No advertising. Your data, always encrypted.
encryption  messaging  security  tools 
may 2016
The Architecture of Open Source Applications
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes.

Our goal is to change that. In these two books, the authors of four dozen open source applications ...
programming  programming-languages  computer-science  computer-architecture  performance  software  open-source 
may 2016
« earlier      
6502 academy activism africa algorithms analysis animals anonymity apartheid articles assembler assembly bio-hacking bitcoin bitcoin-cryptography blogs books brain brazil brazilian-music bsd c++ capitalism censorship charles-bukowski chill circuits classes code coding communication-systems compilers computer-architecture computer-history computer-networking computer-science computer-security computer-viruses computers conferences conspirancy corruption courses cpu cracking cryptography culture data data-mining data-structures database death debugging decentralized-web democracy disassembly documentaries editors electronic emacs email emulation encryption engineering fantasy filesharing filesystem foss free-software github gnupg government guides guitar hacker-culture hacking hardware history human-cruelty human-rights human-violence ifttt indie-music information intel internet interviews iot isaac-asimov jacob-appelbaum kernel kings-of-leon leaks learning lectures letsencrypt library libre libressl linux literature logic malware maps mathematics messaging microcomputer microprocessors mips movies music news nsa online-courses open-source openbsd operating-systems org-mode osx p2p panama-papers papers performance philosophy podcasts poems political-resistance politics post-snowden presentations president-dilma president-lula privacy programming programming-languages programming-patterns punk-music python quantum quantum-computing quantum-proof questions quotes rap-music read-later reading-list reddit reference regex research reverse-engineering rng rootkits satoshi science science-fiction security shell short-movie slavery slides snowden social-resistent society sociology software software-engineering sofware-engineering south-africa speeches ssl surveillance sysadmin tcp tcp/ip terrorists test-environment theintercept tim-jenkin tips to-watch tools tor-network tutorial twitter twitter-likes unix usa videos vim war web web-browsers wikipedia wireshark wishlist youtube zsh

Copy this bookmark: