Hi guys, my name is Farhan and This is something that I've been working on for some time now. This is the first time I'm talking about it anywhere at all it's very much a work in progress and How many of you are programmers here? You can just can I have another raise of an alright fine? so This is more of something which you know probably should have been spoken out Spoken out at FOS or something like that. I was told that this is going to be primarily a technical audience So hence I'm just you know, this is a work in progress, but hopefully you like what's being shown here I Have my original background is Analog electronics That's what I do best but I'm also fairly convergent in C language And that these two things apart last ten years we've been running a place called Lamakan, which is a critical public Open space for liberal politics and culture as well. So it's a mishmash of a lot of things happening here But essentially what I'm going to talk about here Is actually something which you have borrowed directly from the military from the from the defense electronics? So in the defense world there is a concept called Manit, I don't know many if any of you have heard of it So Manit means mobile ad hoc network and the idea of mobile ad hoc network Is firstly it's mobile So it's something that you carry with you like a cell phone or whatever or a man pack Usually they were man packs back in the 70s, but they've reduced the size considerably And as it happens with defense that there are a lot of security implications You should not be able to intercept it. You should not be able to block it It should be reliable. It should last a long time. It should have a very long range I mean all the things that you can think of are there in the Manit So my project is actually called free man. It's a free mobile ad hoc network which is meant for Challenging atmospheres and environments and by challenging I mean that They can be deployed where there is a natural disaster or a man-made disaster or the internet is down or the you know I mean a war situation in times of peace everywhere But it's of particular interest to where the internet is down and I will tell you why that is But just before we get there a couple of points that I wanted to make one is that after 1857 revolution The British decided that it was very important that the communication lines across The subcontinent were you know strengthened So what they did is that they actually put together The telegraph network of India right and the 1882 Telegraph Act also came in as a result of that And if you imagine that there's just 6,000 of white mostly men who ran the country and They ran it on these couple of Telegraph lines and the Telegraph lines are at best about 10 bits per second Right and they managed to control us all so that actually shows you the Amplifying power the multiplication factor that communication networks bring into subjugating somebody or into freeing yourself up And what has increasingly happened is this is something that you know I was discussing with Kiran also just a little while ago that We do not imagine how much of bandwidth we require actually we require far less bandwidth than we consume now Right and we do that because most of the bandwidth is you know pictures of kittens, you know videos Advertisements actually large part of it pawn I mean this you can just name it but if you look at for example The entire wiki-pedia can still the text of it fit into a single SD card Right, so the amount of internet that you actually require the data connection that you require for tactical information Tactical information. Okay, the word is tactical that is you know saying I'm going here. Where are you? I'm here where I mean, you know for instance to Denow the position where I mean that I'm standing here. I can do it in about eight bytes accuracy to the Probably one meter Anywhere on the globe, right? I have I can compress that into a single 64-bit integer So the amount of I mean that's the location update, right? You just require eight bytes of information to give a very accurate coordinate so The amount of information that you actually require is far less than we assume it to be And I'll actually discuss that a little what you know, and I'll show you what technology is being used by the armies across the world I'll just give you one example, right? So you look at this this Radio it's called the rifleman radio. Okay, NATO uses it. You guys must have heard of the Star Wars program, right? Ronald Reagan, I mean people who were born around that time, you know, most of this hall doesn't seem to have been born by then but so This is used by soldiers, right? Constantly keeps you in touch with your this is by the way from a brochure of rifleman Keeps you in touch with your entire platoon the platoon leader wise and position Information so it's you know, the entire team is sort of sharing that Leader gets to see where all your soldiers are so actually the many of them have this heads-up display, right?  So it's never you know at one frequency So if one frequency gets jammed you move on to another frequency etc, etc And the way it works is that you basically use a pseudo random number generator, right? A pseudo random number generator basically generates a series of random numbers, but they are not random Given the initial number There's a particular sequence that it does and you use these to call various channels out at various points in time So that both the receiver and the transmitter keep jumping in the frequencies Simultaneously so that others can't jump around at the same time then they use encryption Encryption is already available for us civilians, right? We have the SSL 3 etc etc. They use a AES 25 now You see this Put a soldier on the radio in the mountain and he'll act as a bridge between Other soldiers etc. So you know they can relate from each other And you must have seen the dramatic use of this for example when they took out Osama bin Laden that People rushed in and from there to the helicopter from the helicopter to a flying drone from flying drone to a satellite all the way through a You know inter-satellite link to White House and you know this Obama Osama Okay Killing of Obama, you know something something is already fairly dramatic stuff But the most dramatic thing here is the radio itself by general dynamics You can't buy it Only the governments can buy it right and If you were a government it would still cost you about 50 lakh rupees That's the cost of this radio Now I can't imagine What would go into this for it to actually cost hundred thousand dollars right hundred thousand dollars is what it costs The Indian government has bought six thousand of these at a low rate of three thousand crores The order has just gone out So but the point is if you look at each of these technologies Individually they are doable right they're completely doable and This is the sort of stuff That there is no reason why citizens should not have That says that citizens should be able to communicate with each other without relying on infrastructure whether it's internet or whatever should be able to share or communicate very Permanent life-saving bits of information and their own personal status whatever you know alive dead. I'm here You know I've been caught whatever etc. Etc and You know coordinate with each other. I think it's that should be fundamental right You know given that the technology is here and it should be encrypted Nobody else should be able to interfere with you etc. I mean everything that is about the rifleman Should be available with free man as well So this is the whole idea that we have a mob an open source mobile ad hoc network Okay, and we do precisely and exactly the same thing that The army does But we replicate is exactly the same communication system on our own It should be able to do voice It should be able to do messaging it should be able to do automatic position reporting system Which is you know as you're moving around it should be able to report your position direct links That is from point to point There should be no need for any base station Wi-Fi router nothing etc. You should be able to have at least a range of 10 kilometers here and direct link and then You Should be able to evolve it you should be able to augment it for example You can add a GPS to show your position you should be able to you know pick sensors up You should be able to you know add all sorts of devices to it and Extensibles because it's open and you can hack it etc. And the most important thing is that from 10 million rupees you should be able to do it for less than thousand rupees. I think all these are possible And this is what this project is about so in order to do this these are the three Fields which have to merge together and I need people who will collaborate with us on this So the freemen the freemen uses codecs to compress voice. It's completely based on Arduino Okay, and the reason why it's based on Arduino is that a Raspberry Pi can be compromised because it's got an operating system Right you can route it you can never route an Arduino because it doesn't have an operating system So you might have left it somewhere and somebody would have you know planted a Backdoor onto it etc. Etc with an Arduino That's not possible because an 8-bit processor doesn't have an operating system and your entire source code is with you You can actually flash it from your Computer by yourself without you know relying on anybody else's help so you know that it's completely secure So what happens is on one hand you need to know voice over IP codec, etc I was actually part of the ITF work group which standardized voice over IP I've belonged to the stonage of voice over IP before the standards were there in fact the precursor to SIP protocol which is used for VoIP We actually wrote the first reference implementation very few people know this It was actually written in India by us and everybody else interoperated off with us You have to be able to do very very cutting-edge stuff with Arduino and I'll discuss that in a little while Where you have to actually debug not with a debugger word, but with an oscilloscope because this is where the analog meets the Digital you should know your radio's value should know your analog electronics well as well But all this has to because you know it has to be product productizable at the end of the day The magic is in the software not in the hardware the hardware is actually pretty simple This is what it looks like so that's the hardware and It can do voice and if you see here I've connected it through the serial port of the Arduino to a simple Terminal emulator on the phone itself so you can use the phone as a user interface right now I have problems even with that because the phone can be compromised right we saw what Pegasus did So it's best to actually instead of this have a terminal a hardware terminal itself written in a In something which is a little more elaborate than the Arduino Through which you can do messaging directly right and this is like the old IRC chat I mean you know this Goose is sitting here He and I have been through the pre-history of internet on IRC servers for a long time So as you can see the hardware is pretty simple and the magic is in the software And I'll explain what it takes to get this thing going and where we are now so this is the maths we are using a LoRa module and we have a spreading factor of six and Bandwidth of 500 kilohertz right so The spreading factor essentially is like this that LoRa does not work out one frequency, but it has this chirps with chirp from one frequency to another so right and The direction of the chirp says whether it's zero or one and the spreading factor will tell you how many chirps make up one bit Right, so there's a spreading factor and the bandwidth is 500 kilohertz So what happens is your chirp is 500 kilohertz wide when your chirp is 500 kilohertz wide You can't jam the signal anywhere because your jamming has to be 500 kilohertz wide for it to be effective And over and above that you can also do you know frequency hopping which is also possible With these LoRa modules. So we actually Have gone up to 25 kilometers range actually on this LoRa thing and With this setting of spreading factor six and 500 kilohertz bandwidth We actually have I can sort of demonstrate to you here the LoRa power output was 8 plus 18 DBM DPM which will amount about What 70 milliwatts right 70 milliwatts of power and 10 kilometers path loss at 433 megahertz is 105 dB by the way, all my entire presentation is this right. I mean they're all just my lab notes So you'll just have to put up with fairly bad Powerpoints, it's not a powerpoint. It just pictures from a notebook So what happens is plus 18 dBm path loss is minus 105 dBm So the receiver the signal at the receiver is minus 87 dBm and the minimum discernible level is Minus 111 dBm. Now, how do I know this? I know this because I measured it So you take a LoRa module you add an attenuator in the middle and you connect it to a spectrum analyzer and you keep going down Until the signal is no longer Receivable so you know at what point it's going. So actually this is all experimentally verified, right? So we've actually it took us almost two months to get this entire math at place Anyhow, but even with this 10 kilometers path loss You still have a 24 dB link margin that is your signal can go down another 250 times Before you lose the signal, so it's a fairly reliable even at 10 kilometers but the whole idea is that This margin of 24 dB can be simply lost if there is a wall or two or three walls in the middle Which is why the link margin has to be that much So that's first part of the maths the second part of the maths, which is this that At that setting we were able to get about 35 kilobits per second on LoRa Which is too high The human voice needs 8,000 samples per second for you to be able to listen to the human voice right actually four kilowatts bandwidth with an equest criterion it comes to 4,000 8,000 samples and The Arduino can give you 10 bits per sample that is 80,000 bits per second Which is far more than the 32 kbps that you have here so We have to compress this down to 32 kilobits per second, right? So what we do is we use something called as an adaptive pulse coding modulation. So what you do here is that you actually Just transmit the difference between two samples instead of transmitting the value of each sample And you digitally just keep adding up the differences and then make it back into the mean Waveform again at the other end But even there What happens is that to save the number of bits? You actually the step size that is if you say you know go five up or three down What is five five could be five into two So you have a multiplier which you are always using the steps to calculate the steps the multiplier that itself keeps moving Which is why it's called adaptive differential pulse code modulation. It's not only differential, but the difference Which is you know counted in the number of pulses is itself a dynamically varying thing There's still a work in progress as the demonstration will show you the voice is not still very clear But you know, this is the hard part. This is really the hard part. A codec usually takes a couple of years to stabilize I was maintaining the arm port of speaks codec and It took me about six months to stabilize it codecs are really hard to do because there is no objective criterion The waveform which goes in and the waveform which comes out are completely different So you can't you know, just take the pictures and compare them to each other It's a human intelligibility which has to be done It's like watching somebody's face and going and redrawing it somewhere else, right Based on five variables.  So voice coding is very difficult Which is why I've said that's still work in progress and This is actually as simple as the hardware gets which is you have an Arduino And you have these two amplifiers the LM386. They are the most commonly used audio amplifiers among Hackers and makers etc. They cost about 10 rupees or 15 rupees each and You use one to amplify the mic to the point where it can be digitized by the Arduino and What you do for the output is that there is no analog output on the Arduino, right? so what you do is you take one pin and you make it go up and down and the up to down cycle you Control in such a way that the average Works out to anywhere between zero and five volts I mean if it's on all the time, it's five volts if it's off all the time It's zero volts if it is on for half the time and off for half the time It's 2.5 volts average. So what you do is you basically charge this capacitor through a resistor and it keeps going up and down like this Yeah You get a waveform being produced by that so And we're using an Arduino because Arduino cost only 200 rupees to buy right 150 rupees actually So this is the entire circuit diagram of what we have to put together Most of this stuff is actually available in Chandni Chowk, right and you can buy this entire stuff for 500 rupees And put this thing in there together the Arduino is about 200 rupees The lower module is another 200 rupees and 50 rupees each for one of these I mean two of these are audio amplifiers and you're done So now the thing is that the Arduino has only two kilobytes of RAM We are not talking of two megabytes or gigabytes, but 2,000 bytes. That's all Can I get some water please? right So what we have to do is As the audio is coming in now the the key thing about Implementing wipe and such a small footprint is that from the mic You are 8,000 times digitizing something right and you have to keep Compressing it and keep shutting it out as well, right on the other hand there's stuff coming in from The radio which you need to keep playing back to the speaker as well So you're at least doing four or five things at once And there's no multitasking because there's no operating system and this is not Even a 16 bit processor. It's an 8 bit processor the processor That you know went out of fashion in the 1970s, but you're stuck with it. So What you have to and and there is no memory also so The total memory is 2,000 bytes and you are getting 8,000 samples per second So you can't even hold them with you, right? So what you have to do is One packet of sound has to go out Almost every 50 milliseconds, right? Less than 50 every 25 milliseconds. You should finish up with whatever you have so 25 milliseconds is 200 Samples 200 samples have to be shipped out before you can make space to get any more in So what you do is you implement this thing called a circle of upper Where as the packets are coming in as the samples are coming in they're just being written into some memory locations which wraps around and there's another pointer So they are being written by the head and the tail keeps picking them back again So there are two pointers which are sort of dog chasing its own tail all around it and you just keep picking these up And you you cannot wait for long So you basically keep shutting things out you do this both on receive as well as transmit Right, and you only have 16 megahertz of CPU speed. It's not in gigahertz. It's in megahertz, right 16,000 16 million instructions per second and 8 bits now about Jamming so here we use a combination of analog and Digital techniques now the analog technique is very simple. Somebody jams your on one frequency You just go off to another frequency. You just dial out another frequency, right? So that's actually a simple thing to do or you say that you know, let's meet on so and so frequency This is what we hams do you always get on a particular frequency But what happens here is That these frequencies are spread out so huge That it's impossible for anyone to jam Let me just see if I have a picture of that Okay, I'll I'll I'll come to it the pictures Dropped it somewhere the other thing that you could also do with a lower module is you can actually do frequency hopping That is you can actually rapidly change frequency From one packet to another that is you transmit one on frequency a you go to frequency x for the second come back to frequency j then frequency k etc But to do that both the sides have to you know jump and sink, right? So how do you sink that up is a question and the way you do that is actually By sinking the clocks of both the sides together and one way simple way of doing it is to use GPS module Not for positioning but to get your clock right because the GPS Also transmits a clock signal, which is the one of the most accurate clock Signals possible in the world because it's based on cesium clocks, which are flying on those satellites So you just take that and sink the clocks on both the Freeman radios that you have and then you can keep jumping in Sync and others will not be able to intercept you So if you do that, that's another 400 rupees a GPS if you would like to discipline do the GPS discipline Okay, then we come to encryption. So the the the uncrackable Encryption is not public private key encryption But but private key encryption that is, you know, both of us have one secret We say, okay now we'd like to speak secretly and then Both of us key in the same Key on both ends and everything is encrypted, right now for that AES is actually the most powerful encryption system it uses 256 bits But this is too expensive for the Arduino and I will talk about what to do when you run out of speed on the Arduino One way is to offload this To a Raspberry Pi or a PC that is you use this Freeman only as a modem connected to a PC and Do the encryption on the PC but the PC itself can be Compromise that can be keyloggers then there can be you know Things which are in the background monitoring your speaker and mic etc. So it's a little difficult to do that This was the defense Department of Defense US encryption standard for a very long time But it's no longer secure what happens with most of these encryption things is that you make It's so difficult to try out various combinations that you sort of lose track I mean you cannot do it in real time It might take you months to actually find out what the message was by trying out various keys If you remember the movie on Alan Turing There this these machines which keep on trying various things, right? So what happens is you come out with one encryption standard and after a couple of years the computers become so powerful that they can Crack it then you do something more complex. So this is crackable Not crackable by people in India, but you know the Freeman is supposed to be universally applicable solutions So you're not talking about Indian context here at all or Freeman could even be used by the Indian defense forces In which case, you know, they have to fight with others who have, you know, Chinese and all that who have more You know computing power at their resource One option here is this now what happens is that most of the time we choose passwords Which are based on your nephew's name or your girlfriend's name except I mean this is what we do, right? So they are guessable because most of the time they are text and if they are text then you are just limited to 26 letters That's why, you know, you say please again, you know include Punctuation mark and this and that etc. But even then they are actually guessable. So what you do is you take this password and Take an md5 checksum Which is a 40-bit thing. So whatever your password is even if it's a hello one two three you put it into that then you get an md5 Thing you use that as a password or you use that as a key, right on to something called an RC4 There's still a work in progress I have not managed to you know rewrite it and assembly because it has to work in real time on the Arduino You know while it is doing the encryption of your coding and decoding etc. And all the others are going on But this is where some help is required. The other way is to move To a more powerful embedded controller. So there's something called blue pill I don't know how many of you have heard of it, but blue pill is like Arduino But it it runs on an arm processor, which is a 32-bit processor. It's causes about the same but the problem with Blue pill and teen C are firstly they are costly, which is not such a big deal But the more important thing is that they are not universally available The whole idea is to put a solution together that in any city in the world You should be able to go to a hobby electronic market buy this stuff put it together And you have something working, right? That's the whole thing that it should be viral It should be hackable that everybody should have access to this stuff So this is a status now the the communication core has been done We managed to get about almost 4800 bytes per second out of this. We have already created the first Noise on wipe that is, you know, I can completely make out what the other person is saying So you you know, I mean what happens is when we talk about Telephony We are used to Certain levels of service, right? and These levels of service are always changing for example with 4g our voice is much more clearer than it used to be earlier and if you if you remember The a.m. Radio especially I don't know how many of you listen to Binaka Geetmala and Sri Lanka broadcasting corporation. It was far worse, right? but in times of emergency you can afford to relax the Quality of the voice as long as you can communicate intelligibly, right? So that's the whole idea that We should be doing that we have done range tests. It's actually goes up to 25 kilometers So the way we did it is we actually flew One of these on a party balloon Right because it's very small. So you put it with the mercury Thing and you know with the GPS you fly it out. So, you know where it has gone and So it's actually gone far more than 25 kilometers per 25 kilometers clear range And the user interface has to be done. So, you know, we need to still do some parts of it Now the whole idea is usually putting up a tft screen a QoT keyboard will make it extremely expensive one way is to pair it with a pair it with a phone like I've done here and other ways of course To build something, you know, which can input text because you have to be able to input at least your encryption key You have to be able to, you know, input your text messages Somebody else's name be able to chat with it, right? So either use a t9 in which case you can save the number of keys or go for 40 keys There's push buttons or something like that But all that makes it a little difficult to assemble, right as opposed to pairing it with a phone or with a Laptop in which case you can you know work well and everybody has a phone, but the whole idea is it's not Guaranteed to be secure You don't know what the phone is doing, which is why it's you know important to do that So this I have already pushed on to the jithub. So if you can go to jithub.com actually, I forgot to write that a for Han you can actually Download the circuit diagram and the software The software is very badly written right now It's not refactored and made smooth and very readable because I've been hacking at it all the time But this is the latest snapshot, which is there. So it's actually jithub slash a for an slash free man. That is the earlier And you know, that's how you contact me. That's my email address One of the businesses that we run is called hf signals comm which is an open source analog radios and There is also exceed comm we have built to Space missions till now one was launched by SpaceX the other by srow We are the first private space company as well. So there, you know, we have actually a Cube sat up in space Which can digipede meaning it it's a digital repeater of packets of data Which it can repeat but there's short packets 70 bytes and They can be paired with a new walkie-talkie, but you know again It's it's it's a good solution on paper But you should be able to track the satellite the satellite is available only for 20 minutes in a day You know where it is, you know, you should be able to point the see what happens is most of the solutions that we propose We do not look at how practical the solution is for example There's a solution saying you can do Wi-Fi range it will go to 10 kilometers You take a Pringles can and in that you put an antenna and you know it does but it's actually impractical because Both the Pringle cans which are 10 kilometers that we have to point to each other within about one degree accuracy So even a little bit of wind can shake it off, you know if it's raining the thing goes away, etc So you need something which is reliable which works on you know whip antennas or a piece of wire It just works, right? It should have no problems in working at all. So That's actually what we're trying to do here I can take questions if you have and then we'll try seeing if this thing works So two questions So what a little tangential There are hardware encryption check chips, right? Is that too complex? They're very expensive. Where do you get hold of them? Yeah, that's what that's a whole idea. The whole idea is this you should be able to you know put it together on your kitchen table Very interesting presentation first of all and you said the limit the range was 25 kilometers when you flew a balloon But what happens when you're communicating on the ground? So which is why 10 kilometers, right? So what happens is you are in the middle of Trees etc now the first thing is we are at 433 megahertz. So the trees and rain, etc Do not actually you know attenuate the signal as much, right? And we still have a link margin of 24 db over That range, right? So I can actually increase the because what happens is beyond a particular time the line of sight goes away Meaning the curvature of earth comes into space and you know other stuff happen actually cities for 433 megahertz actually better than let's say a forest because These waves will bounce off the buildings and you know get around Right the buildings are almost like mirror to 433 megahertz That's what's very wonderful about this frequency that it actually bounces off the buildings and it spreads all over So the but the range, you know, don't expect more than about five kilometers in an urban Place right but there can be software layer as you know We were talking about it on top of it which can sort of repeat the message Especially if it's encrypted then it doesn't matter who's repeating it, right? So you have a hop count saying okay to repeat for five hops and then it'll die off after that


We will build the southern border. When it comes to politics, Americans are split into tribes. What I have here is a copy of Donald Trump's tax returns. We have his federal tax returns. Progressives, conservatives, and libertarians each speak a different language. Then all of a sudden everyone on the right is a constitutional scholar. You can't have it both ways. You're either taking all of it consistently or go back to Canada. And the language that resonates with one tribe falls flat with the others. Progressives denounce oppression and accuse others of failing to do so. Conservatives denounce barbarism and accuse others of failing to do so. And libertarians denounce coercion and accuse others of failing to do so.  If you want to learn more about the three languages of politics, you can find my book at libertarianism.org.


Yo! Thank you so much for clicking on that video. I appreciate it. I know you do not appreciate the ring light, so the rest of the video does not have it, but I just wanted to let you know that today, Monday, July 2nd, at 6 p.m. Pacific slash 9 p.m. Eastern, I will be doing a live stream on Facebook. I'll leave the link down here below. I'm gonna be playing Fortnite with some followers. I will be answering questions. You can ask me for advice. You can ask me about dating. I don't even know. You don't know if it gets personal, so be it. But it can go so many different ways. But I'm also doing some giveaways so you guys don't wanna miss that. And the reason why we're doing this is just because, you know, on our YouTube channel, we don't really get personal, but it might get personal on the live stream because that's what live chats are for. Like, you just, things just happen. People say things randomly. There's no editing. So it's gonna be interesting, but definitely guys, check it out. 6 p.m. slash 9 p.m. Eastern today. I'll see you there. What's going on, everybody? Welcome to another episode of Asian News Update. And now, I have actually found a name for this and shout out to the person who commented it. We are gonna be calling this AZNN. Asian News, AZN News, Asian News Network, whatever you wanna call it. Gonna just dive straight into it because there are some things that we gotta talk about. This news article has been going on for years now, so we gotta talk about it. It is about Harvard being racist against Asian American applicants. Harvard, yes, one of the most selective and prestigious universities in the entire world is now being sued for keeping their Asian population and admittance at that school purposely at around the 20% mark. So over the past 15 years, the percentage of Asian students at Harvard hasn't really changed a lot. But the amount of Asian students that have applied to Harvard in that 15 years has like doubled. That means they are setting a strict limit on how many Asian or Asian American students they are going to admit into their school. There's some incriminating documentation that has come out of Harvard where they said that Asian Americans rank low, the lowest on the personality test. They're seeing the Asian name, they're reading the essay, looking at the resume, and basically saying Asians lack positive personality. Wait, how do you, all right, here's my question. How do you even judge that? I don't know, but that's their excuse. They're saying the personality actually just means their whole holistic view of the application, meaning their essay and extracurriculars. That's what they're saying makes up the personality. Personality, probably the wrong term to be using, to be honest. So do I think that Harvard has a unwritten rule that they are not going to let their Asian population at their school exceed about the 20% mark? I do. I do think that there's definitely some discrimination. I do think that there is some level of unwritten rule where they're kind of talking to each other, like, hey, there's kind of a lot of Asian students. It's like real at bat. It almost hit 23%. Let's scale it back. Let's just take out some of those students. Take out the application, throw it out. I think there definitely is a little bit of that. Do I think Harvard has an obligation that they should accept every student that academically qualifies? No, because a lot of students academically qualify. Just because you have a perfect GPA and perfect SAT score does not mean you're getting into Harvard. Here's a suggestion, and it would be interesting if Harvard would do this for a year or two, but I'm pretty sure they're not. How about when all the applicants come in, instead of having the names and they're assumed gender and race and culture, you just give them numbers.  You don't know what ethnicity they are or even what gender they are. That would be really interesting. Either way, long story short, and this is the last thing I'll say about it, definitely I think there should be more Asians at Harvard and Harvard is holding back. So that's why they're getting sued. Anyways, you guys let me know in the comments below what you think about that. There's a few good articles, I'll leave the links down below, but moving on to the next article of the AZNN. To all the boys I've loved before, that is the title of the new Netflix film that is coming out that is not only based off a book written by an Asian American female, but there's also an Asian American female leading that movie. So Jenny Han is the author and Lana Condor is an adopted Vietnamese American actress. So shout out to them. Sounds good, right? Representation, story comes from the Asian. It's portrayed by an Asian of course. Looks like it's gonna be like a good teen romantic film. However, some people are angry because basically the story is of a half Asian girl in high school who falls in love and has five secret crushes and none of them are Asian. Now the truth is if you are going by the book, there is no Asian guy. There's just no Asian guy character. I don't know if it's based off of Jenny's life or a story she made up. She did not write in an Asian guy love interest in the book. I understand that in the Netflix film, there probably shouldn't be an Asian guy. Why would you just force in an Asian guy when it's not written in the book? Now I don't know if these guys in the book, if these characters have specific ethnicities that they are, but if not, you could have just changed one of the guys that she fell in love with into an Asian guy. Should you be mad? You know what I'm mad at and this kind of goes back to what we've always said on our channel. Basically in media, what we're used to seeing is just an Asian female swoon and fall in love with everybody but an Asian guy. It's kind of another punch in the gut for Asian guys to be told that, hey, listen, Asian women, they can be seen as whole American human beings that are capable of romance and high school and all these teenage angst emotions that are regular and real. And then Asian guys, we're left out of it. We're ignored. We don't have feelings. They're essentially calling us soft-skinned robots or something, I don't know. Can people fall in love with Asian men? That's my question. I just think it goes back to telling our own story. Listen, whether it's Hollywood, Netflix, you're not gonna rely on them to tell our story and we need to represent ourselves and Asian guys need to put themselves out there. So you guys leave in the comments below whether you should be mad about it.  I'm just trying to report it and give my commentary. Next, an Italian student who's giving a graduation speech in China because he was studying in China goes viral in China because he thinks not as professors, not other students, he thinks hot water.  If basically you don't know in Asian culture and specifically Chinese culture, drinking hot water is the all-in-one remedy. This is something that is promoted.  For some reason in America, we're all taught to drink ice water. Then when it comes to just drinking plain Jane hot water, that's all of a sudden kind of weird because I remember back in high school, I was at Red Robins, which is by all means a fine, casual dining establishment. I ordered hot water from the waitress and all my white friends in high school made fun of me and they were like, what? What? Hot, what? Why are you? And I was like, I'm just doing what my mom told me to do. I thought it was good for me and it's free. I didn't get any girls in high school. All right, our last article that I'm gonna be covering today is Lil Baby. Yes, one of the hottest rappers out right now. He did this song with Drake. You know what it's called? Yes, indeed. Where he goes, brand new whip, got no keys. Tail of my clothes, no starch, please. It's a really catchy hook. Anyways, Lil Baby blowing up right now. In one of his vlogs, while he's walking around, he's eating watermelon with salt on it. Guy behind the camera that's filming it is like, what? Did you eat just put salt on it? Lil Baby's like, yeah, yeah, put salt on my watermelon, it's good. And this clip goes viral in Japan because apparently in Japan, it is also very common to eat watermelon with salt on it. Now, Lil Baby actually attributes it to being a down south thing. Obviously, I've heard of eating sugar on watermelon, but I had not thought of using salt on watermelon, but it actually makes a lot of sense if you think about it because salt is a natural flavor enhancer and even an aroma releaser. So if you sprinkle a flavor enhancer on watermelon, you are enhancing the watermelon, which sounds dope. And Japan, no stranger to flavor enhancers because actually MSG was invented in Japan. And MSG not actually being as bad for you as people think. MSG is just salt 2.0. That makes everything taste just way better. Anyways, thank you so much for watching the AZNN update for a lot of the articles, check out nextshark.com, but I also did hit up Wall Street Journal and New York Times and LA Times. You know, I had to do a little bit of reading. Hope you guys enjoyed that video. That was the AZNNN, NNNNN, NNNNN, just let me know what you guys think about this series. All right, till next time, we out, peace!


Hello everyone, good morning and welcome to my talk. So I'm going to present on getting started contributing. So hopefully you guys have some interest in learning how to contribute to this open source project. If not, you might want to check out the other room. OK, let me. Oh no. OK, a little bit about me. So as introduced, I started a college hackathon and I've been contributing to WordPress early this year. So I was part of a class at Cornell University where we did open source software engineering. So I had a physical team of six people, six students, and I had a WordPress mentor who lived not far away. And by not far away, I mean a four-hour drive away. So it's because I had this guidance and this first-hand experience, I thought it would be nice to share with you guys, if any of you are interested in learning how to contribute to WordPress. So as a team, we look into multiple components. So I'll introduce components later, but you can think of it as a subdivision of the core code. We look into Gutenberg, which is a new editor. And we look into privacy. So privacy is something that's very close to my heart and something that I'm going to share with you guys in this presentation. So at the end of this presentation, I really want to give you guys four key takeaways that you guys can remember for contributing. So the first is to understand structure. To me, understanding structure is very important because it gives you a mental model and a framework to understand how coding works for WordPress and how you can investigate the bugs, how you can gain insights from the code, and how you can use it to solve your problems in coding. The second one, start by copying. It sounds like plagiarism. I swear it's not. But when I mean start by copying, it's because no bugs out there or no tickets out there are created equal. They're easy ones and they're harder ones. So as a first timer, you will want to approach the easy ones. You'll want to start by crawling before starting to run a marathon. The third one, be bold in finding a community. I think we can all agree that it takes a village to raise a child. No one works in silos. So if you want to start this open source contributing journey and you were to attack it alone, it's very daunting. But if you are not afraid in finding a community, if you want to link up with like-minded peers attending WordCamp for one, it's going to sustain you and motivate you to do a good job. And the last one is to take it slow. Take it slow. When you contribute, especially if you do it on a voluntary basis, it takes time to get things done. But you can take into comfort that your progress is tracked and your progress is all online in their chat logs. So it takes a slow process, but it gets done. So what was my journey like? I'll take you through my journey. And I had to split into three phases. First is recon, where you start to understand what it's like to contribute to WordPress. Next is you set up. It's a first-time thing to get your environment up and running for developing. And the last one is patching. This is a crux of this experience is where you find a bug that you're passionate in. You write some code to fix it, and then you push it out, and you fix it. So let's start with number one, recon. So if you were to visit WordPress.org on your web browser, you get this beautiful website. You want to register an account in the top right-hand corner in the red circle.  You also get a Slack account, where if you guys are not aware of Slack, Slack is a channel, a messaging platform where a lot of developers like to get on and discuss ideas. And when you have created an account, you want to hit call below. You can see there's many different ways to contribute, not just coding. I think further down, there's also stuff on community building and volunteering at WordCamp itself. It's contributing. But in my talk, I focus on contributing to call. And reading call, as I mentioned earlier, there's many components. So one component is a privacy component. So a component, it's a subdivision of the call code. And this is an example, which I want to bring into two key information. The first one is getting involved with the community. So you can see there's a shot right up there. I'm not sure if those at the back can see. It's a weekly meetings and bug scrubs done over Slack. So at a great time, people just come online and start chatting to say, hey, I'm having problems with this bug. Can you help me fix it? And it brings them together. It's because WordCamp's WordPress philosophy is to work decentralized. You can work from your office. You can work from any country. And you can see whole meetings like that. I think that's amazing. The second one is at the bottom half. So this gives you a very big overview of the privacy component. So at this time, when I took the screenshot, there's like 99 tickets open. Vertically, it's explained to the different types of tickets available, explain what tickets are. You can see some defects, some enhancements, and some feature requests. And then horizontally, it refers to the milestone. So if you guys use WordPress, which I believe you guys do, different releases are staged. And they are released in discrete releases. So 1.0, 1.1 all the way. And I believe the latest one is 5.3. So you can see there are some tickets packed to 5.3. Some is a rating review. So they're not sure how to prioritize it. And the last one is future release, which is de-prioritized in respect to 5.3. So what is a ticket? A ticket is a unit of problem that needs to be fixed. And it's tracked by this software, Track. It's a WordPress ticket tracker.  And you get this screen. So it's usually a huge list of tickets, thousands, tens of thousands. But in this case, there are some things you can add, which are filters over here. So I'll share with you some of the filters available. So one is the component, which I filtered to privacy. Now one's keywords. So you can think of keywords as a tag to the ticket. It's like sometimes when you have an Instagram post, you can hashtag stuff so that you can easily categorize into buckets. So this keyword, for example, has a patch and needs unit testing. I limited the milestone to future releases. And I also filtered it to different statuses. So I want to share with you guys on what kind of status there are over here. Because it's something that really helped me back in contributing when I didn't understand what the different statuses are. So a status is like the life cycle of the ticket. So someone found a problem that exists in Track. So what happens to the problem? So one thing is that someone gets assigned to it. So you can think of someone being assigned as the one fixing the problem. So if you're interested in fixing the problem, you can assign yourself to it. Sometimes when there's someone assigned to it, you do not want to touch the ticket because you do not want to do double work. You do not want to work on something someone else is working. But sometimes, although it's assigned, it gets stale. So the last comment is three to four months ago. There's no development in it. And you can always feel free to pick up a stale ticket because sometimes the person assigned to it can no longer work on it because they're not exactly 100% full-time contributors. Another one is owner. So the owner can think of it as like the project manager, the one who makes sure the ticket gets done, the one that oversees the ticket's journey. And then there's closed as well. So I filter out closed because we don't want to look at closed tickets. We want to look at tickets we want to work on. So now that you've never get a true Track and you've found an interesting ticket, what do you do? This brings us to the second phase where you set up the environment. So this is one, two, VVV, which I use. It's very helpful. And it allows you to create a virtual environment in WordPress. So I've added a link where you can install it. And I think, I believe, Chapter 2 gets you installed. And Chapter 6 gives you some default credentials for you to log into the database and the WordPress admin console. Once you get this virtual environment started and you go to vvv.test on the website, you get this screen. I want to bring your attention to two parts. So one is WordPress trunk. This is the repository or the installation that you're going to work on and the code you're going to modify. There's a URL and a folder on your desktop that tells you what to touch. And on the right side, it's because in my journey of this ticket, it requires me to interact with the database server and the email client. So over there, there's PHP, MyAdmin, and MailHawk. So at this point in time, everything might seem very fuzzy in your head. It sure was when I first started it. So this is where I wanted to emphasize that you need to understand the structure of WordPress code. So I tried to organize it in my head simply. And this is the architecture as I see it. So there's this giant box. This is your computer, all your code and all your software lists inside it. You install this folder, Vagrant local, www, slash www. And then WordPress trunk refers to the installation that you had. And within this folder, there's a source folder and a build folder. So if you guys are familiar with building code, the source folder is where you have your code that wants to be modified or the code that runs the project.  So this build folder powers the different virtual environments. So I pointed you guys out to trunk and there's also one and two. So there's been three different installations for you, but we'll just focus on trunk. And within trunk, there's this cloud of WordPress core code that's very confusing out there. So we put a cloud. And then there's the PHP server and the mail server, which I will help you guys understand throughout this presentation. So the PHP server is the database. And I stumbled across a talk at my first WordCam in Lancaster, Pennsylvania. And it's by myself, Ferrello. Yes, hope I pronounced it right. And this is a link to his presentation. So it's something that I discovered because I attended WordCam. So this brings me to my key takeaway on number three, where it's important to find a community. Because if I didn't put myself out there to learn more about WordPress and to learn more about how it works by attending the WordCam, I would have stumbled across this amazing talk. And I also found out at WordCam Singapore that Mike is going to present on Images. And I have this ticket, which I was working on, Images, which I got stuck and I haven't touched it for a few months. So maybe Mike can help me in getting some insights. So yes, be bold in finding a community. So now that we have self-environment, we have recon, we start to do the fun stuff, patching. So this is a ticket. I'm going to break it down with you guys. So there's a ticket ID 45889. It says to include session tokens as personal information in data, exports, and erasure. And then in the description it says, a previous ticket raised some concerns about whether we missed any personal data. And then this suggests to me, oh, you missed something. So if I were to modify the code, I just need to add something, right? That sounds easy. I missed something where the personal information exports was released. Oh, what's personal information exports? Let's keep the question in mind. Upon further investigation, the core privacy team found multiple places in the user meta table. Oh, the user meta table in databases? OK, let's investigate. The SKU contains information that we should include in exports. The county known ones are session tokens and community events. OK, we have two to work on. Oh, community events will be handled by another ticket. OK, just one. That's simple. The scope of the ticket isn't about removing or anonymizing this information, instead just including it with the current user exports and erasure tools. OK, so we need to include something. To me, this sounds like a low hanging fruit, a bank that's not too hard, right? I just need to add something. So this investigation process is what I mean by key takeaway number two, start by copying, right? You want to find tickets that's easy to handle, right? As a first-timer, you do not want to start by something too hard. So on the first question over here, on the right side, what is personal information exports? I investigated and I played around the WordPress admin site. And then this is an example of the exports where you can get out details about your users. So as a user of your website, I can find out what this website has about me and I can explore the data. So you can see there's many interesting data points here. And one unique one I found was user registration date, OK, user registration date. So let's keep that in mind. The other question from before was user meta table in databases. OK, now that I've attended the database talk, I know how database works, I know what to click. So I went to this screen. Cool, on the left side, there's a wp underscore user meta. OK, so this must be the table it's referring to. And there's a bunch of different data points over here. And then when I zoom in, uh-huh, session tokens. Exactly the data point I'm looking for that the ticket's looking for. So now, all I need to do is take that information and to add it to the personal information exports. So how do I do it? Remember user registration date from before? All I had to do was to search for that phrase in the entire core code. And on the green arrow, you see there's a hit. It says user registration date. So I just bring up the screen and I see the code. I'm like, OK, I just need to include something. So on the red arrow, I just copy and paste it. I modify the name to session tokens. And on the right side, it's a switch case statement where for different keys, I print different information to my exports. So I just create a new case for session tokens. And if you understand PHP, this code here just passes a PHP object to make sure you get your relevant data points. So with that, I built the code using Grunt. So this is explained in the Contributor's Handbook. And then you can see on the right side, after I built my code and I regenerated this report, there's a user session token at the bottom. So yeah, ticket is fixed. So now that you've fixed the ticket, you need to put your work out there. So there's two ways you can do it. So on the left side, if you upload a ticket, and the right side, if you want to download a patch. So you might want to download a patch because someone's working on a patch. And you want to apply their patch on your system. If you want to write unit tests or you want to verify that their patch works. So in this case, we have fixed with a patch. So you can either use Grunt to upload the patch with the ticket ID, or you can just do it manually where we do an SVN diff and we save it to a .dev file and we manually upload it on the website. Yep. So this is a screenshot of me engaging on Slack. You can see I'm in the call privacy channel. I'm asking simple questions. And everyone on the chat was very friendly.  So yeah, to me, it felt very comforting. And then on the left side, some of them reached out to me and had a one-to-one chat with me and said, hey, as a new contributor, you can consider looking at these areas. So shout out to Garrett. His Canada flag there, which is kind of cool. He guided me the process. He was like a mentor to me as well, and he really helped me. So you see, people are very friendly on the WordPress community. This is another screenshot of my team at school. If any of you recognize George, he's a WordPress contributor who lives not far away. And the six of us were those involved in the team. So as a team, we did some Gutenberg serve as well. But I will not share in this talk because it's too short. And yeah, I just want to emphasize that it's very important to have a community. Because if not for these guys, I felt like I would have just given up at contributing. It's too hard. And it's not something that I'm getting paid for. So why do it? Yeah. So what's the status now? Because contributing is really not a sprint. It's not something that you want to solve it. And then you get a lot of stuff out of it. It's more like I really believe in this project. I really believe in WordPress as an open source project. And I just want to do my part in contributing. The thing is that the situation is not all that rosy. I've got a lot of tickets hanging. I've got some tickets stuck and in progress, for example, like my images one. I just have no idea how to fix it. And I've been plugging in the last few months because I graduated in May, and I've been traveling. And I relocated back to Singapore. And I just haven't found time to sit down and code. On the plus side, in my journey, I found smaller tickets outside of WordPress. So some common tickets are like documentation areas. You see typos in the documentation. Or you feel like you misunderstand something and you want to clarify it. So because of that, I got several tickets raised. I found issues. I got several tickets merged. And I think it's really a fun process. So if you do not get too bent up about fixing one ticket and let it burn you out, then you will really enjoy this process. And this is what I mean by taking it slow because contributing is like that. You just need to not harp up on one ticket and just let it sit. These are some good documentation that really helped me throughout my journey. And it will help you if you want to get contributing. So the first one is really just a contributor handbook telling you how to get started. If you enjoy reading stuff, it's great. But if you don't really enjoy reading stuff, you can just talk to people who have contributed. The bottom two is the code reference and the codex. And it's like the holy grail of contributing. If you want to Google Functions, you can go to the website. And to find out how functions work or where your parameters are being passed, these two links will help you. With that, I want to reiterate the four key takeaways. First is to understand structure. If you can have a good mental model of how things work, you can gain very valuable insights about how WordPress works. It's a very complicated code base, but it's a very beautiful code base because so many people work on it, so many people edit on it, and so many people do it because they love it, not because they need to earn money. Number two, start by copying. If you want to fix bugs or you want to create a new feature, find the easy ones first. There are some keywords like first time, I'm sorry, good first bugs that you can use, and you really want to start small so you can build the confidence to tackle something bigger. Number three, be bold in finding a community. I think WordPress does a good job in creating communities with WordCams all around the world, with WordPress meetups, with a decentralized chatting platform where you can easily get in touch. And I think it's very important to get, to be bold in finding a community because a community will sustain you and keep you going. And the last one is to take it slow. It's to adjust your commitments and not to get too jaded when one ticket doesn't get fixed. So with this four key takeaways, I hope you enjoyed my talk. And thank you. You can find me at Nikki Lim on Slack. We're waiting for some questions now. What are the alternatives for varying vibrance? There's a few on the core contributor handbook, but I can't remember it at the top of my mind. Yeah, but I believe there's two or three alternatives. Yeah. As a non-developer, I've never considered contributing because I've assumed it was all about working on core. Have you had any interactions we've been able to design group at all? Does it sort of, do they work together again? Yeah. Maybe share a little bit on Gutenberg. So on Gutenberg, it's managed quite differently. They do not use strength, they use GitHub. And Gutenberg is organized in a way where there's many people on the team because it's such a big project. And I remember one team that did accessibility. So accessibility is making WordPress accessible to those with disabilities or difficulties and stuff like that. So just interacting with the chat logs on GitHub conversations, I noticed some individuals just help give comments and help design to say, you know, WordPress shouldn't use these default colors because these default colors are hard to see on screen readers. And they don't come from a perspective of code, they come from a perspective of using. So I think if you are comfortable getting plugged into the conversations in GitHub and how to navigate a website and how to type a comment, I think there's a lot of value for you to contribute, even as a non-coder. Yeah. Yeah, one question in the back. Do we need to learn how to use SVN or can we just use Git? If you want to contribute the most of core is SVN for legacy reasons. If you want to use Git, you can contribute to Gutenberg because Gutenberg uses Git. Thanks. Yeah, welcome. One question in the middle. Okay. Simple question. Is any qualification or verification to be a contributor or is this open to all? All right, it's open to all. No one checked your credentials. Yeah. And after we fix the bug or we make a page, where it's going? I mean, if we're going to next WordPress update or just... It depends on how they pack the ticket. So from before I shared the idea of milestones, there's like 5.3, awaiting review and future release. So if you want to work on something that's coming soon, you can work on a ticket that's packed for 5.3. If you don't really mind, you can just do the rest. I've got some friends who work actively on the latest release of Gutenberg. So I think the latest one was released a few months ago and then their names got like props on the release update and they were like celebrating. Like, oh, my name's mentioned, yay. Yeah. Thank you. Okay, I have one more plug. It's that tomorrow there's Contributor's Day. I know Mike is doing a workshop on contributing. So if you want to get your hands dirty, you should go for that. Yeah, that's all I have.