hackNY Lessons: Week 8

We met Anthony Volodkin from Hype machine and Thatcher Bell, Greg Pass (former Twitter CTO) and Daniel Huttenlocher (Cornell’s Information and Computer Science dean). I had no idea they were trying to open a Cornell branch in NYC (CornellNYC Tech, in partnership with Technion, aka Israel’s MIT), but if someone had to run it, they chose the right person. Honestly after meeting several CS/Engineering deans this is by far the only one I’ve met who really thinks out of the.. university? Usually they are so centered in academia that the only things they see outside of it it’s consulting companies like McKinsey or Accenture. In my view that doesn’t necessarily mean they can’t run a CS school, but the problem is they fail to show all the options to their students body. I’m not into academia nor I think I’ll ever be but heck as soon as this becomes something real I will be on the first line to check it out.

Definitely one of the best talks -I’d say QA rather- so far at Art.sy headquarters. I also got the chance to talk to Daniel Doubrovkine, Art.sy’s head of engineering and a very cool Swiss individual who gave me good advice about CERN, Geneva, universities in Switzerland and such. I should stop and start off with the learnings because I’m getting too emotional at this point.

 

Tech learnings:

  • Project Euler from 6 to 8 in Clojure
  • Git cherrypicking
  • Lifebooker’s API
  • Handle JSON
  • When scaling something that cannot be stopped measure everything.
  • Chef vs Puppet
  • Learn something that will make you think different when it comes to programming. No, learning C# when you know Java doesn’t count.

Startup learnings:

  • Step away from some friends. I should add, learn what not to do from some friends. Sometimes people forget how important it is to know what not to do and not only what to do.
  • In order to build a really good ecosystem, new startups should have some sort of role model (HP/Google/Microsoft/etc..)
  • It looks like for some people it’s easier to find a problem/solve it/make profit than innovating. I personally
  • think releasing something truly innovative is several orders of magnitude harder than the former.
  • Big problems (self driving car) have such big barriers to entry that most people with an entrepreneurial drive decide to go for the easy profitable thing (Instagram). No shame on that. I heard a story this week about two guys who are almost 99% certain they can make nuclear energy with Thorium way more efficiently than the way its done right now. Cost of that prototype? 100M. YES A PROTOTYPE. A big chunk of that is lawyer/bureaucracy fees.

Life learnings:

  • Please prove me wrong but there’s no way to avoid losing a holyfuckton of money when buying foreign currencies.
  • Again, bureaucracy sucks on so many levels. Probably the barriers to entry that market are super high
  • but there is definitely a big problem on that ‘market’ whatsoever.
  • Also sending money to foreign banks is a pain in the ass. I might open an account on CapitalOne.. 0% on ATM’s overseas, no fees at all.

hackNY Lessons: Week 7

Chris Dixon and Josh Knowles were the talks for the week, being the former mostly QA and the second one probably the best presentation on Agile management concepts that I’ve ever seen. It was so much stuff in less than 1 hour and a half, I already know most of it but hell now that’s really ingrained in my brain. Chris Dixon put an emphasis on personal branding, having really clear goals for your startup.. oh wait maybe I should get started.

Tech learnings:

  • Chapter 1 of the Joy of Clojure. I read slow, mostly because I only read on the subway or when I’m waiting to go to work in the morning.
  • How to solve this with Clojure (will post the solution right after this post)
  • Codata, corecursion, f-algebras.. looks like I learnt more math than practical tech this week.
  • Apache routing to keep different Rails projects separate.

Startup learnings:

  • Ndas.. most ideas seem stupid to a person who is listening to pitches 24/7. It’s so rare that you tell someone an idea and that person copies it to the point it makes your idea a serious competitor against you.
  • Jesus christ getting people to use your stuff is hard. And I don’t even know where to look at to get better at this. I wrote this post on HN asking for help but nobody seemed to care much about it. I’m sure its a lot easier to look for a niche then build something people will use than trying to do innovative stuff.
  • You should of course focus on something and do it really well. You’ll get to a point where you can be ahead 99% of the people on something. Then take something new on a totally different topic and become good at it. All credits to Chris Dixon on this one.
  • Make really, really clear to your cofounders what do you want to do with your little baby that your startup is. It will be a major source of problems if you want to sell it to some Indian company in 5 years while your cofounder wants to keep running it.
  • If possible, avoid having a team who cannot communicate. That will kill your company. There are ways to build a startup from scratch where all employees are friends with each other and still they are ‘A’ players as they like to call themselves..

Life learnings:

  • I get frustrated when I have no side projects. Project Euler was a good mental outing this weekend, I guess I will continue until some idea pops up.
  • Too much bleach is never a good thing even if you can’t fit anything else on your washing machine.
  • Another headache on Saturday night for the same reasons. I should do something.

hackNY Lessons: Week 6

Last week we attended two awesome talks. First Peter Bell taught us how to choose your tech stack wisely and it was.. very insightful, especially after me failing to choose the right technologies for my projects. Also he gave lots of tips about hiring people, etc, which are reflected on this list. On Wednesday we met Joel Spolsky and gave us a talk about how StackExchange was built, mostly focusing on how good they are doing attracting knowledgeable people to their sites. Lots of learnings from that talk will show up in the list for this week too!

Tech learnings:

  • I learnt essential bits of Puppet and Chef, a soft introduction to what is expecting me in just two months at CERN.
  • Code reviews are vital. Even if the rest of your team is not familiar with what you have been working on, there will probably be a lot of stuff that you didn’t realize how dumb it looks until someone points it out or your read it several times. That or I’m retarded. (which is very plausible)
  • Git stash back, pull, then pop, will avoid A LOT of conflicts. Thanks Adam!
  • I just started the Joy of Clojure, I hope this will be enough to get myself to a level where I could just have to google for libraries and not for simple syntax questions. And its only 360 pages!

Startup learnings:

  • The coolness factor of a language is important when you want to hire the right people. It will be much harder to find a REALLY top notch PHP developer than to find a really good Racket developer.
  • How many Haskell developers COULD also write PHP? You should know the answer and yet be surprised about it.
  • Attracting people who care about your site and who care so much about what you do that they will come every day is much more important than getting a peak of audience on HN/reddit/whatever.
  • I’d take a close look at how new StackExchange boards are created to do that (if I ever had to do this)

Life learnings:

  • Maybe I should learn these posts every time that I feel like procrastinating, I haven’t accomplished much this weekend just because I wanted to get my laptop fan to be less noisy.
  • Sometimes I have no idea about how to get myself on to do stuff. And that led me to a headache on Saturday night.

 

hackNY Lessons: Week 5

We met with Chris Wiggins and Evan Korth and had some insights on what’s the way hackNY works and what do they want to accomplish with it. Also we met Chris Poole (m00t) founder of 4chan and probably one of the individuals in this city that has very opposite views to mine on almost every topic (lol).

I worked mostly fixing bugs and old broken code, got stuck at my project with Clojure, and I only managed to get to Project Euler 4. Super pointless week overall (aside from the talks), although I managed to do some stuff on the weekend and visit around some cool places around Downtown Manhattan. Props to Jesse and Cheryl who built mentor.im for NYC Angelhack and got into the top 20 best teams, they’ll be pitching in SF soon. I myself ditched Clojure for the Amazon Spider thing and used Ruby which is much more appropriate. Lesson learned. I guess I’ll learn Clojure by means of books/Project Euler and what not. Advice on this will be much appreciated.

Tech learnings:

  • SSH replaces telnet, SCP replaces R* (rexec, rcp, etc..)
  • If you let other people work on your stuff without supervision and they don’t do TDD, your tests will break badly
  • As a corollary to that, try to always get everything in small chunks so one person can work on one thing without interfering the rest.
  • Do not squash your commits without checking everything works properly… it’s not easy to get back to the previous state, especially when your squashed commits come from several different branches.
  • Corecursion (again). I’m writing a cool blogpost on it that is helping me to learn it better.
  • Codata, F-algebras and F-coalgebras (thanks ELIMF)
  • Don’t go with anything than the best tool that you best know for a certain work. Hitting a nail with a screwdriver feels so dumb and that’s metaphorically what I’ve been doing for a month. I.e: Rapid prototyping with Clojure not even knowing the syntax/idioms/etc…
  • For loops on the terminal are cool and useful.
  • Know concurrency like the back of your hand. It WILL hurt you if you don’t know it and even worse you won’t even know what your problems are nor how to solve them.

Startup learnings:

  • Go for bleeding edge technology. If you are not familiar with it and you cannot afford learning it (time or money wise), go for the second best option.
  • I do have conflicting views on almost everything with some people in this world. And so do other people. This is not a learning actually but myself trying to apply some common sense to my networking.

Life learnings:

  • Learning by doing doesn’t work for me, I need to read a book, do some tutorials and whatnot first.
  • GO OUT and explore. It made my week to go out on the weekend around NYC after the most pointless week ever.
  • Again, don’t be a hermit…
  • Let others have a second chance.
  • Don’t lose your passport if you’re working in the US. Getting an I-94 under the regular time span is really, really hard.
  • 1 week with no exercise made me go dizzy after some extenuating work.
  • Be kind to your neighbors, I met cool people at Palladium’s hall elevators (lol!)
  • Make the most of your 24h day. I wrote this whole list while waiting for some dumplings here (Vanessa’s dumplings)

hackNY Lessons: Week 4

Awesome fellow Terence Nip  had a great idea and he is going to post his weekly learnings on his blog.

We met with Joanne Wilson (a.k.a. the gotham gal), Dennis and Harris Foursquare founders, and chilled out on Wednesday with the Fog Creek crew at their offices. Overall a terrific week. Plus we got some stuff done and I went to hack n jill and got to do some cool shit with Cheryl and Jesse, he wrote about it on his blog.

From http://blog.terryatjn.com/post/24749339216/hackny-lessons-week-3 ,

Tech learnings:

  • Mongomapper
  • I learnt to love HAML over ERB.. and SLIM over HAML.
  • I mostly did front-end stuff this week.
  • Enlive and how to scrape websites with Clojure. Still not quite there though but I’m getting the hang of it. 6 weeks to go.
  • Lean planning and dividing your work into chunks to put in your to do list makes everything easier. i.e: “Crawl 1 site and 1 link”. I try not to plan any further than 2 or 3 of this chunks at a time.
  • I need some help on learning more common functional programming idioms than map/reduce/filter …

Startup learnings:

  • Whenever you get denied for funding, always ask why. Otherwise you’re going to get in a never ending circumference path where you get rejected and you cannot do anything to solve the situation.
  • Get your legal stuff sorted out early on. If you don’t know how to start, Doccracy might help here 
  • Why would you try to raise funding if you don’t need it? Just bootstrap it and enjoy your cake while people in suits look at you with envy. Definitely the way to go if you or the problem you want to solve don’t really need the money and especially if you can’t give back 100x that amount.
  • Almost every successful entrepreneur has been very, very tight in money at some point of their lifes.
  • Overnight success doesn’t last.
  • People at foursquare were working for 10 years on the same sort of problem until it clicked. They even got acquired by Google and they ditched their product. That should tell you something.
  • However, in Harris words.. don’t take all advice you get. No matter if it comes from Larry Page and Sergey Brin. Take risks if you think your idea will change the world even though everyone else tells you it will not.

Life learnings:

  • Startup learnings should really go here but whatever.
  • Work hard surrounded by people who work hard. Then party hard together. Rinse and repeat. Motivation can be a bitch when you work on your stuff all alone.
  • Having no money forces you to be creative if you really want to get out of that situation.
  • I need to think for 5 minutes on the solution of a problem before actually starting to work on it.. not sure if this is a good thing or not.
  • For some reason places like Fog Creek attract lots of hardcore nerds. Even though they make really top notch cool stuff, diversity >>>>> being in a plastic bubble. Please prove me wrong on this.

hackNY Lessons: Week 3

Awesome fellow Terence Nip  had a great idea and he is going to post his weekly learnings on his blog.

We met with Billy Chasen from turntable.fm and Jonah Peretti founder of the Huffington Post and Buzzfeed.

From http://blog.terryatjn.com/post/24749339216/hackny-lessons-week-3 ,

Tech learnings:

  • RMagick is powerful.
  • The smartest way to compare images is to get a reliable signature (checksum) of the image that is based on the colors of the image.
  • Partials in Clojure are cool.
  • Take-while in Clojure and closures can be great to set race conditions – take-while #(< % 4000000)
  • Git… requires some supervision from other people in your organization if you want everyone to work the same way
  • Being exposed to different ways of coding when you have already found your own click on a certain language – Ruby – is very enriching
  • It would take at least two months if not more to stop developing features and solving bugs, and instead make all the codebase beautifully written. It’s not worth it, so try to make it beautiful from the beginning. Or deal with it.

Startup learnings:

  • Would you mind to work on a problem for five years? Better yet, would you mind to talk/think/be all in about your startup 24/7 for the next 5 years? That’s what your life will be, so if the answer is yes, do it. Otherwise make it a pet project
  • It helps if you know straight away how to get revenue from your customers if you are trying to raise funds.
  • But if you feel like your idea would change the world for good, even though you don’t know how to make money out of it, go for it anyway.
  • Megaman will be my inspiration for UX from now on! http://bit.ly/KCb15e
  • I already know this but just for the sake of repetition. Have a life. Being in a circle jerk isn’t the best thing for your startup.
  • Our lecturers’ tips are kinda repetitive so I guess it’s cool to internalize everything.

Life learnings:

  • I should worry less about sanitation conditions on NYC restaurants.
  • I got lost the day before a shooting in East Harlem and survived (LOL!). It looked sketchy as hell though.
  • I adore Twitter/Hacker News and some subreddits /r/blackhat , /r/ELIMF yet I have to find a way to have time to check them out everyday, work doesn’t really let me do that.
  • Again. Committing to do something every day when you have obligations like work or school is hard. I will overcome it.
  • Rather than a learning this is a doubt. I’m not sure whether it’s worth it or not to stop caring
  • I definitely can only deal with my hypochondria by giving me 2 weeks to get better from whatever illness I have.

 

 

Project Euler with Clojure 2

Done with Project Euler 2.

Tricks learned –

  • Operator ‘ (+’) to work with java BigIntegers automatically
  • Filter even? instead of #(= 0 (mod % 2))
  • Partial for conditions, instead of #(> 4e6 %)
  • Take-while to not let fib-seq return anything not compliant with a condition
  • Function definitions and calls

Wording:
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

 
As always, I’m open to suggestions and whatnot on my twitter

hackNY Lessons: Week 2

Awesome fellow Terence Nip  had a great idea and he is going to post his weekly learnings on his blog.

From http://blog.terryatjn.com/post/24222772432/hackny-lessons-week-2 ,

I want to come up with a good article on Mocks and Stubs soon, keep tuned, it’s only that I haven’t had much time for it.

Tech learnings:

  • Clojure seems to be very intuitive and productive for me. So glad I’m doing my #hackny project with it.
  • There’s a real need for vim in some environments like the one I’m working on at Lifebooker.
  • Not really a new learning but it’s a pain to learn how a new system is tied up together.
  • I get mad every time I see people don’t use ||= .
  • Tmux can be nice but nowadays I can find easier workarounds to the problem it solves.
  • It’s so hard to test a tracking pixel outside production.
  • Again my testing is getting a bit more solid than before, although I hate the need we have to mock/stub almost all objects.
  • I won’t read so much about a technology that I want to learn anymore. Fb’s motto “move fast and break things” works better for me.
  • So it does my fellow Matt’s tip on learning a language  – “solve project Euler problems with it”
  • People are dumbasses uploading secret tokens to github. You probably already knew this if you follow me on Twitter
  • Even though I’m not the best when it comes to solve git problems, my workflow is simple, efficient and if anything goes wrong it’s always easy to fix. The one where I work is not as simple and it was a major source of problems for the 3 new hires so me and a buddy from work will propose a new one. I love how open is the company that one can introduce such a change in his 3rd week.

Startup learnings:

  • Be your cofounder’s best friend.
  • On the same lines, keep all the paperwork straight with them.
  • If possible, work side by side.
  • Some people are trying to force me thinking models with no revenue prospective should be backed up, maybe I’m too conservative about it but the vast majority of the ideas that I see being funded like this are not worth 10x the investment.

Life learnings:

  • It’s freaking hard to commit to do something daily, even weekly.
  • My project for hackny demofest is going to take me several hours of work. So be it, that’s why I’m here.
  • Chinatown is a nasty ghetto at night. At least Canal St is close by.
  • Central Park is totally fine at night.
  • I came across the entrance of the hospital where Michael tries to protect his father from being killed in the Godfather (1). I really got the creeps.
  • Trying to keep up with people 6 time zones away seems to be harder than when I was in California, our schedule is completely messed up.
  • Unless you’re good friends with your coworkers, try to not know what their personal background is (professional background is ok.)
  • If you keep your ears open, you’re bound to learn a lot everyday especially if surrounded by the right people. I just hope it won’t become a circle jerk (hackny).
  • Work from 6 to 9 on your own stuff, no one is going to bother you and you won’t have to say no to social stuff later on. No checking emails, facebook, whatever, just work straight ahead with a bottle of your favorite drink on the table (it can be Macallan or chocolate milk, who cares)

hackNY Lessons: Week 1

Awesome fellow Terence Nip  had a great idea and he is going to post his weekly learnings on his blog.

Original as I am I will do the same, probably will come with some interesting facts about Mocha this week.

From http://blog.terryatjn.com/post/23778247940/hackny-lessons-week-1 ,

 

Tech learnings:

  • I can’t decide yet if I should learn Clojure, Haskell, or just focus on Ruby and Jav… Coffeescript really well.
  • Learnt a bit about Mocha and when to stub/mock and object on RSpec testing. I will learn a lot about this for the next 10 weeks.
  • I wrote this little Ruby gem that lets you send emails with a Rails template compiled down from a markdown language. (erb, merb, md and string). Still missing some documentation.
  • I have a really hard time fixing to a certain time span when pair programming + I can’t help writing the code when I watch instead of suggesting to whoever should be writing.
  • git Rebase >>> Pull last version + Merge
  • Integration testing must be hard, they have a fully dedicated person to test with Selenium
  • db/schema.rb might not be as useful as it once was, a lot of data is stored on the cloud nowadays.
  • fixed-point arithmetic is awesome and easier to grasp than floating point, but conversion between both is such a pain in the ass
  • I learnt how to generate sine waves without using math.h and any floating point.

Startup learnings:

  • Can’t stress this enough, but have someone to complement your skill set if you really want to launch anything. It minimizes the chances of being a disaster in some part of the business you would not pay attention to.
  • VC money may sound cool but revenue money sounds even better. It will probably sound better to your parents/ and there is a reason to it.
  • From Ryan co-founder of Codecademy, make your life an experiment. I have this pretty much internalized but whatever you spend time trying out, it’s always an opportunity to discover something you love , hate, or don’t care about. This guy spent a lot of time doing bio-related stuff, code for GPUs, and much more. When you find something you love people will realize.
  • Startup stories sound like fairy tales until they actually tell you the whole process. Deal with it.

Life learnings:

  • The more you do might not always be the more you learn, at least for me. I can’t write anything GOOD on sleep deprivation.
  • Go out and meet people. It’s easier to be said than done but just do it. Knowing who to call and having a person to call to when you’re in trouble is so valuable. Don’t be a dick and act the same if anyone needs your help.
  • Trying to impress people is probably among the most stupid things you can do. Just be yourself no matter what the setting is and be honest. Everyone who you admire has probably been through very shitty times, the point is they were strong enough to get rid of the shit.
  • Finding a way to be in contact with people in Europe during weekdays while working hard is ridiculously hard.
  • Having obligations like homework while surrounded by awesome people meeting up just next door sucks a lot.
  • Next week I’ll force myself to work harder when I get home, I guess the guys at Walgreens will be happy with my daily expenditure on energy drinks.