Other Cool

Thoughts on Thinking better

i have been thinking about growing tendency to be exploring only negative aspects (edited)

one thing that i have noticed has made a huge difference is to stay alert of me me me mindset

great ideas come from understanding problems really well and rethinking perspective

but if mind is focused on oneself, then the problems get reduced to what your immediate problems are and immediate problems are often with lowest perspective

so reduction in wisdom not only comes through lack of diversity in problems and their total numbers but also lack of perspective. double hit (edited)

reflecting on last year. I had tried to come up with idea with what i know about world, fully aware i know little. I’ve always thought about what “I” can do or person in my place can do or how world should be. This approach has resulted in few ideas, but ultimately it produce lot of made up ideas for problems probably not so significant or problems that need to be validated to even have some faith. This is still better from some years ago, where i used to have lot of faith in my made up ideas, as faith was the only thing keeping idea alive, especially good feeling idea was very rare to come due to even more severe lack of understanding of problems in software world. (edited)

but working at  current company problems their client are facing seems so real. Problems the clients will pay for. There is no need to think of 10 reasons this might be real problem or 10 reasons it is the best solution. The reality is there, simple SaaS software is needed, needed so much.

Conclusion, is that it’d be immensely helpful if i explore problems people have more than problems i have. Find big problems. (note2self: how to find big problems?) Then solve them. Just as paulgraham said be startup to get ideas about startup.

to understand what i meant, think of this analogy: there is fire, and you burn your hand, now all you think is omg i burnt my hand. it’s gonna leave a scar, i shouldn’t have done that, my hand needs treatment, why am i stuck in here, what hospital can i go now…i hope my hands heals fast… this is bs, i cant believe this happened, i am gonna tell how much it’s that person fault, i should have listened to, i wont be here if it wasn’t for her. etc…. all about i, my, me. What if perspective is changed a little bit:

how did the fire start.

what else is about to happen.

Where is exit.

this thinking is trying to understand world from bird eye perspective beyond you.

and probably will save your LIFE and of others

Other Cool

Startup is like multivariable calculus

There are often of many solutions, some better than other.

Startup’s goal is to find one of the solutions. And hope is to find the best one.

If you look at startup it’s not fire-aim-load, it’s aim-load-fire. Not even load-aim-fire.

Startup doesn’t know

  • Who its customers are.
  • What its product should be like.

Startup is looking for

minimum product

repeatable segment

growth pro segment

repeatable product

you dont know who you should be selling, what you should be selling, and if it will continue to sell.

Other Cool

MicroService

What is it?

These are small modules divided on the principle of performing a single business task or single class of tasks. The main purpose of such division is the possibility to change a particular microservice without affecting any of the components connected to it. The business logic of the application is split up into separate parts and each of them is a small application with a single responsibility. The number of such applications is unlimited and they communicate with each other by using API based, for example, on HTTP.

Pros

We get rid of high code coupling by splitting the app into microservices.

If one of the microservices fails it is quite possible that the most part of the application will still be workable and this partial system crash won’t result in serious consequences for users. Restoring the operability of one microservice takes much less time than restoring and locating errors in a monolithic application.

Easy scaling.

It can be done by locating services on different servers. If an application spans several microservices with moderate computational requirements, they can reside on one host. For more demanding microservices, it is better to opt for a more powerful host. Microservices which perform non-blocking tasks can be paralleled.

Different services can be developed by separate development teams.

It is especially interesting for remote development of an application, when various microservices are developed by different teams.

Each microservice can use any technology which is applicable within the scope of the given task.

For example, in web applications developers can use Ruby (Sinatra) for some microservices and node.js for others because they are isolated from each other and the technology used for their implementation won’t affect the behavior of the application on the whole.

 

 

Cons

First negatives. When you create microservices, you’re adding inherent complexity in your code. You’re adding overhead. You’re making it harder to replicate the environment (eg for developers). You’re making debugging intermittent problems harder.

Let me illustrate a real downside. Consider hypothetically the case where you have 100 microservices called while generating a page, each of which does the right thing 99.9% of the time. But 0.05% of the time they produce wrong results. And 0.05% of the time there is a slow connection request where, say, a TCP/IP timeout is needed to connect and that takes 5 seconds. About 90.5% of the time your request works perfectly. But around 5% of the time you have wrong results and about 5% of time your page is slow. And every non-reproducible failure has a different cause.

Unless you put a lot of thought around tooling for monitoring, reproducing, and so on, this is going to turn into a mess. Particularly when one microservice calls another that calls another a few layers deep. And once you have problems, it will only get worse over time.

OK, this sounds like a nightmare (and more than one company has created huge problems for themselves by going down this path). Success is only possible you are clearly aware of the potential downside and consistently work to address it.

So what about that monolithic approach?

It turns out that a monolithic application is just as easy to modularize as microservices. And a function call is both cheaper and more reliable in practice than an RPC call. So you can develop the same thing except that it is more reliable, runs faster, and involves less code.

OK, then why do companies go to the microservices approach?

The answer is because as you scale, there is a limit to what you can do with a monolithic application. After so many users, so many requests, and so on, you reach a point where databases do not scale, webservers can’t keep your code in memory, and so on. Furthermore microservice approaches allow for independent and incremental upgrades of your application. Therefore a microservice architecture is a solution to scaling your application.

 

 

Sources

https://www.quora.com/What-is-Microservices-Architecture

https://www.quora.com/What-are-some-disadvantages-of-a-microservice-architecture

http://martinfowler.com/articles/microservices.html

http://programmers.stackexchange.com/questions/264824/decentralized-data-management-encapsulating-databases-into-microservices

Other Cool

One tip for discovering problems and thinking ideas

To me there are very few good advices on how to think of good ideas, especially for starting a business or startup. My top favorite advices has been

  • follow your curiosity not passion.
  • solve problems you have thus you solve problems people similar to you, it’s somewhat validated since you are having it.
  • look at macro trends and choose ideas from that category.
  • solve problem in field you have been exposed to, (especially true for b2b).
  • be in the business, interaction with customer teaches a lot.

I think difficulty in coming up with good ideas is simply the lack of information. Bird eye view is needed, but we are not even on the ground. If we knew how the world works, we would know how many types of businesses are being ran, coming into existence and which will clearly show us where is world headed, where it’s lacking.

But I don’t know of a way to find such a method that would allow access to such information reliably and thoroughly. At best you get incomplete glimpses and base hypothesis on that. But I recently had success with one strategy to compensate for that a bit.

Think at a Grand Scale

Whenever trying to come up with a possible problem for unknown industry, business, market segment. Think of them not as just 1, but try to imagine 25000 of them and see how your value offering help and what else could be of help even more. There are things that stand out immediately on grand scale of even hypothetical customers, that you might have hard time noticing at 1 customer at a time.

People usually know more than they think they do. So even without much experience there is a chance you will discover something by reflecting on bigger picture, and if turns out that’s not the case, you will still learn deeper wisdom about things, guaranteed.

Other Cool

Reflection Of Today

Wisdom Today:

1. The Founder Dev is different from The expert dev, founder dev needs to be good enough and open minded.

2. Solitude leads to reflection then wisdom

3. Experince is the only lasting wisdom, scattered advices lead to not much.

4. Books used to be full collection of wisdom, revised, summarized, and necter of wisdom. These spam emails, read me quick articles have transformed internet to garbage.

Other Cool

Notes from Mit Launch x

Entrepreneurship:- Entrepreneurship is the pursuit of opportunity beyond resources controlled.

No entrepreneur has ever all the resources to start whatever he wants.

Perfection is the enemy of done. Waiting to get things be all straight aligned is going to result in giving up.

Follow 80/20 rule. Put efforts into 20% of the stuff that results in 80% of the results.

Things that can affect..

  1. Mindset
  2. Skills
  3. Knowledge
  4. Moral Support

 

Entrepreneurship is the pursuit of opportunity beyond resources controlled

 

  • Pursuit: the attitudes, beliefs, and actions of an individual entrepreneur – passion, drive, resiliency, focus, a sense of urgency, discipline, and balance
  • Opportunity: the type of venture – an innovative offering, new business model, better, cheaper, or more efficient offering, or targeting new customers
  • Beyond resources controlled: the external constraints on the entrepreneur – manage risk to gain access to resources and leverage what you DO have.

 

Hurdles Recap
Don’t let these hurdles stand in your way:

sketching of a student looking uncertain among taller adults
    • Experience/Credibility: high school students are at an ideal age with just enough experience, but not so much that to be limited to the status quo. You can imagine and build the way the world COULD work.
    • Knowledge of the Process: there is an integrated, comprehensive, and proven process called Disciplined Entrepreneurship that we will use to give you a solid foundation.
    • Funding: this is a later stage, not an early one. Prove demand on your own first, since investors would require too much of your company when it is just in idea stage.
    • Mindset: it’s practically impossible to have the entire perfect mindset at the beginning, but starting can help you grow and develop.
sketching of a student looking confident
  • Innovation/Idea: most ideas have been thought of before, and all will have competition. Success comes down to executing on your idea well and finding the right customers where you can solve their needs better.
  • Team: you can do a lot on your own, plus find teammates to complement your skills and personality through several great forums.
  • Time: starting a company does take time, and this just comes down to managing your time well. Focus on the things that matter most, and remember that perfect is the enemy of done.

Will you let these things stand in your way, or will you be one of the brave ones, an entrepreneur?

 

 

 

pillars 

At The Martin Trust Center for MIT Entrepreneurship, we’ve found that there’s a process to becoming a successful entrepreneur, requiring students first to be inspired, learn, then to fully engage and act, and have a support system. This involves four components:

illustration of heart

Heart – it starts with heart – having the inspiration, passion, and mindset. Being an entrepreneur requires confidence, resiliency, work ethic, and adaptability. While it’s practically impossible to have the perfect mindset at the outset of starting a new venture, being in an environment that allows you to have idols can provide much needed inspiration and the reminder of how to engage with your passions.

illustration of brains to signify head

Head – next is learning the knowledge. This includes how to identify opportunities, business skills, and how to sell and pitch. MIT has an integrated, comprehensive, and proven process to crank out successful companies called the Disciplined Entrepreneurship process. Some things cannot be learned just by doing, and this process breaks it down and makes it manageable.

illustration of brains to signify head

Hands – once inspired and passionate, and equipped with the knowledge, the next piece is about getting out there and DOING STUFF. It’s not enough to write a fancy business plan, but important to realize the value of interviewing customers, developing a prototype, pounding the pavement to sell to customers, and pitching your company.

illustration of brains to signify headHome – finally, having the people around you to be able to pull it off. These people include co-founders, peers, mentors, instructors – all the people for feedback, potential customers, and moral support.

A school ecosystem can be especially valuable in providing all of these components – community, courses, inspiration, plus the resources to make it happen.

Heartinspiration, passion, and mindset

illustration of heart
  • Inspiration – think of role models who you want to emulate in different areas of your company. These can be entrepreneurs within the same industry, experts who have similar skills to the ones you want to have, or inspirational mentors and idols in your daily life.
  • Passion – starting a company is difficult, so it’s important to work on something that you’ll be motivated to commit time and effort, especially through the inevitable ups and downs of a startup. This can mean being passionate about the industry, or being passionate about an underlying cause, solving problems, developing your skills or leadership, or any other range of things. You will have to tap into passion to get through inevitable challenges.
  • Mindset – there is a balance of confidence with humility, adaptability with decisiveness, work ethic with time management. There’s no magical formula or roadmap to building these things in perfect harmony to be an entrepreneur, though recognize at the outset that there will need to be a balance, and that this often means getting outside input.
Headlearning the knowledge and components

illustration of brains to signify head
  • Opportunity Identification – first time entrepreneurs often overestimate the value of the idea. It is important to have an idea you are excited to work on, since success will come down to executing well, and adapting to market needs. The ability to identify opportunities will be important, though, since there will be a need to focus on the top opportunities of customers, features to meet the needs of those customers, marketing channels, etc. Entrepreneurs start to see things in a new way – seeing how things can be done better and more efficiently. Harness this new power as you build it!
  • Business Skills – think of it this way: you would want some coaching in how to swim before and while jumping into the deep end of a pool. There is a lot that can be learned just by trying, though without some instruction, you’re practically sure to sink. Combining the knowledge while applying it in the field can be powerful. Plus, MIT has an integrated, comprehensive, and proven process to crank out successful companies called the Disciplined Entrepreneurship process. The book breaks it down into 24 steps to starting a successful company, which are categorized into six themes. We’ll touch on the first three themes in this course, diving into some of the concepts of the steps, with a great next step past this course being to take the Disciplined Entrepreneurship online courses. More on this at the end of the course.
  • Selling and Pitching – learning how to communicate effectively is another important piece of the puzzle. Many first time entrepreneurs assume that if they have a great product, people will be banging down the door to reach them. Regardless of how great the product is, though, entrepreneurs need to have an in depth knowledge of the customer, know how to reach them, and be effective at selling and pitching. We’ll cover this in the last section of this course.

Handsget out there and DO STUFF 

illustration of brains to signify head

 

  • Interviewing Customers – it starts with getting feedback from potential customers to validate the need. Many first time entrepreneurs are afraid of sharing their idea for fear of it being stolen, though this fear is misplaced. These conversations will only make the idea better – think of it as getting free consultants for your company! And it would be extremely rare for anyone you speak with to have the skills, experience, opportunity, and drive to want to pursue the exact opportunity you might share. It’s a tiny, tiny risk worth taking!
  • Prototyping – then, develop a simple prototype to prove the concept and customer behavior. Make sure that it is focusing just on the top customer needs and not over complicating things! This is especially where having the facilities of your school can be valuable.
  • Selling and Pitching – get out there and pound the pavement. This can even start to happen before you have a fully functioning product or offering to sell – start drumming up interest and pre-sales!

 

 

Homehaving the community and people around you to be able to pull it off 

illustration of home
  • Co-founders – many first time entrepreneurs think they have to take it all on themselves and are intimidated by having gaps in their knowledge or skills, though these can often be filled through finding co-founders who share the same vision.
  • Mentors – find experts within entrepreneurship and your industry who you can call on with questions, both for your company and as an entrepreneur. Schools will often have mentorship programs set up to help facilitate this.
  • Instructors – leverage instructors of your classes, any TA’s, and other resources to further build your community of advisors for yourself and your company.

Ultimately, you want to have a network of people for feedback, potential customers, and moral support throughout the process. This takes time to develop, and requires some give and take to each relationship.

Other Cool

Some features of ES6…

While there are many features that are coming out in ES6 and ES7. There are few ones that are pretty easy to wrap your head around.

Let Operator
Using let operator instead of var operator you can define variable whose scope is defined inside any block scope, any curly brackets.

function a() {

  for (var i =0; i < 10; i++) {
    var b = i+1;
    let c = i;
  }
  console.log(b); //will have a value
  console.log(c); //undefined error
}

One of the limits are that let variables can’t be redefined.

let a = 3;
let a = 5; //wrong.. error.

Const

const is like const in any other programming languages, it’s used to defined constants, variables which are defined and assigned once can’t be redefined or reassigned.

In ES6, you have to assign value to const, whenever you declare it.
const is also block scoped, just like let. var is function scoped.

const PI = 3.14;
PI = 3.15; // gives error