Very Secure

Google shows you what you want to see

November 2nd, 2018

Humans are looking for confirmation of their beliefs rather than the truth. Imagine website A which gives the confirmation of what people already believe and website B which gives people an accurate picture of reality.

When a person visits website A, they will have their belief confirmed, and thus have website A make them happy and they will believe website A gave them the truth since the answer A gave was their prior belief. While website B, which give them the "objective" truth, will cause contradictions in the same person's mind, since it goes against what they currently believe. Website B will make people uncomfortable.

So in the end website A will be the more popular website, and a Google will be born. Of course often times people's beliefs are correct and thus website A will often give the truth. Website A will have to give the truth for things that are very easily verifiable, otherwise people will start to distrust website A's authenticity.

Google will help you answer most of your questions, but in so many cases it is completely worthless and in some it is downright misleading. Searcher beware.

I do think there is a great startup available, which is a company that indexes the web like google and creates a powerful version of grep that prioritizes webpages that have a high page rank similarly to Google's.

Reflection VS Mindless Repetition

November 2nd, 2018

After 4 years of attending Stuyvesant H.S. in NYC and 4 years at MIT in Cambridge I managed to stay oblivious to some obvious truths in the world regarding how to learn. I believe I would be justified in being mad at my teachers, how could there not have been multiple - if not all of them - making sure that i was not reinforcing bad habits?

But the world needs people looking in the mirror instead of pointing fingers; I have only myself to blame. And I am lucky to have learned some of the secrets of learning while I still have time to gain the benefits.

witout furder abdu:

Caps are used to STRESS THE IMPORTANCE OF THIS MESSAGE

THE HUMAN BRAIN IS A SELF PROGRAMMING MACHINE WITH A CONSCIOUS AND SUBCONSCIOUS COMPONENT. THIS MESSAGE WILL TEACH YOU HOW TO BETTER CONTROL THE CONSCIOUS COMPONENT.

THE CONSCIOUS COMPONENT MAPS THOUGHT -> ACTION. IF YOU HAVE A COMMAND THOUGHT, SUCH AS "RAISE MY RIGHT ARM" YOU WILL SEND AN ELECTRICAL SIGNAL TO YOUR MUSCLES THAT WILL PERFORM THE ACTION OF RAISING YOUR RIGHT ARM.

YOU WILL THEN RECEIVE A SUCCESS OR FAILURE SIGNAL FROM YOUR SENSORY INPUT, I.E. YOU WILL VISUALLY SEE YOUR HAND RAISE AND THEN YOUR BRAIN WILL REGISTER A "SUCCESS" AND STRENGTHEN THE CONNECTION BETWEEN THE THOUGHT YOU JUST HAD AND THE NEURAL TISSUE THAT CONNECTS TO YOUR MUSCLES IN YOUR RIGHT ARM.

THE PROCESS OF HAVING AN INPUT SIGNAL PERCEIVED AND JUDGING WHETHER OR NOT IT WAS THE CORRECT ACTION IS REFERRED TO AS "BIOFEEDBACK". ISSUES WITH YOUR BIOFEEDBACK, WHICH OCCUR ALL THE TIME, WILL GREATLY IMPAIR YOUR ABILITY TO PROPERLY MAP THOUGHT -> DESIRED ACTION. HAVE YOU EVER HEARD A DEAF PERSON SPEAK? THEY CANNOT SPEAK NORMALLY BECAUSE THEIR BIOFEEDBACK LOOP IS SEVERELY IMPAIRED BY THEIR NON-FUNCTIONING EARS.

WHEN YOU HAVE A THOUGHT AND PERFORM AN ACTION, NO MATTER WHETHER OR NOT YOU JUDGE IT AS A SUCCESS, YOU ARE STRENGTHENING THE CONNECTION BETWEEN THAT THOUGHT AND THAT ACTION. THUS YOU MUST:

STOP IGNORING YOUR "NEGATIVE BIOFEEDBACK" SIGNAL. IF YOU DO SOMETHING WRONG - A BAD TENNIS SWING, A POOR PLACEMENT OF A FINGER ON THE GUITAR FRETBOARD, A BAD TURN WHILE SKIING - WHATEVER - YOU MUST FIGURE OUT A WAY TO LEARN THAT IT WAS WRONG FROM YOUR BIOFEEDBACK SYSTEM AND CORRECT YOURSELF AS SOON AS POSSIBLE.

YOU WILL NOT GET ANYTHING FROM DOING SOMETHING "OVER AND OVER" AGAIN UNLESS YOU ARE REFLECTING ON EVERY ACTION YOU DO AND FIXING ALL OF YOUR PROBLEMS AS FAST AS POSSIBLE. YOU WILL ACTUALLY USUALLY JUST BECOME WORSE AT THE ACTIVITY YOU ARE TRYING TO DO, AS YOU WILL BUILD A BROKEN THOUGHT->ACTION MAPPING.

P.S. THE FASTER YOUR BIOFEEDBACK THE BETTER, PRACTICING IN FRONT OF A MIRROR BEATS TAKING A VIDEO AND WATCHING IT 30 MINUTES LATER.

P.P.S. SOMETIMES YOU NEED TO USE TECHNOLOGY TO CREATE A BIOFEEDBACK LOOP THAT IS OTHERWISE IMPOSSIBLE. TECHNOLOGICALLY INCLINED YOGI'S HAVE ALLEGEDLY BEEN ABLE TO CONTROL THEIR HEART RATE BY CONNECTING WIRES TO THEIR PULSE AND LEARNING TO BREATH WHILE WATCHING THEIR PULSE ON A MONITOR.

Apollo Music Project

November 2nd, 2018

The Apollo Music Project is a personal project I've been working on for a little over two months with some spare time. I have put an estimate of about ~100-200 hours of time into it. The code base is pretty awful, on account of it being the first project I've written in Common Lisp. The formatting is garbage, there is code duplication everywhere, a bunch of unused code that is not cleaned up, and a dependency graph that makes no sense. When I load the project I get three warnings.

BUT despite all this I can type:

(1/4 (E2 B3 E3) (G2 D3 G3)) (3/8 (A3 E3 A4))
(1/4 (E2 B3 E3) (G2 D3 G3)) (1/8 (A#3 F3 A#4)) (3/8 (A3 E3 A4))
(1/4 (E2 B3 E3) (G2 D3 G3)) (3/8 (A3 E3 A4))
(1/4 (G2 D3 G3) (E2 B3 E3))
(1/8 E2 E2 E2 E2 ()))

and the intro to smoke on the water begins to play, on loop.

The world moves too fasts for perfection. I focus a lot on the style of my code and on following "best practices." But those are only a means to an end. The high level goal (creating the simplest syntax for creating organized sounds) will always come before the goal of creating clean code, which is just a means to an end.

Music Can Bring More Than Just Ideas To Life

October 31st, 2018

Last night I made a trip back to where I've spent most of my time in Costa Rica, Tamarindo. I brought the essentials: clothes, board shorts, a computer, my guitar, and my friend's melodica. Shortly after I arrived the sound wave weapons were drawn and we started to play some of our classics.

I had been living alone for a few days with very little human interaction, and it was good to be back with the boys and some new friends. One of my buddies started playing a song written by him, and i hastily picked up the melodica because his song is one of the few things I can play on that little device.

Now for those of you who don't know what a melodica is, it is essential that you understand the structure of this instrument to comprehend what happens later in the story. It is essentially a piano and a flute combined. Before I knew the instruments proper name, we had aptly named the device the "plute." It has a normal piano keyboard, but instead of the keys making drums hit strings, the keys change the structure of an internal tube, and the sound is produced by blowing through a hole.

Normally a melodica is played by laying it down on a surface, like you would for any other type of keyboard, and a long bendable tube is attached to the melodica's air input hole. However, absent having the bendable tube, you can just hold the melodica with your hands and blow directly into the hole. It limits your ability to play the melodica, because your thumbs must be used to hold the instrument. But for simple tunes it is a much more enjoyable way to play. This was the manner I was playing that night.

Now back to our story...

My buddies began the jam and I waited patiently to play trying while i tried to listen to and remember the notes in the song. (It's better to be silent and thought of as a non-musician than to play out of key and remove all doubt...) As the notes came back to me I readied my weapon by placing my fingers on keys and and took in a long breath.

The song came to life as three of us danced around our instruments to the pleasure of ourselves and our two lady audience members. My role in this song is pretty simple, cycle through four notes, blow hard when my buddies strum their guitars hard. Staying in beat and playing the notes to this song is easy, so I add a little color to the music by playing the melodica with absurd expression.

The melodica is an instrument that you just can't help but laugh at. It looks like a kid's toy, indeed it is a kid's toy, but the notes come out loud and proud. It took me a bit to be able to play the thing without starting to giggle myself, especially while moving it up and down as if it were the instruments position in space that changed the notes and not the keys pressed.

As I was playing I felt a tingly sensation on my face. Bugs in Costa Rica are more than abundant, and thus I feel these little guys on me all the time. However I also occasionally have tingling sensations on the extremities of my fingers etc. and it so the bugs can really mess with me, since sometimes I can't tell if i am just tripping or if there really is a bug brushing against me. However the music train was in motion and there was no option to stop, so i just contorted my face and kept jamming.

I managed to forget this uncomfortable sensation and push through the rest of the song to its proper conclusion where the notes peacefully fade away into the distance. We had one of the brief moments in life where something special was just experienced and no one can figure out what to say next. For the few moments before, the realization we filled the void with giggles and smiles.

And then it came. Out of nowhere she screamed,

"WILL THERE ARE ANTS ALL OVER YOU"

what? I thought ot myself, and then in just under two seconds my brain put it all together. Ants create bases. The inside of the melodica is a large space with a tiny entrance, an absolutely perfect design for an ant colony. And the ants had just experienced the most tremendous thunderstorm of air waves and were NOT happy. They were rushing out of the sound hole at an unbelievable rate. How many fucking ants were in that thing, i have no idea, but it was no short of 100 and probably in the 200-250 range.

I rushed to the sink and sipped water, spat it out, sipped water, spat it out, i felt it all hit me at once. Now i had known just how strong the trance i must have gotten in with the music, because i felt the mother fuckers biting me everywhere. I rushed to the bathroom and threw off all my clothes and started showering immediately.

It took me only a few minutes to start laughing harder than i was laughing before, but that horribly disturbing image of the ants marching out of the melodica will probably stick with me for the rest of my life.

Zylon Game Design

October 30th, 2018

I'm currently designing a video game which is meant to be both playable by bots and humans.1

Here are the high level ideas:

1. The game is a game of incomplete information, they are on a map (2d array) where they only have a certain vision radius. However, the random function that is used to generate the game map is known, only the seed of the function is not known.

2. The game is an MMO, where users search around the map to find their friends/enemies. PVP is always on.

3. The game rewards smart play over heavy grinding.

4. Players have to search for save points. A save point is consumed once it is found. Save points have a maximum level threshold, so if you are a high level it is harder to "save." When you die you go back to your save point and you lose everything you gained between the time you last saved and the time you died.

5. The game is rate limited by something around 200ms. Each 200ms can be considered a "round." To be playing optimally a player must then be able to send a response to the server every 200ms. Players have ids that determine their move order (lowest id goes first).

6. Potentially we could raise the game rate to something like 10s. And then each player effectively batches up a series of moves that looks like "UUURRDDL" for "up up up right right down down left" The game then runs its code on the server, and sends backa reply to the user informing them of what happened.

To be continued.

  1. Concept taken from Eulora []

you gotta make room for your new tool in the box

October 29th, 2018

Once upon a time in my life I played chess. I still do on lichess.org at times, but back in the day I would travel across the US to play in tournaments. Mind you, I was never very good, but for quite a few tournaments my rating settled at a point just below the cutoff point where you were required to play in the open bracket. Had I been just a little bit better, I would have lost many more games..

Flash forward a few years and I decided to read a bit of a book on "how to become a grandmaster" Now I don't remember which book this was, but I do remember that it said something along the following lines:

A grandmaster must commit almost all of his time to chess. In addition, a grandmaster can only choose to study the solution to so many endgames. This is because once he has completed studying for a few years, everytime he learns a new solution to an endgame he will begin to forget an old one. In some sense, he can load only so many solutions into memory, once he has done this he has to begin to discard old memories. Thus, the grandmaster must choose to study the most frequently occurring endgames in his meta.

In the same way, this is true of the process of programming. You can have only so many tools at your disposal, abstraction as functions, macros, 50 hotkeys that do different things, etc. Once you start to get too many tools you start to forget about all the tools you have. So part of this blog will be a journey to figure out what are the tools that are the most essential to a programmer.

To be continued with a list of the best set of tools, and maybe even more importantly a list of tools you SHOULD NOT use.

first draft of abstract sexp

October 29th, 2018

This is a solution to my previous post

about how to write an elisp function that will take a block of code and turn it into a function replacing the code with a call to the new function and passing in the appropriate parameter. One issue however is that at times we may want to take a list of forms (as would be in a progn) instead of just an sexpr.

(defun blink-list ()
  (save-excursion
        (forward-list)
    (blink-matching-open)
  (backward-up-list)))

(defun convert-to-funcall()
  (interactive)
  (let (fun-name new-param)
    (save-excursion
      (setq new-param (thing-at-point 'symbol))
      (backward-up-list)
      (blink-list)
      (while (y-or-n-p "go up sexp?")
        (backward-up-list)
        (blink-list))
      (kill-sexp)
      (backward-paragraph)
      (setq fun-name (read-string "Function Name: "))
      (insert "n(defun " fun-name " (" new-param ")n ")
      (yank)
      (insert ")n"))
    (insert "(" fun-name " " new-param ")")))

So to be clear if i have some code as below with my cursor represented by the | then when i call this function i will be able to pick how many times i want to go up the sexpr tree, with the parens blinking everytime i go up, and then i get to name the function and then a new function will be created which was just the code in the old function, with the old function being replaced with a call to the new function.

(defun double-if-even (num)
  (if (equal 0 (mod num 2)) (* nu|m 2)))

now i call my new elisp function, i don't climb the tree, and i pass the name "double" and i will get

(defun double (num)
  (* num 2))

(defun double-if-even (num)
  (if (equal 0 (mod n|um 2)) (double num)))

noticed how i put the cursor back to num in the if expr. now i will call my function convert-to-funcall again, but this time i will need to climb the sexpr tree once. i will name my function "evenp"

(defun double (num)
  (* num 2))

(defun evenp (num)
  (equal 0 (mod num 2))

(defun double-if-even (num)
  (if (evenp num) (double num))

How to think independently and get out of a cult

October 29th, 2018

Daniel Krawisz had a great video explaining on how to think independently. Here are two tips to get out of a cult:

Assume you're in a cult and you have to figure out what it is. Cult members are unaware they are in a cult, so if you are stuck in one to get out you must begin with the assumption that you are in one.

Embrace "evil." Cults paint the escape path from them as "evil" to keep their members locked in (i.e. the forbidden fruit) So you should at least entertain ideas that are forbidden within your circles, for they may be painted as evil to prevent you from seeing the way out.

The real reason i dont have an NSAbook or Instaspam

October 28th, 2018

A lot of people ask me why I don't have an NSAbook or an Instaspam account, so I figured I'd answer it here. (Remember that NSABook bought Instaspam so

It's not because they expose an incredible amount of your personal data.

It's not because they work closely with failing corrupt governments.

It's not because Instaspam DOESNT EVEN PROVIDE A WEBAPP, forcing you to download the Instaspam app, which defaults to all privileges on the play store including your location.

It's not because I don't agree with most of the politics of the institutions.

It's not because there are more bots than humans on their platforms.

It's not because of the psychological damage it causes to adolescents.

It's not because they've killed the individuality given by having your own website, creating an uninteresting homogenous internet.

No, it really isn't because of all of those reasons. I don't have an Instaspam account or an NSABook because they are a huge waste of time, and I have respect for the strength of their algorithms that are used to keep me on the site.

Distributing time between applying and learning to accomplish your goal

October 28th, 2018

Let's say you have time t to complete some task g. So for an example we'll say your task is digging a hole that is a cylinder 10m deep with a 1m radius. Given values t and g, what can we say about how much time you should spend learning (i.e. reading a book on how to dig a hole well with a shovel) or applying what you know (grabbing the shovel and digging.)

This is a complex question because often one is not so sure how much can be gained by learning about the subject, if your intuition on how to use a shovel is correct then the book may be a waste of time. However there are a few conclusions and thoughts I've had regarding this problem:

1. As t->0 we want to apply more than we want to learn.

2. As t->infinity it is better to learn than to apply.

3. There is another process one can choose to dedicate time to, merely the one you and i are dedicating time to right now, which is the process of deciding how much time to spend between learning and applying, or in some sense the learning-how-to-learn process. Being stuck in this process could itself be a waste of time, ahh!

In closing, my guesstimate is you should spend 90% of the time learning and 10% applying, all else constant. But you're this question deals with incomplete information, so luck will play a large factor in which decision is correct.