Goodbye

I don’t think I’ve ever truly said goodbye before.

Sure, I’ve said plenty of goodbyes in the past. But none like this. None of the others felt as real as this. Or as sudden.

I guess the first time I had to say goodbye to people was right before going to college. Goodbye to all my high school friends. But that was more of a “see ya later” to anyone I really cared about. We all come home for the holidays, and I’m still able to see any of those people if I really want to. Plus, my best friend from high school ended up going to school a couple miles south of me. No real goodbyes there.

College is the first time I ever had to say goodbye to a bunch of people and know that I might never see them again. But freshman and sophomore year, that didn’t matter too much. Sure, I had some good friends who graduated both of those years, most of whom I never saw again. But I wasn’t extremely close with them.

This year, I’ve formed the closest friendships I’ve ever had in my life. Some of them came from living in a fraternity house and spending time with these people day in and day out. Some of it came from partnering on homework for some very challenging classes. As lame as that sounds, it got me very close with a select group of people.

And now, I’m realizing that I will probably never consistently spend time with these people again. Sure, I might see them once or twice if they come back to visit their alma mater. But after that, after I move away from Chicago, it’s entirely possible that these people will be nothing but a series of great memories.

I don’t want that to happen. Facebook makes it easy, in theory, to stay in touch with these types of people. But in practice, it’s not as easy as it sounds. Our lives are constantly changing and evolving. New people enter as others leave.

I guess that’s just life.

People

This is the broadest subject I could possibly write about. I’m not going to attempt to do it justice. Instead, I’m going to reflect on a very special night.

This night wasn’t particularly memorable. Nothing spectacular happened. But it involved a lot of people, which is what made it special. Not any more special than countless other nights involving lots of people, but special nonetheless.

It started after a week of near-isolation. I decided to go back home for spring break and catch up on some projects I’d been meaning to tackle. Sure, I spent some quality time with some awesome people. But not much. The week was mostly spent hunched over a glowing computer monitor.

Then I came back to campus. Shortly after, I got dinner with some good friends. We chatted, we had a great time, and two of us came up with a hilarious new idea. It was an awesome time.

After dinner, we went to my room to work on our idea. What was the idea? Doesn’t matter. We laughed, we learned, and we had a good time. Another friend joined in on the fun. It was awesome.

Then I got a call from someone I’ve recently become very close with. She invited me to hang out with a bunch of her friends. Another good friend of mine grabbed the phone and echoed the sentiment that I should join them. They’re both awesome people.

So I went out with them later that night. I finally got to see one of my best friends after he had been gone for three months. That was awesome. I had a deeply personal conversation with another friend about some issues I was finally starting to overcome. That was awesome.

I ran into two good friends of the guy that lives down the hall from me. I don’t know either of them very well, but we had no problem carrying on multiple conversations. They’re both awesome.

I ran into someone I used to intern with. We caught up and shared future plans. He’s pretty awesome.

I met someone new. Someone who told funny jokes and had what sounds like an exciting future ahead of him. Although we didn’t meet under the best circumstances (don’t ask), it was still an awesome part of my night.

After all this was over, I came back to my house to find a half dozen people that I usually see all the time but hadn’t seen in a week. It was awesome.

If you’ve made it this far, you just read the worst story in the world. There were no descriptions. There were no details. There were no names. Everything was intentionally vague. But it doesn’t matter. All that matters are the different groups of people I connected with tonight, as anonymous as they may be.

As I went to bed that night, a thought that had been inside my head for years grew stronger than ever: people are fucking awesome.

Watch the news, and people suck. Go on the internet, and people suck. Read a magazine, and people suck. People get a bad rap in non-personal media. We love to watch all the bad things that people do. That’s what sells.

But go out and have meaningful interactions with people, and people are awesome.

People are the reason I’m happy. People have gotten me to where I am today. People are the reason I am who I am. I’ve never done anything meaningful on my own. Everything I do, I do alongside awesome people.

People are worth spending time with. People are worth sharing moments with, even if those moments are the most mundane thing in the world. People are worth making sacrifices for. People are worth wasting time with.

People are fucking awesome.

The Feedback Bias

I know I’m not a fantastic writer. But if I actually paid attention to all the feedback I hear about my writing, I’d totally think I am.

In an personal, informal setting, most feedback is crap. It’s heavily biased to be positive towards the receiver. Most people want to make others feel good about the work they do. While this isn’t a bad thing by any means, it’s definitely something to be aware of.

I don’t consider myself an active blogger, although I do blog from time to time. Every time I write a post, I get a few face-to-face comments that go something like this:

“I read your blog post. It was really good. You’re a really good writer.”

Translation:
“I read your blog post.”

There are two things that could be happening here:

  1. The only people who actually read what I write and then tell me what they think are people with a genuine interest in what I have to say, and therefore they will always love it.
  2. Nobody wants to disagree with or attack anything I write to my face, and it’s much easier to just pretend to like everything.

It’s probably some combination of both.

Generic positive feedback is great to some extent because it provides encouragement to keep going. Beyond that, however, it’s not very helpful.

I’ve only ever had one friend point out some serious flaws in one of my blog posts. Aside from that, all the constructive feedback I’ve ever received has happened online.

From what I’ve seen, online anonymous feedback has a bias toward the negative. When names and identities are optional, the fear of personally offending someone is greatly reduced. Thus, people tend to be a bit more honest.

It’s easy to dismiss everyone who posts something negative online as being a “troll”. But for every trollish comment, there’s an attempt at constructive criticism, even if most people don’t read it that way. (Okay, maybe it’s not even close to a 1:1 ratio, but bear with me.)

A great example of a community that thrives off negative feedback is Hacker News. Any time there’s even the slightest flaw in anything that’s posted, you bet there’s going to be a comment about it. Would people be getting that constructive, actionable criticism if all the feedback they received was from people they knew? I don’t want to speak for everyone, but my guess is probably not.

Over the summer when I lived in New York City, I chatted with Chris Poole (creator of the infamous 4chan) for a bit about online identity. Poole (who goes by “moot” on the web) runs a website where posts are all anonymous. He believes that the truth comes out when your remarks aren’t attached to your identity. Mark Zuckerberg, on the other hand, pushes strongly for an authentic online identity that’s inseparable from your real self. (Interesting fact: they’re actually friends, despite their strongly opposing views.)

So, who’s right? I think they both are, especially when feedback is involved. It’s important to hear from a mix of both close friends and anonymous bystanders, and everyone in between. That way, the feedback biases balance out and you have the encouragement to keep going while knowing where your flaws are.

Oh boy, the feedback on this one is gonna be pretty ironic.

Why I Believe JavaScript is the Best First Programming Language to Learn

If you’ve never programmed before and want to start building that skill, I think JavaScript is the best place to start. I’m not claiming this to be the absolute truth, since it really depends on why you want to start and what you want to do with your programming skills. These are just my opinions and reasons why I believe JavaScript the best place to start for the average person who wants to start coding.

Universality

Until a few years ago, JavaScript was primarily a language for front-end web programming. Nowadays, it works pretty nicely for doing backend development, native iOS and Android development, scripting, and possibly more that I haven’t discovered. While it may not be the best choice for most of these use-cases, it can be used for all of these, and that’s hugely important for a newbie programmer. While it’s easy for experienced programmers to pick up new languages on the fly and choose the best tool for the job, this probably isn’t the case for someone who’s just starting out. JavaScript allows a novice to dabble in many different areas without the overhead of learning many different languages and syntaxes.

I’ve used PHP, Ruby, and Python to create the backend of web applications. Someone who knows JavaScript can do the same with Node.js. I’ve used Python quite a bit to write scripts to manipulate and analyze data. Someone who knows JavaScript can do the same, also with Node, without even touching anything web-related. Native iOS and Android apps are written in Objective-C and Java, respectively. Appcelerator Titanium lets you write native apps with JavaScript. Knowing JavaScript lets you get started in many different areas, and from there you can learn the languages that are best suited to what you’re trying to do.

Jeff Atwood takes this to the extreme when he says that any application that can be written in JavaScript, will eventually be written in JavaScript. I don’t fully subscribe to that idea, but I think it does say something about JavaScript’s usefulness.

Little to no setup

Want to write some code and see what it does? Hop on any computer, and there’s an interactive environment right there in the web browser. No packages to install, nothing to set up. You don’t have to deal with the terminal, which can be intimidating for someone who’s never worked outside a graphical environment before. Google Chrome even has debugging tools built right in.

Even if you’ve never programmed before, you can go to www.google.com, type the following snippet into the JavaScript console, and press enter.

document.gbqf.q.value = "I entered this with JavaScript!"; 

The search box will then populate with the text “I entered this with JavaScript”. You might not understand what you did and why it worked, but at least you were able to run a piece of code and make it do something. That’s far more accessible to a beginner than installing packages, setting up an environment, possibly importing libraries, and then finally being able to write code that actually does something.

Want to learn how a for loop works? Run the following code in the browser’s JavaScript console to count from 1 to 50.

for(var i = 1; i <= 50; i++) { 
 console.log(i); 
} 

Congratulations! You just used one of the most important concepts in programming using the same software you’re likely using to read this post (unless you’re on a mobile device).

JSON

JSON, or JavaScript Object Notation, is widely used nowadays to transmit data between different services. Want to pull data from some API? You’ll likely need to understand JSON. Each language has its own way of representing data, but if you understand how JavaScript does it, you’ve got JSON covered with no extra effort.

C-style syntax

While I actually prefer coding in languages that are more space-based than brace-based, C is an important language to know. Many popular high-level languages are implemented in C, so doing some C coding can give you a much better understanding of what’s going on behind the scenes. While knowing JavaScript does little to teach you about how things are actually implemented, coding in a language with C-style syntax makes for an easier transition to something like C or C++ if you want to go down that route in the future. I don’t mean to say it will be an easy transition, but I think going from JavaScript to C would be easier than going from Python or Ruby to C.

Agree? Disagree? I’d love to hear your thoughts where you think is the best place for a new programmer to start.

UPDATE: I just came across this excellent Quora post: What’s a good first programming language to learn? which addresses different reasons to get into programming and which languages are best suited for each of them.

Catching up with 2012 hackNY Fellow Sean Gransee

I wasn’t always a hacker.

There are some people who have always had it in them. Programmer by age 12. Software development internships in high school. A moderately successful business under their belt halfway through college.

I am not one of those people. I wasn’t a programmer in high school. Not even at the start of college. In fact, I went through my first year of college as a film major. Computer science? That was for the people much smarter than me.

My life has since taken a huge turn. I am now diving head first into the tech startup community. In less than half a year, I’ve developed a few small apps that have been seen by hundreds of thousands of people and gotten press ranging from Lifehacker to NBC. I’m now working on an idea that I hope to convert into a sustainable business, something that I wouldn’t have even dreamed of doing a little while ago.

Read the rest of this post on the hackNY blog.

No Studying After 5pm: Using Parkinson’s Law to Kick Procrastination’s Ass

I’ve recently made four lifestyle changes that have allowed me to get more done and put much more effort into everything I do, all while feeling great with very little stress.

  1. I sleep 8 hours a day
  2. I work out for an hour every weekday
  3. I hide all clocks while I’m working
  4. I don’t do anything related to academics on Saturdays and past 5pm on weekdays

My main focus of this post is the last two, but I’ll briefly address the first two because I think they’re very important.

Sleep

I read a lot of what tech entrepreneurs have to say, and I’ve noticed a trend. The ones who are most successful seem to be the ones who value their physical and mental health. I feel like every few months I see a new study about how getting adequate sleep makes you perform better. It’s almost common knowledge at this point. Yet so few students take that research to heart.

Working more hours in a day doesn’t necessarily correlate with getting more done. I find that I’m much more efficient and productive if I’ve slept well the night before. Therefore, I’ve been putting myself on a consistent sleep schedule from 1am-9am every weeknight. After a few days, I started being able to fall asleep much faster and wake up refreshed in the morning… something I haven’t consistently felt in months.

Exercise

I also made a habit of going to the gym every day from 5-6pm. In the beginning this was a pain, and I felt like it was taking an hour away from me getting work done. I used to feel like I didn’t have time to exercise, but now I feel like I don’t have time NOT to exercise. By forming a habit, it feels like something I need to do every day, just like eating and showering. I don’t think twice about it anymore.

Parkinson’s Law

But my real trick for getting more done with much less stress is in the things that I don’t do. It all stems directly from Parkinson’s Law:

Work expands so as to fill the time available for its completion.

— Cyril Northcote Parkinson

The idea has been around since 1955, and taking advantage of it has completely changed the way I work. Parkinson’s Law, in other words, states that if you have a certain amount of time to complete something, that’s how long it will generally take.

Usually this means that if you have more time than you need to get something done, you’ll use that extra time because it’s available to you. From personal experience I’ve found the reverse to be true as well. If I give myself less time to do something, I’ll still manage to get it done in that limited time.

Focus

Scott H. Young wrote in his email newsletter that time usually isn’t the bottleneck when it comes to getting things done. The real bottleneck is focus. I found that to be absolutely true when it came to my study habits. Everything I did took 3-4 times longer than it should because I would distract myself every few minutes by Facebook, email, text messages, Hacker News, or any number of other distractions.

But the real time cost when it comes to these distractions aren’t the distractions themselves. It’s the context switching that occurs every time I’m distracted. Thirty seconds on Facebook may seem harmless, but the real time cost comes from the time it takes me to become mentally re-engaged with a task after a distraction. Read up on context switching, and the findings may surprise you.

Everything up until this point led me to believe that I would be much more productive if I eliminated distractions. If I could frequently achieve flow (being fully immersed in a task), then I’d be able to get things done more than twice as fast, right? So now comes the mission of eliminating distractions.

Distractions

The biggest distraction in my life (and potentially yours) isn’t Facebook, email, friends, or anything remotely related. It’s the clock. Whenever a clock is in my field of vision, I find myself constantly looking at it. Every time I look at the clock, some sort of thought about how much time I have left enters my head. Every time that happens, I waste time because of context switching.

Cover the clocks

So I eliminate clocks whenever I’m working. I disabled the clock in the corner of my laptop. Since you can’t disable the clock on an iPad, I ripped the sticky part off a post-it note and covered the clock. My phone isn’t a problem because I usually have that on “do-not-disturb mode” when I’m working.

The only genuinely useful thing about clocks when I’m working is that they tell me when I have to be somewhere. But I don’t need a clock for that. All I need is an alarm. If I don’t have to be somewhere until noon, I’m much better off not knowing what time it is until it’s 11:45. I’m able to get by without ever looking at the clock because I set an alarm before I have to be anywhere. I use an app called Brrrr Alarm, which vibrates your phone instead of making noise, all the time when I’m working in a quiet space.

Let’s think back to Parkinson’s Law: “Work expands so as to fill the time available for its completion.” The no-clocks thing works great for short tasks. When I don’t know how much time I have to complete a task, I naturally work as quickly as possible the entire time.

But aside from eliminating some context switching, this alone doesn’t really do much to help me efficiently complete long-term tasks. What harm can a little Reddit break do when I’m working on something that’s due next week?

No studying after 5pm

The answer is simple. It might sound crazy, but rigorously following this rule has forced me to completely focus most of the time and start things long before they’re due. I don’t do anything related to academics on Saturdays and past 5pm on weekdays.

I like to think of this as reverse-procrastination. Think of how procrastination works. You put a task off as long as possible, and then complete it hours before it’s due. In a way, you’re utilizing Parkinson’s Law when you procrastinate. You’re limiting the time you have to do something, and therefore you’re able to complete it in much less time than it would normally take you. In a way, procrastinators are very efficient when it comes to how long it takes them to get things done. But this comes at a great cost: stress.

If I give you a week to complete [a short] task, it’s six days of making a mountain out of a molehill. If I give you two months, God forbid, it becomes a mental monster. The end product of the shorter deadline is almost inevitably of equal or higher quality due to greater focus.

— Timothy Ferriss

It’s stressful to do everything at the last minute. So I’ve taken procrastination and turned it on its head. I tell myself that the due date for everything I need to do each day is at 5pm. This forces me into consistent periods of ultra-efficient productivity because I’m constantly racing against time to get everything done by 5pm. I find myself not even wanting to take those quick breaks because they might stop me from completing everything I need to do by 5pm.

This constraint I’ve imposed on myself has also caused me to start tasks long before I need to. Before I started imposing this constraint, I generally wouldn’t start anything until the day before it’s due. Now, if I’ve finished everything I need to get done for tomorrow, I’ll go ahead and start something that’s not due until next week. Why? Because I don’t want to get stuck in a situation a week from now where that task isn’t done by 5pm. I now spend almost every moment before 5pm in my day actually working.

Here’s what a typical week looks for me now:

Weekdays:
10am-5pm: Homework, studying, going to class
5pm-6pm:
Gym
6pm-1am:
Whatever I want, as long as it has nothing to do with academics
1am-9am:
Sleep

Saturdays: Whatever I want, as long as it has nothing to do with academics
Sundays:
No constraints. I can use this as a catch-up day if I absolutely need it

I’ll occasionally make exceptions to those constrains for group work or scheduled school events like review sessions and exams. Other than that, I stick to this schedule pretty rigorously. 

By constraining the amount of time I have to study and do homework, I force myself to completely focus and put more effort into my studies with much less stress. This, combined with getting adequate sleep and exercise, has made me much happier and more efficient these past few weeks. It may or may not work for you, but this combination of lifestyle choices has been tremendously beneficial for me.

UPDATE: I’m not suggesting using the same constraints as mine. Only that constraining your time in some way can be beneficial.

UPDATE 2: I don’t spend that time from 6pm-1am twiddling my thumbs. I work for a bunch of startups and a research lab, so most of that “free” time is actually spent working. I just find it much less stressful to separate my academic and professional time rather than jumble them together in my day.

For more, I recommend reading the following articles:
How to Use Parkinson’s Law to Your Advantage - Lifehack
Beat Parkinson’s Law and Supercharge Your Productivity - Litemind
Parkinson’s Law and Productivity
- Academic Productivity

(Reblogged from softwarecake)

hackNY Summer Series: Chris Dixon

The world isn’t run on ideas alone. Having a world-changing idea is great, but many big ideas are essentially worthless without proper execution. During one evening of the hackNY summer series, the 2012 Fellows got down to business with Chris Dixon. Chris is the co-founder of Siteadvisor (acquired by McAfee) and Hunch (acquired by eBay), as well as an angel investor. In this candid discussion about the business side of tech startups, Chris talked about the successes and failures he’s seen in the startup scene and gave us many tips for turning our dream business ideas into a reality.

Read the rest of this post on the hackNY blog.

The Real Value of College

A professor recently described his attendance policy like this:

Attendance isn’t required. However, if you don’t show up to class you’re losing a lot of money. Here’s your yearly tuition. Now let’s divide that by the number of classes a typical student takes in a year and then by the number of lectures this course has. One hundred dollars. You’re losing $100 for every hour you don’t show up to class.

By that logic, this is the yearly breakdown of my college tuition:

Library access: $0
Athletic facilities: $0
Online resources: $0
Student network: $0
Alumni network: $0
Company recruiters: $0
Homework/exams: $0
Office hours: $0
GPA: $0
Diploma: $0
Lectures: $43,380

I’ve heard the same argument from parents, colleagues, and yes, even students.

In reality, lectures themselves aren’t worth much at all. If they cost $100 an hour, then why can anyone with internet access watch lectures from Harvard, Stanford, and MIT for free? How come I can watch one of my favorite teachers lecture about anything from Trigonometry to Art History without paying a cent?

Because real learning doesn’t happen during lectures. It happens while trying to solve homework problems. It happens during discussions. It happens while studying for exams. The lectures are just a starting point.

Let’s look beyond courses. You’re not just paying for college so you can learn about a bunch of subjects. Success in life isn’t determined only by what you know. It’s determined to a great extent by who you know, how you present yourself, and how you deal with complex situations.

Very few of these skills are improved through courses, and definitely not during lectures. Many important aspects of life are based on interactions with other people. I’d argue that the most valuable aspect of college is the immense opportunity for social interaction.

That’s half of what you’re paying for. You’re paying to have the full college experience, which is a combination of lectures, homework, exams, a GPA, dorms, athletic events, alumni, recruiters, resources, eventually leading up to a diploma.

When you get a $20 meal at a restaurant, does the actual food cost $20? Of course not. You’re paying for people to take your order, cook your food, and bring it to you. You’re paying for the expertise of an experienced chef. You’re paying for the building and its utilities. You’re paying for the atmosphere. You’re paying for the whole experience of going out to eat. The cost of the food is a fraction of that $20.

Nobody argues that your entire check at a restaurant just pays for the ingredients. So why do people argue that your entire college tuition just pays for the lectures?

The Decisions Behind WikiLoopr

A couple weeks ago, I created a website called WikiLoopr. Hours after it went live, the site exploded on Hacker News, made its way around Reddit and Twitter, and got featured in an NBC News tech blog. Those first 24 hours brought in over 40,000 hits to the site.

The site went live on the same day that I came up with the idea. Plus, I’ve never paid a dime for hosting. This was my least expensive project ever, both in terms of time and money invested. It is also by far my most successful. Here’s how I turned an idea into a viral success in a single night.

If you want concrete code examples for anything I talk about, check out the source code.

I satisfied my own curiosity.

The idea stemmed from this blog post by Andy Jordan, a brilliant student at the University of Chicago and fellow intern at Syndio Social. After reading his post, I spent way too much time that day looking up random Wikipedia articles and clicking links until I entered a loop. I was hooked. Curiosity got the best of me, and I decided I wanted to build something that could automatically show you the entire path to the loop without all the manual clicking. A couple hours later, I came home from work and got started.

I kept the design simple.

Look at the design. There’s nothing there that’s not necessary. I didn’t set out to create a beautifully designed website. All I wanted was to see the loop that stems from a Wikipedia article. The site has two distinct colors, plus a few shades of gray. As far as images go, there are two logos and a loading spinner. Nothing more is needed.

I didn’t use a database.

Yes, it would have been cool if I had kept track of things like what people are searching for, average length to the loop, and more. But this wasn’t part of my original plan. I didn’t care too much about analyzing the usage… I just wanted to get it out there! This saved me a bit of development time and aided performance.

All the logic is on the client side

Speaking of performance, this one is huge. I run the site on a free Heroku server, which can only process one thing at a time. Unfortunately, processing one request from the user can take quite a while. The site has to find the first link in the article, follow the link and download the next article, find the first link again, etc. Some requests can spawn up to 50 Wikipedia articles. With hundreds of people on the site at once, that would have killed my precious free Heroku dyno.

So I took a different approach. I wrote all the logic in Javascript (well, Coffeescript to be more accurate). When a user visits the site, the browser essentially receives a list of instructions for what to do once the user searches for a page. It’s the ultimate form of parallel processing. Instead of one little server downloading all those pages and finding all the first links, hundreds of browsers can do that work at the same time.

The downside of this is that the site is much slower on mobile devices. But the huge benefit of running everything on the client side far outweighs this minor disadvantage.

I didn’t cache anything

This one is a little controversial. Yes, I could have cached the results so that any time a new page is requested, WikiLoopr stores the first link so it doesn’t have to fetch the page from Wikipedia again. I didn’t do this simply because I wanted to release this thing as quickly as possible, and it simply wasn’t necessary. It may have put a bit of strain on Wikipedia servers, but to a site that serves 2500 pages per second the increase is barely noticeable.

Looking back, I’m really glad I never ended up caching anything. Why? Because the loop kept changing. When I made the site, most pages would lead you to a loop between Philosophy and Reality with nothing in between. Over the next few days, Wikipedians edited pages for Philosophy and similar concepts, which changed the loop. About 6 hours after I launched WikiLooper, the loop contained 28 articles. It has since leveled off at 7. Andy Jordan, the author of the blog post that inspired WikiLoopr, wrote a follow-up piece in which he described the observer effect that was occurring.

I made the site evolve with Wikipedia

As I said, the loop was just two articles. In addition, the path leading up to the loop was usually around 5 or 10. Everything fit nicely on the screen at once. But then as both the loop and the path leading up to it got bigger, they would no longer fit on the same screen. I started getting requests to show how big the loop is. So I added a little display on the right side of the page. Not only does this tell many users exactly what they wanted to know all along, but it makes the site easier to understand.

I didn’t waste time hunting down bugs

It would have been nearly impossible to find all the bugs myself. With an input domain of 4,049,583, it would have been pretty damn hard to test to make sure every Wikipedia article worked. So I didn’t even try. I spent about an hour testing it with all the random Wikipedia articles that popped into my head, and that’s it. Then I released it knowing that many articles would cause problems.

And they did. But people were very quick to point them out. People commented on Hacker News and Reddit. People tweeted bugs to me and submitted issues to GitHub. Within the first few hours, I knew about almost every bug that existed on the site. I fixed them later that day, and haven’t noticed any issues since the first few days. As far as I’m concerned, WikiLoopr works for 99.9% of pages and I can leave the code alone and move onto something else.

So there you have it. Feel free to reach out if you have any specific questions.