Monday October 1st
Strange Loop 17
- So…I’m back from Strange Loop, and I am exhausted!
Overall
- A great conference, even though I suffered from people overload!
- I think I personally do better at a bit smaller-sized conferences. All the talks were great, though!
On the way there
- You can see the Arch!
Check in was very smooth!
- Union Station hotel. It used to be an old train station!
- It’s 24 acres! I did get lost a few times!
- The staff there was quite hospitable, and there was a Light and Fire show every hour (on the hour!)
Pre-conference party
- I woke up late the first day, just in time for the food-trucks.
- These were the fish tacos. I did a workshop on Tensorflow on my first day.
That night, we attended the pre-conf party at the City Museum
- It was awesome. It was sponsored by Riot Games, who was also hiring.
- Part of the outside, which was filled with slides, a suspension bridge, a gutted out airplane, etc
- caves with dinosaurs!
- Slides, slides everywhere
- A bunch of devs in a pool of plastic balls, playing hoops!
- Someone mentioned there was a ferris wheel on top of the roof! So we got a group of about ten people going and started our journey!
- I had never been on a Ferris Wheel before, much less on one that was
sitting on a rooftop. I made friends with a Googler Guy from NY, who was my buddy, and tried to make casual conversation so I wouldn’t be distracted by the fact that I was sort of scared $h!tless :)
The conference
- I attended Simon Marlow’s talk on Haxl, a talk on SAT Solvers that involved architectural constraints (and Rhino! I’ve used Rhino!) and Dependent Types in Haskell. Also a talk on Crypto and password-less passwords, and one on Flutter. Also attended the Keynote on Open Source, which was quite good!
Project Alloy event
- Attended this event at the Centene, to which we were shuttled. The event was quite elaborate, and sponsored by Stripe and Netflix, among other companies.
- They even had a photobooth. I made two friends (well, more than two haha).
-
The girl to the left (wearing the purple top), Frances, did a talk on TypeScript, for the Lightning Talks.
-
Another friend did a talk on “Why Haskell”, which I heard was quite hilarious. I was too burnt out at that time, and opted instead for a private stream watching Haskell with a friend remotely. That pretty much ended my day.
Dropbox
-
Project Alloy was nice enough to even have a speaker; Aston. He was the first employee of Dropbox. He spoke about his journey. He felt like he was “lucky”. But he went to MIT. His friend invited him to join Dropbox early. I wouldn’t call that “luck” at all. Heck, many of the applications to companies flat out ask you if you have affiliations with Ivy Leagues, so I can imagine (even though I go to a crappy school without connections) if I didn’t have the past experience of doing a semester at an Ivy (non-tech related), I’d be sweating bullets. And I still get passed over/ rejected.
-
I think around that time, though, I started feeling a little bit like I didn’t belong. Everyone around me just felt like they were smarter, had it all together, etc. Plus, I had gotten a rejection email from a company I had gotten to step two of (ie they had made their decision after a coding test I submitted, which made me feel like crap about my coding abilities).
-
So I was in full imposter-syndrome-mode. I sort of felt like I had stepped into the Stepford Wives of tech, and I shouldn’t be there. But I love coding. I love the tech community more than anything. So it just made me sad and I skipped out on seeing my friend, Frances’ talk, and on two other friends who invited me to dinner, which made me feel a bit $h!tty. I chatted with my friend over the private stream about it, and he made me feel better, though. I’m really thankful for that.
Notes
Tensorflow Workshop
- for non-convergence (auto diff), use smaller increments or turn on nodes as trained constrain when nodes are turned on
- ML is programming with data instead of instructions
- Categorical column => discrete vs continuous data
- DNN => embedding type
- LIME => Local Interpretable Model-Agnostic Explanations
- CNNs =>
- local receptive fields
- shared weights (all neurons in the hidden layer detect the same feature)
- pooling => Max pooling (layers go between convolutional hidden layers)
- for most CNNs, max-pooling is used
Haxl
- ApplicativeDo (2016)
- Monadic operation => sequential one has to be done before another (not good for concurrency) vs Applicative
- Dumps cache as Haskell => prints out cache as haskell programme
- Can make unit tests, write libraries to pre-populate the cache
- debug (reproducibility) since can dump the cache
- Sigma is used for spam/ abusive and fake accounts on fb, etc
- Concurrency
- Caching
- Testability
- Debuggability
Web Auth
- MAC => Message Authentication Codes
- Soft tokens
- STARTTLS => opportunitistic encryption protocol
Dependent Types in Haskell
- domain specific type checkers
- Type computation (parsing…base case…may or may not be empty..
*
repeat pattern) - Indexed Types
- Double-duty types
- Equivalence Proofs
- Type computation (parsing…base case…may or may not be empty..
Conclusion
- I am really thankful for the opportunity to have attended Strange Loop. I’d like to go back at some point, but I’m also driven to become a better programmer. I hope that there’s a space in the industry for me. People were so nice there; there were so many wonderful people. There were also so many companies recruiting. So..we’ll see.
And Goodbye
- Back we go. Back to my favourite bed!
Katas
- count cubes in a Menger Sponge
def calc_ms(n):
a = n * '0'
return int(str(pow(2, n)) + a)
- return square of each elem in list
def square(numbers):
arr = []
for i in numbers:
arr.append(i * i)
return arr
- return value in key-pair that is squared
(passed tests but issue submitting)
def dict_square(numbers): arr = [] arr1 = [] dict1 = {} for i in numbers: arr.append(i) arr1.append(numbers[i] * numbers[i]) for i in range(len(arr)): dict1[arr[i]] = arr1[i] return dict1
- break the string via newline for number n given
function stringBreakers(n, string){
var arr = []
string = string.replace(/\s+/g, '');
for (var i = 0; i < string.length+1; i++){
if (i % n == 0){
arr.push(string[i-1] + '\n')
}
else
arr.push(string[i-1])
}
var b = arr.join("")
b = b.replace(/\s*$/,"");
return(b.slice(10,b.length))
}
Things to think about
- (From Haskell notes..week three)
- Tree Traversal
- Visitor patterns
Things to do
- C++ Assignment
- C++ Midterm assignment
- Nanodegree Jupyter analysis/ report