E. Sridharan
The metro man
NASA

❣ Chile in a Photography ❣
RMH
noise dept.
taylor price
No title available

#extradirty

Origami Around
Cosimo Galluzzi
$LAYYYTER
occasionally subtle

PR's Tumblrdome

Jar Jar Binks Fan Club

oozey mess
cherry valley forever
official daine visual archive
macklin celebrini has autism
No title available
Game of Thrones Daily
Cookie Run:Kingdom Official!
seen from Singapore
seen from United States

seen from United States

seen from Colombia
seen from Brazil
seen from Colombia

seen from Bangladesh
seen from United States
seen from United States

seen from United States
seen from Austria

seen from Switzerland

seen from Singapore
seen from Ukraine

seen from United States
seen from Singapore

seen from Canada
seen from United Kingdom
seen from Brazil

seen from Pakistan
@mivaas19-blog
E. Sridharan
The metro man
How running a half-marathon helped me?
Lately I was quite guilty of my lack of physical activity in life. Having a desk job almost makes you forget the days when you used to sweat buckets of water and enjoyed the process too. At this stage one more reason that stops you from physically working out is the lack of interest shown by your friends and a mis-match of time with them. So I took the easiest step I could in terms of working out on my own. I signed up for a half-marathon and I didn't think much about the training and other stuff that was involved in it at that time. After I registered; paid the money and stuff, I browsed online to see what it actually takes to run a half marathon. I checked all the training programs and almost all of them were at a 'comfortable 12 week' program or a 'tough 8 week' program ( I used one here ). From the day I signed up, I had like 5 weeks in total. Almost there, the psychology effect started kicking in and the first thought was an innocent one - "I can't do it." I was cursing myself of signing up without checking the training schedules. Now, I come from a caste in in north india which is called 'Baniya'. So baniyas are actually mocked for being penny pinchers and some part of it is actually true. You might want to check some jokes here and an excellent article praising the same quality as well. Anyways the reason I say that is because, one of the reasons I didn't quit then and there was to not let my money go in waste and second was to avoid the guilt feeling of quitting.
The training program had goals for each week, where you have to actually finish a particular distance by end of the week. So it starts at 2 miles and increases 1 by each week (10 for last week). My plan was to increase by 2 each week instead of one. So I trained and as things went, I was able to finish every one of my training milestones and the half marathon too. It was actually tough; I guess even tougher than the actual marathon to finish those milestone every week. Waking up in the morning; finishing the day's run no matter what, took some toll. But the whole thing helped me in more than one way which I have shared below and in hindsight the decision to sign up without checking any training schedule feels right.
THE ADVANTAGE OF FOCUSSED ACTIVITY
Every time you do a run, you realise that running is not taking that much much time as you thought. That is because there is only one task at hand and there is nothing to disturb you. You can't take your calls, messages,talk to someone or someone else to you. You are just running. You get to realise how multitasking is destroying you. How, if you can take that same approach, apply it in your office or in your personal work,you will be much better at completing things.
FINISHING OFF THINGS
When you have a particular distance in mind that you want to run and you get tired at the last mile or last two miles; that is actually your mind talking. Your body is in okay shape to run. Finishing off that last mile by ignoring your mind; again makes you complete things. Controlling your mind, I think is one of the good things to learn, and running is a perfect scenario where you can learn that.
THE DEADLINE EFFECT
Running a marathon is in fact pretty simple in theory. You have a schedule and you just have to run according to it, no matter what. There are no shortcuts, no other ways. If you don't follow that, you are not going to complete it or you may do it in double the average time when organisers wont have any breakfast left for you. That fear makes you follow a schedule like an earnest student. You tend to take things more seriously and you realise how following a schedule in a disciplined manner can help you reach your goals in other areas of life.
SWEATING OFF
A good run makes you sweat and you tend to experience hunger, thirst and the need of cold shower in a good way. Don't want to sound too cliched, but you tend to enjoy the little things more I guess. Also, its a great antidote to remove that guilt feeling of not staying in shape. It may not give a you physique which can bag you the next war hero movie but it does give you stamina.
Running is great and its the most simple thing you can do on your own. Its this basic structure of it, which is so unique and makes you learn lot of things. You should try it. If you are in India; check out this link which has list of marathon happening in 2015 across india.
The almost perfect beach town - Varkala
SIMPLIFYING MAIL
Mail; its a part and parcel of our life and has been with us almost from the time being in one form or the other. If we consider what a mail does in its most crude from; its the communication of information from one person to another. As such with digital mail platforms like twitter, facebook, RSS feed are essentially doing that same job.
But somehow with all these platforms it has become somewhat tedious and time consuming to do a simple thing; read your mail. Of course each platform brings with it, its own style of communicating messages. But there must be some way to bring it all at one place and communicate in such a way that there is less noise from every perspective, so that people can just focus on content.
I had one simple idea around which maybe we can redesign the way people handle their mail -
Every mail has only two important parts which are of interest to user when he is checking his mails -
1. FROM - Who has sent me the mail?
2. MESSAGE. - What does it say?
Think of yourself; when you are checking up on your mail you generally worry the most about these two things; you are not really thinking about its details immediately like who are the rest of people on email, when did it come etc. Maybe you want them, but that tendency is most when you want to spend time on that mail.
Taking this idea we can have two fresh ideas on which mail can be restructured -
Multiple platforms can be united at a central location.
The above logic applies to any mail, be it the tweet, FB post, RSS feed item or an email. So why can't we club them together at a central place and manage.
Simplify the presentation
Since there are only two important things for the user as he is checking the mail, why can't we just show that. Every next set of details or the actions should be presented at the next level of interaction i.e when he opens the mail.
Here's a mockup below showing as to how should a design look like with the above ideas implemented.
The mockup is annotated by points which are important. Lets discuss them one by one.
1. The idea is to present mails from one platform at a time since the purpose and frequency of mails is different from each account.
2. As discussed, we just show only the two most important things, "from" and "message summary". Also an unread mail is separated from a read one by a clear background color.
3. The next set of actions are displayed once a user opens the mail. All the actions (reply,favorite,delete and details) are displayed as buttons which is generally the next intent of user when he opens a mail.
4. The intention here is to redesign the way the time/date of incoming mail. You never really notice the time on every item when you are checking mail but would generally like to know what are my today's mail. Clubbing the mail by day tries to address that.
This is a just high level idea that I have discussed here. Digital mail comes with its own set of complexities especially with the multiple platforms we are trying to support. But working on the objectives of minimalism and the human approach towards reading mail, there is a certain possibility of handling mails in a more wholesome fashion.
Good UX strategy : Cutting down the steps
Lately there has been a lot of importance to minimalistic design which is more or less trying to reduce the noise or everything unnecessary. One other thing that creates major breakthrough in user interaction and creates a whole new market is cutting down on the steps. People love a product which lets them do their thing in as less steps as possible because every step is like a noise which is irritating. Because of this, a product having less steps will score higher in sign ups than a similar product, and believe it or not, even one step makes a difference. Whatsapp did it by removing two steps which before that seemed necessary.
1. The requirement of signing up with credentials. They removed it by using contact number as the identity.
2. A list of friends available in advance rather than the user searching out for his friends.
This strategy made a whole lot of difference to the people signing up for the messenger rather than using 3rd party credential based messengers giving them a huge marketshare in very less time.
There are many other examples where companies have tried to use less steps and still achieve same functionality thereby improving user experience.
1. Companies using sign up with twitter, google, facebook to avoid the registration step.
2. More scrollable based websites rather than click based since clicking is generally considered as one extra step for the people to perform requiring their attention as opposed to scrolling which seems to be more within the flow. e.g https://www.loggly.com/
3. Auto move of focus to next field in forms when user has finished filling in the details. This is generally in payment forms where each field has a fixed length to fill.
Reducing down on steps is surely a good way to get more people using your product, but this doesn't make sure people will come back to your product and keep using it. You have to score comparably good on every other UI and performance front to be able to retain your users. For instance, apart from the ease of sign up, whatsapp had a very smooth user interaction and performance and they never give the user a chance to complain. This is exactly what is the problem with HTML5 apps. Although they have the advantage of one step less by launching directly within browser through a link (as compared to native apps where you have to open and then launch the correct page); performance and functionality wise they just dont seem to match up with native apps.
We will conclude this discussion with a reminder. Cutting down can only help you get those extra customers but you still have to be efficient in every other area to stop losing your users.
When can past be expressed as history?
I just finished reading the book India after gandhi. The book is a comprehensive record of india's struggle after independence or as the book title says after mahatama gandhi. Apart from the facts and the detailed description of incidents described in the book, one short part particularly interested me. The author -- Ramachandra guha; explains his choice of writing the last part of the book as "historically informed journalism" rather than history. He gave a rather interesting explanation of what he thinks as history.
In my experience, to write about events as a historian one also needs a generation distance. That much time must elapse before one can place those events in a pattern, to see them away and apart from the din and clamour of the present. Once roughly three decades have gone by, much more material is at hand; memoirs, biographies and analytical works.
He also writes about, how contemporary history does not allow the same freedom of biased expression
When writing about the very recent past one lacks the primary sources available for earlier periods. Besides, the historian is here writing about times that are close to him as well as his readers. He and they often having strong opionds about the politicians and about the policies of the day.
These two above explanations are very important since history by itself has a very a generic definition. With the personal viewpoint of a subject expert you tend to understand how great works on history are structured and the expectations you should have from them.
Don't leave BROKEN WINDOWs..!!
I read this book - "The pragmatic programmer" sometime back which shared a very insightful idea - "don't leave broken windows". What this meant in the book's context was that if and when you find a bad code; do something to fix it; leave a comment; put all bad code at one place or just fix it. A broken window is like a wellspring of more trash because people dont really care about maintaining the place and have no problem throwing in more litter or shatter it further. The analogy, if you see can actually be applied to any context of life. If you dont tend to take care of small things they generally tend to turn into bigger problems.
Fixing small problems, though needs only a little effort but is probably the hardest thing for many people. Mostly because we are naturally lazy and small things are the last on priority for us. So how do we get out of our laziness and do something which can actually help us here. Looks like there are no new things to learn but following the same old organisational and time management principles in a more structured way. As I read more about this this subject in blogs and books; I could actually find two useful steps which can help us define a strategy.
First is to keep a note down of all small things that are in your mind which you need to take care of. Make sure it stays at one place which you can always refer to. This will help you keep track of things and unburden your mind of unnecessary detail.
Second is to keep yourself reminded of things that you want to fix. I use this simple app - COL Reminder to help me keep a reminder. Maintaining a reminder in order of priority of things that you want to finish will help you give more structure to things.
Following this strategy will be difficult at first in terms of deciding the priority of things and finishing things off. But I think, these things always improve with time as you mind gets more adapted to the schedule and process. The important thing is to be consistent and not break the schedule.
when on SCREEN; do something.!!
As a web developer the most common usecase we tend to have is doing something when an element is actually visible on screen. Some examples are like when the image element is visible then only load it, or when you reach last element on the page then trigger the request for next set.
I could develop a simple utility for that -whenOnScreen using the getBoundingClientRect function that we have as part of W3C standard. Now this function is pretty cool; it will return you an object which has the dimension and the position of the element as if it were absolutely positioned from the window.
But webpages generally have scrollable divs instead of page scroll (more evident now in single page apps). So we have to take care of the case that even if the element is present absolutely from screen, it may be hidden behind the parent container. This plugin handles that by first checking the visibility of the parent and then that of element relative to the parent.
The plugin works well on both mobile and desktop. For both it uses different event to identify scrolling behaviour. Also one can use it both as normal standalone utility and as jquery plugin.
Quora: What’s preventing HTML based apps to take on Native Apps?
Answer by Aseem Agarwal:
Well. There are many valid reasons. Lets get straight to some of them. Performance Native apps score on many things on this front 1.Simply said native apps is a compiled byte code processed and executed by the hardware which result in much faster execution than the interpretation done by browser. 2.Native apps can do a lot of caching and local storage beforehand to run content rich apps for e.g a magazine. On the other hand HTML5 apps; though they support local storage; its still limited to what and how much it can store. See here - Client-Side Storage - HTML5 Rocks For e.g storing a complete file is still is still a far-fetched dream in html5. Graphics Support Native has a lot better support in terms of providing graphics API’s which can be used to a high level of complexity and again utilise the hardware to execute. In comparison to this we have the Canvas in html5 which again has its limitation both in terms of usage and processing abilities. Browser incompatibility - The biggest bane and probably the first thing to get right to reach level of native apps is the incompatibility among browsers to run the same thing in a standard way. Inspite of concentrated efforts on making the web follow a certain set of standards which every browser should follow; there are still some valid inconsistencies which can leave you helpless at any point of time. For instance: There is still no standard css property to have a smooth scrolling across all the browsers. -webkit-overflow-scrolling is now introduced in mobile safari in IOS5 but is not supported all the time in chrome and android browsers.( How much support is there for -webkit-overflow-scrolling:touch ) As a workaround you simply have to go to third party libraries and other hacks for a simple task. Lack of Concentrated effort. This may be a vague point to discuss; but there is a always one thing that always makes the development of IOS and android apps easier which is the availability of so many docs, forums, books towards development on their platform and the effort towards maintaining its popularity. But in case of HTML5 there is no such effort towards making this job easier and make it more widespread.
View Answer on Quora
Server vs client side rendering..
The topic has gained attention with the mobile domain picking pace and fortunately or unfortunately the presence of such a wide variety of mobile devices now available.
First; simply put; client side rendering is executing your javascript to render content on your browser. In server side; all the content is prepared on server using any server side scripting language and javascript has a little or no role to play and thus very little processing by browser.
Now client side rendering has some problems. With different mobile devices; we have an endless number of browsers based on different web browser engines which are different from each other mainly in terms of their performance and the javascript (ecma) standards supported.As a result the way one browser renders a webpage could be different from another browser. There are workarounds and hacks written to get around the disparity between standards but I dont believe if anyone can say with gurantee he has a fix for all of them. In terms of performance there’s nothing much anyone can do since the browsers also take use of the underlying phone configuration to deliver that and thats where you reach a physical boundary. These problems directly lead to inconsistent experience of a webapp across devices and when you see the marketshare of not the latest smartphones around the world the situation becomes alarming.
Server side rendering; minimalises the use of browser by preparing all of the content on server and shipping it to the client. Since the use of browser is minimal the problems posed by it will be minimal. This will directly lead to a more consistent experience on different mobile devices. That is why companies like twitter have switched to server side rendering. This is what twitter says on their blog - “By rendering our page content on the server and deferring all JavaScript execution until well after that content has been rendered, we’ve dropped the time to first Tweet to one-fifth of what it was.” On top of server rendering you can take advantage of it by caching the content to be shipped on server side. Server again has a upper hand here in terms of amount of memory it can handle.
I did a quick demo using nodejs to compare the performance between the two. A simple program below is what i ran in nodejs and client javascript and I printed the time taken by two complete the processing.
//Print user agent in node/client-js var htmlDump = “”; var stTime = new Date().getTime(); for (var i = 0; i < 1000000; i++) { htmlDump += “Time is : ” + (new Date().getTime()) + “<br>”; } //Print end time in node/client-js
The results were what I expected but the numbers were a bit alarming.
Summarising here
1.Only in desktop chrome browser both of them were at par with average time close to ~450ms.
2.In android advanced s - gingerbread; android default browser client side rendering - average time - ~17000 ms server side rendering - average time - ~500 ms
3. server side rendering took almost the same time in every device within a range of 400 - 550 ms.
The complete results for both are here - server-side; client-side.
Server side rendering definitely looks a way out from the problems posed by multiple browsers. But its a one step back towards developing rich single page apps with think client side where every interaction is dynamic.
Why questioning the status quo is important.?
Everyone needs a team to win. The expertise of the members and their urge to see their team winning is what differentiates one team from another. In case of a company; the case of winning is similar to acquiring and completing a project. That requires from team members to have an excellent domain expertise and a disciplined approach. It sets the benchmark and gives the company the credibility and reputation for producing quality work.
But there is something else which helps an organisation to grow and innovate consistently. Its the ability of the employees to challenge the status quo and bring their ideas forward. Its never possible that a single person can make everything correct or can churn out fresh ideas every day. Everyone has to realise that with easy access to information an idea can come from anywhere and they might just have to structure the process to take advantage of it.
Now; I have always believed that getting an idea is step one and reaching to the level where can you speak about it involves another two steps. First you have to do your own research, get your numbers and facts right to validate what you are thinking. You need to know the subject inside out and sometimes also prepare about what are you going to be questioned about. As charlie munger says - "I never allow myself to have an opinion on anything that I don’t know the other side’s argument better than they do."
Second is two know your audience and sometimes tweak your presentation in a way that audience relates to it. If your senior doesn’t really have an knowledge or an interest in a field maybe you’ll have to list out things that you find common between his interest and your idea so that you have his attention.
That being said, its not just the employee playing the game here. It has to be a two way street and the company needs to look for ways to give the right environment where this thing is facilitated. Direct and indirect ways both should help. One great way of doing this is to allow employees to take chances and risks so that they can experiment with something and create something greatly valuable to the company. Vinod khosla shares this thought as well - "Most people reduce risk to the point that what you’re doing is so risk-less, when you succeed, what you’re doing is inconsequential."
Panoramic view - Anthargange
Get more of out of your brain. "Your brain at work"
I just finished reading the book; Your brain at work; David Rock (okay not 'just'; i finished it a month back).The book is just amazing in terms of the way it has explained the relation between how our behaviour maps out to different areas of brain and ways we can control that. There were a lot and I have to admit it might be very difficult to follow all of them. But my suggestion would be to just read them through, always have them at the back of your mind and try to find its real importance when you are experiencing different situations. There were some for which I could readily find the usefulness in my daily life. I'll try to explain them here in brief.
1. Prioritise prioritising
When you are planning to achieve a lot in a day; you should first prioritise those things. Things you want to do first or you want to do last or just dont want to do. They should be listed out so that your mind is free of keeping track of them and you are more sure of what you want to do.
2. Relate new ideas to existing ones
Your find yourself looking to explain or learn something completely new. How do you do it ?. Relate it to something existing that people already have a good knowledge about. That way, brain picks up the data faster.
3. Block out distractions
Definitely one of the most useful ideas in the book. When you are doing some mind intensive work; its important you just block out distractions like your email, FB, or twitter notification. The book says that it takes so much time to get your attention back to the work after the distraction that its just not worth it.
4. Control your focus.
A right amount of adrenaline is required for your brain to work at its best. Things like your favorite music, a joke etc increases your arousal or adrenaline level.So the next time you are feeling a little bored or just not feel like working; you know what to do.
5. Need a "eureka", do something different.
You know those times when you are completely stuck at something and you can't seem to just get a solution. Well, do something completely different; prepare a tea, talk to your family etc. Brain needs some space to bring fresh ideas in and have that "Eureka" moment.
6. Assign label to emotions.
Just give words to your emotions. Things happen which increase your arousal level too much up or down and you need to control it down. Giving words to your emotions like anger (sh**), happy, sad actually give you that control over your feelings.
7. Make people and yourself feel certain.
Brain feels a threat whenever we are unsure or dont know something. You can control that. A simple example is if you are talking to someone stranger; make sure you make him feel certain by just telling this simple thing - Iam only going to take 2 mins of your time. He will feel certain that this thing will be over in 2 mins.
8. Real change requires repetition
Every new thing you do requires new brain circuits. If you do it only once the circuitry is lost but if you keep doing it again and again it becomes like a permanent place in your brain which is your new habit.
CSS Hardware acceleration - a brief history.
Hardware acceleration in browsers is actually a concept made possible by two technologies; Graphics processing unit(GPU) in computing machines(computers, mobile devices) and new version of browsers which can interact with GPU. If we see the wikipedia definition of GPU it says - “a specialised electronic circuit designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display”. In simple words it basically is used to optimise and serve better performance when we have image or videos displaying. Better the GPU; better the performance. An example of GPU config; my macbook has “Intel HD Graphics 4000 512 MB”.
Now, modern browsers have been able to use the GPU (first browser to use is IE9 in 2010) to show rich media on the webpage. Rich media here refers to things like images, videos, css animations and 3D graphics. Earlier, only applications like desktop games, video players were able to use them and browsers relied on CPU to do all the rich media processing.
The way browsers do it is by offloading all the rich media layers to the GPU which takes on the work of moving and presenting them. A very good blog explains how chrome does it - “Chrome uses textures(a bitmap image that’s moved from main memory i.e. RAM to video memory i.e. VRAM, on your GPU) to get chunks of web page content onto the GPU. Textures can be cheaply mapped to different positions and transformations by applying them to a really simple rectangular mesh.” There’s a lot of technical detail to it which google has shared here . For now, understanding that rich media presentation happens through GPU in modern browsers should be enough. Also there are limits how a web application can use it,since the GPU memory is limited and if you overuse it by having a lot of rich media it does cause crashes.
5 blog posts to change your perception towards life..!!
Blogging has changed the approach of traditional publishing giving every person the tool to pen down his thoughts and make an impact.
Many people have wonderful blogs and for me its always enlightening to read about their wisdom, life experiences or their personal philosophy. When I tried to chose the best 5 the obvious choice was to pick the ones which I was able to relate most in my life.
Five reasons why you should find what you love and double-down on it - Joshua Porter
Here joshua porter emphasises the importance of doing what you love and more importantly to always have a plan even if you are stuck at something. I like the way he gives the practical advice of always having a plan to move towards something good and trying to make it a reality. I read this blog during first year of my job and the advice, although seems a bit cliche now, seemed to give me just the right motivation to strive towards something in my career which interested me.
How to be happy at work - Geoffrey James
This is a must read blog for everyone.The writer discusses a simple rule which convincingly proves the fact that its always in your head to be happy or unhappy. Although convincing its so simple that you tend to easily forget it. You should keep coming back to it when your life takes a toll or you 'think' it does.
As an engineer, your job is to build things that solve problems - Ryan Patterson
A post by a facebook employee who shares his words of wisdom on what exactly your job as an engineer is.?. He specifically discusses it in the context of a software engineer and shares how can you take yourself and the organisation to the next level. Reading it just makes you fall in love with the job of a software engineer.
42 Rules to Lead by from the Man Who Defined Google’s Product Strategy - Jonathan Rosenberg This one is from the SVP of products at google who shares 42 rules every leader should live by which are as practical as you can get but never ethically wrong. The fact that you can always come back to them for help for almost every decision that you make in your professional life is fascinating.
Lessons on Success and Deliberate Practice from Mozart, Picasso, and Kobe Bryant - James Clear
This might be the most influential of all the blogs for me. It simply defines the most basic path towards achieving excellence in your life and as you read on, it makes so much sense. It gives you a new outlook towards how can you achieve things that you wanted and make you totally busy.:P.
Orientation change event in mobile browsers.
Lately I have been trying to get the orientation change event correctly for the many devices and their browsers we test our html5 websites against. The browsers we primarily test against are chrome and android native browser across S3, nexus 7in, samsung tab 10 in and safari across ipad and iphone.
So after much hit and trial and analysis I could reach a point where I can say it should work across all of these. Here is the code to that.
1.var isIOS = /safari/g.test(navigator.userAgent.toLowerCase()); 2.var ev = isIOS ? 'orientationchange':'resize'; 3.var diff = (window.innerWidth-window.innerHeight); 4. $(window).bind(ev,function(){ 5. setTimeout(function(){ 6. if(diff*(window.innerWidth-window.innerHeight)<0){ 7. orientationChanged(); 8. },500); 9.});
Line 2 takes up the resize event for any non-safari browsers since other browsers in other devices take up resize event more consistently than orientation change event.http://www.quirksmode.org/m/table.html
Line 5 performs the check in a timeout since what I found is that some of the android native browsers dont take up the new dimensions immediately.
Line 6 For the orientation change to take place the product of the differences of old and new height and width should be negative. This accounts for the use case where the resize event is called for cases like keyboard opening up and browser is minimize and maximized.
Line 7 is where you can comfortably call your event where you can do whatever you want to make your site look good in new orientaiton.
How practice and not passion can lead you to success.?
Last week I was exposed to two brilliant ideas which seemed to compliment each other. First it was a talk at google by Cal Newport discussing his book - "So good they can't ignore you". He tried to challenge the idea which has become a mantra for success in recent years - "Follow your passion." The approach he suggested was that most successful people don't really follow this idea in their life. Instead the field that they seem to excel in is more of an opportunity that comes in their way. They try to be so good in that field so that they can shape their life the way they would want to live it. In this process they tend to passionately follow and work in their field. I still have to be completely convinced with this ideology but when you think a bit deep about this idea; it really makes sense both in terms of its logical validity and when you try to objectively judge it. There is a very good example validating this. Elon musk founder of three companies; Paypal, SpaceX &Tesla never really founded them out of passion. He founded paypal because that would have enabled him both in terms of finance and experience to pursue a life where he can invest in technologies that would solve the world's most pressing problems.
The second idea that I read was a blog by James clear which compliments the first one by writing about the importance of deliberate practice and how many successful people use it to be amazingly great in a field. He suggested that succesful people achieve brilliance and an expertise in a domain by following a schedule day by day and not really breaking the chain. The schedule here is a small goal that you want to achieve in one day which helps you improve in that field by eliminating errors and offering insights. Lets say you want to be a good writer; so in this case you have a small goal of writing a blog every two days and then getting feedback from people. You will have to be ruthlessly objective on yourself and try to follow this schedule day in day out. With being objective what I mean is, you will have to treat yourself from a third person perspective and judge yourself accordingly. Also you should just aim on finishing the task and not worry or aim for the hours spent. "I worked for so and so hours today" is a lame statement. It is the output that is important not the hours put in.
Both of these ideas offer a fresh perspective of leading a life. Ofcourse it is challenging, but when you try to objectively measure them in terms of their benefits to our future they tend to provide the motivation over other superficial approaches.