Skip navigation.

Blog

Skip the blog side panel.

On 23rd of April 2015, Mihai Șucan passed away due to metastatic cancer caused by RDEB.

My name is Mihai and I work on the Firefox developer tools. When it comes to web development, I like both server-side and client-side work. I am mainly interested in web browsers, web standards and related technologies.

Touched

Articol disponibil și în limba română aici.

Hello everyone!

This is most likely my last article here, and I apologize for the length and not so much of a fun reading, it is not going to be about my usual technical subjects. I am also going to tag Planet Mozilla for reasons that will become obvious here.

This is hard to write, but here we go: I have recessive dystrophic epidermolysis bullosa (RDEB) which means I have had a fragile skin since birth. This had an important impact that I will not detail here, you can read everything about it on dedicated websites.

As I mentioned in my previous article the cancer metastasis is going to most likely end my journey here - unless I am going to live through yet another miracle in my life.

I have never written publicly about my situation, which is also shared by Marius, because we are both proud of what we do, we do not want people to feel pity or anything like that. We want you and others to know us by our work, our achievements, and such. People easily get emotional and too supportive once they know the situation. Their actions never made us feel comfortable.

What changed? Having reached a life prognosis of several weeks or months I feel that trying to keep this proudness is not going to help me achieve one of the goals I still have.

One of my current goals is to raise awareness of EB and in particular the ongoing EB research, which is very promising. I am fully convinced that children born with EB will no longer have to go through the same hardships as Marius and I did.

The running theme of this article is how I was touched by the people I met. How you have all made my life much better, and ultimately how you can also make a positive difference for others.

I will dedicate the rest of this article to making a case for donations, why they are important for you and others. I am going to put things in my context, otherwise I feel like leaving matters unexplained will not make a strong enough case for my goal, my wish for others.

This is where you, the Mozilla community, and anyone who listens come in. You can help others get treatments sooner than later by supporting EB research.

In the 27 years of my life, I have met a few people who made a huge impact on my life, in different ways. I will start with the charities that have donated a lot of dressings to us. With EB patients wound care is an integral part of daily life, and the special dressings we received were essential to making wound care much easier and safer. From these charities I have to name Debra UK and an amazing person, Agnes Beveridge. Thank you Agnes. Since its beginnings Mini Debra from Romania has also been very helpful.

The people I made friends with and their impact on me are very important. A chemist, engineer, who has the spark of a geek. As an older man figure, he was influential. We played lots of chess games and we had fun. Thank you Dan for supporting our geeky nature in the early days and staying a friend forever.

Around 1999 when Marius and I first went online, one of the goals we had was e-learning. In the tech age of those days e-learning was a lofty concept. Little did we care or know, so we contacted a professor from a Romanian University, as easy as writing an email to a friend, even more mundane. :-) We started from that silly email to what it became today: we made a friend and found a mentor of online conduct and education. Thank you Prof. Mihai Jalobeanu.

The third person who I want to mention here is a cousin who grew up to become a Catholic priest. As a student, he spent many summer vacations with us, returning from Rome, Italy every year. We learned so many things from him, about culture, philosophy, history, religions, faith and many more. We played a lot of chess as well. His influence cannot be quantified. Thank you Simon.

Much respect and appreciation to Professor loan Dzițac who coordinated my bachelor's degree and master's thesis. He is one of the professors who make the Romanian academia better every day, together with a few others like Prof. Jalobeanu.

Before I became a Mozillian I was an Opera browser user, and as an aspiring Web developer I became involved with beta testing pre-releases of their browser. This was during the highschool years and slightly after, starting with 2006. Those years and the influence of the Opera team I met online and the other enthusiasts have shaped my skills and interests. I became more interested in the open Web and standards. Thanks to everyone at Opera who were really great people. Your support for the open Web was important for me.

Proud to be a Mozillian

No, not because of the company, but the people who make Mozilla. It is an honor to have such colleagues.

My latest experiences are those with the Mozilla team. I was lucky to join the Firefox developer tools team in 2010 when the team just formed. I was quite proud, hehe. :-)

In 2012, after working with the team remotely, I finally got the courage to be part of the regular team meetings in various Mozilla offices around the world. The first meeting for me was in London.

When I arrived in London, March 2012, I felt like dreams can and do come true. It was seemingly impossible for me to do that. To work for a great company like Mozilla, to meet some of the makers of the Web, to travel to fancy places, not hospitals, not tourism, but a work meeting, and no pity. I felt proud, but I also felt the burden of the amount of work and help others have put into making this happen. Mozilla on one side and my family with their tireless support. I did things to get to this "achievement", but they could not have happened without the endless help from others, their love. With all that greatness, there was also the disappointment with the amount of work I was giving others, just to "get my way".

It feels weird and uncomfortable that my fight for life, for living through the experiences I wanted, to work and travel, really means that others get more work to do for me. My push forward gives others work and I need a lot of help. The concept of burden quickly comes to mind, but then should I give up? I almost always chose to not give up. For me saying no to things I wanted meant giving up on life bit by bit. Whenever I had to decide whether I go to a developer tools team meeting I had this dilemma. Go and get what I want or let it all be?

I remember how nice it was to meet everyone, the first dinner, with my colleagues and Johnathan Nightingale. People who you remember forever. I was impressed with how accepting people were. I recall meeting Chris Lord (gecko graphics layer work for Android at that time, iirc) - we had a natural conversation without any awkwardness. Back home I was used to people asking what is wrong with me. I appreciated the respect and professionalism. My disabilities did not matter in these contexts.

I remember with pleasure how mom learned word by word things to ask for in English, in these meetings, at dinners or various places where she was with me and my colleagues. Mom was asking for butter, spoons and other things in Mountain View offices, and so on. :-)

One evening in the first week with the team: we went to a nice restaurant with the team, for dinner. Once done, I went with mom and Rob (my manager at the time) in a cab. Once I went up the ramp, the wheelchair tipped off the back; in a second I could've been seriously injured. Rob and mom grabbed the chair, but the driver grabbed my hand down the elbow. That caused, obviously, a big wound underneath the clothing. Nobody saw that, mom estimated it, I did not scream or anything like that. Still, everyone saw, including other colleagues who were around, how fragile these simple moments are for me. It gave everyone a "good scare". I felt relieved nothing worse had occurred. That silly wound did not matter to me. I was more than happy to be there, things like that happen at home as well. It is all about enjoying life, irrespective of such nuisance.

Another story is again with Rob as my manager at the time, second meeting in London, autumn 2012. Having dinner I failed in epic ways to eat due to dysphagia. After half an hour of nonstop coughing at the table I gave up and left with mom back to the hotel room. My face was all red, I was sweating, etc. This was quite embarrassing but "normal" back home, yet it was disturbing to others seeing it. Rob was touched by the situation and he also went back to his room. Mom was in tears, obviously. I arrived back in my room and had an online chat with Rob.

In London again, I do not forget eating milk with some kind of dough mixed by a colleague, Heather. I am sure it was not much of a big deal for her to help me with that. Yet, I appreciated her help and kindness.

Another big decision was for me to go to a Mozilla team meeting in Sunnyvale, California, in spring 2013. That was quite a task. As usual, Mozilla was very helpful and supportive. At the destination, Alex, my older brother, was also ready with his support.

Once I was in Sunnyvale I felt again that dreams do come true. Me in Silicon Valley, in California, seeing all the tech companies there. Felt epic. Mom was happy as well. I felt that from my room back home where I went through so much hard time, work and study, I was able to go beyond that - there was a really good outcome, finally.

In Sunnyvale my current manager, Joe, helped me get inside a restaurant by carrying my chair, together with Anton - another colleague. I grabbed tightly to one of their arms, not because of the fear of wounds, but the potential embarrassment that a small wound would cause. As previous experiences tell me, in a split second, any simple thing can turn out quite bad. And... when I am with others, I can see they are not so much aware of the situation they are in control of. I just did my part, hold strong! :-)

Another story of Mozillians being awesome: we went to a dinner and I returned only to see some silly parts of the power wheelchair fell off. This was still in Sunnyvale, and this time Dave (one of my previous managers) together with Anton have helped me again. They spent half an hour or so mounting back that silly wheelchair part. Lots of sweat went into it. They did not give up and I appreciated it. I was speechless.

I will never forget how pleasant it was to have the technical discussions, to watch the talks and demos of my colleagues, and have the informal chats during dinners and such. Talking to Jim, Paul, Mik, Eddy and more of them.

Much respect and appreciation for the whole Firefox developer tools team in Paris, August 2013, where they all applauded Cecilia during a dinner in a fancy restaurant. As a nurse and cousin she was there to be my assistant at that time (she went with me instead of mom). Thank you Mozilla for your beautiful recognition of her efforts and help. That was a very touching moment for me. Of course, thank you Cecilia as well.

And I did not forget the birthday cake I got in Paris, end of August 2013. :-) Mozilla ftw!

In 2013 Marius had his cancer tumor and foot amputated. Several months of problems and distress for the whole family. Around that time one of our German friends, from Marius's circle of friends, fought cancer as well. Philipp Althoff passed away that year and it felt quite sad to see how one can live another day and someone else does not. Why? I mention Philipp here to remember him, his work and spirit. Thank you Philipp for being a great friend.

Lots of thanks to the German friends that Marius met online many years ago, Michael Auerbach, Dennis Schubert, Nina Markiewicz, Jan Frischmuth, Boris Eissrich and the rest of the bunch. Their support is not forgotten.

Around the same time I was reading the blog articles written by Eric Meyer known in the Web technology community, about his daughter's fight with cancer, Rebecca. Very touching and made me teaful. I just want to publicly thank Eric for his strength and courage to write about such a hard topic. Inspiring. This article I am writing here would not have happened without his touching words. (I do not know Eric personally.)

I would also like to mention fellows from the Web technology community who are fighting very hard for their lives and they do it in their best possible ways: Molly E. Holzschlag and Gervase Markham. Their stories and strength are inspiring as well. Best of luck to you both and lots of courage. Thanks for your great work. Please support Molly with a donation.

Last year (2014) I went to the St Thomas’ hospital in London. I did not know what to expect from the team of doctors. I did not expect miracles or perfection. On the contrary, the main doctor I was in contact with has specifically been honest with me about my prognosis, ever since August. There was no cure from the start, but I went there to try the best possible ways to fight the cancer and dysphagia.

Overall, the months I spent there do not feel like a hospital stay. It was months of experiences with people. I met people who are different, special and loving. The team of doctors and nurses was so much better than my previous experiences. There I met new people from Mozilla as well, and made really good friends. Catherine and Jess, you are angels, in a lack of better words. Many of my colleagues visited me in the hospital, and my manager visited regularly. Thank you all very much.

Mozilla was amazing in the given situation. There is no way for me to thank them for their support. I had hoped to do so with more work, to get back into the devtools projects and help as much as I could.

All these stories are about people who make a difference, with a small or big gesture. Every meeting with my colleagues felt humbling in a good way. The time where others help you out of their way, and you do not know how to thank them and you cannot give back. Makes you think.

All the medical procedures that I went through in London are insignificant compared to the experience of getting to know those people.

I mentioned people who I thank for various reasons, but there are more. Friends and relatives back home who are helpful, supportive and kind. People who have hosted my early websites and others who I worked with. I do not know if trying to list their names has any point here, and I will most likely forget someone important. Over the past weeks I have been working on sending them my gratitude, individually, face to face when possible, or online.

Some conclusions

All of the experiences I had bring me to some conclusions:

  • What matters is not my work, skills, money or education. I do not feel too much about these. It is nice what I did but... Meh.
    Work is great and having a great job is awesome. I was lucky enough to get to work with Mozilla and to have managers that I cannot complain a single word about. It is not often people have such good jobs. Nonetheless, work is just an activity that is part of keeping your mind sane, to enjoy life. Your team makes work more enjoyable or less so, it is not only about the projects.
  • It is the experiences and the people who touched my life and helped me; it is the events and the accumulated life that made these 27 years "better", worth it.
  • It is you who makes life better for others around you. Yes, people are annoying and frustrating many times, but in the end they also give life meaning and worth, a purpose.
  • In the end I feel like I did not do much for others. I received a lot of love and help from others, gave little back. I lived a life of fighting for myself. I always hoped that someday I will be able to do more. I wanted to have a family, like anyone else, to do things for my family, not just for myself. Love.
  • Writing this blog post is a minimal effort in this short time. I hope others who read this silly lengthy article will ponder about what they do, and maybe some time they will be better prepared to make a more positive impact on others than myself. That would be a huge win for everyone involved.
  • I still cannot point to the purpose of my life, which is kind of sad. What was the sense of it all, but maybe having the answer does not really matter as much as you would expect. I am sure that the impact and importance of anyone's life cannot be estimated. Not much point in being stressed about things you cannot ever know. Nonetheless, I wish I knew what was the point of all the hardship…
  • Thank others for their help and support. Do not take it for granted and never forget you cannot truly thank those who have helped you most. Think about the person who helped you most and what can you do for him? I cannot match what Mozilla did for me, my family, the doctors and others. I cannot even match what nurses did for me.

It is ironic for me to make such recommendations because if you would have known me all of my life, you would think it's not truly me. I did fail to do these things I am suggesting here. I was not this "nice", as explained already, having a lot of health problems I did not get enough peace to pay attention to such details. I was focused on living, like an animal. It is only in the past years I started learning the importance of such aspects. I am not a "new person" or anything like that, but it is good to be aware of these matters. They slowly change you.

All of these things I am writing about here lead me to suggest ways you can make a change in the lives of others outside your circles. Do not wait for anything. You can help friends, your family and relatives, but I see a lot of value in changing things far away from you. Do not focus only on "egoistic" ways of helping.

There is some kind of egoism in helping others. It makes you feel better, but it is a good kind, where everyone involved wins.

Choosing to help people you know is really difficult sometimes. You know that the money you give may not be used as you believe they should. You worry that the help you offer does not always reach the intended outcome. You worry about what others think of your gesture, others who probably feel they would need similar help. You get into the politics of family, relatives and friends. At the end it is easy to give up on making a meaningful and consistent difference for others. These are the kind of things that I have been thinking about lately. This is why I choose targeted donations to medical research. You do not need the recognition or fame. Just help with making the lives of others better. If you give all your energy to someone, you cannot ever expect them to be able to thank you properly. It is impossible. Do this only if you truly never expect or care what happens after you help that person.

Think about making a donation for medical research.

I would be very happy if you would donate money for EB research, but I would be equally happy if you pick any other medical research center to donate to. It is more important that you will be happier to have made a positive impact, do not mind me.

Why EB research? Because EB research is going quite well and there are clinical trials that will help future patients with EB to avoid a lot of the hardships associated with the condition. This condition is sufficiently understood nowadays and researchers are at a point where they work on several approaches for treating it, or to greatly reduce its impact. There are cell therapy, protein therapy, genetic patching and other approaches, each under testing in various stages and levels of success. It will still take years before patients get such treatments and they will not be magical. They will not fix everything, but getting these available to them is essential to improve the quality of their lives. For us a reduction of skin fragility by any percentage would mean the difference between life or death.

I recommend you read a paper that summarizes the current state of EB research and where it is headed: Advances in understanding and treating dystrophic epidermolysis bullosa by Michael J Vanden Oever and Jakub Tolar, published in May 2014. EB is a rare condition with a lucky situation: much easier to study and understand compared to other conditions.

You should donate to help others get the treatments sooner.

This is the list of funds I trust for supporting EB research:

The Sohana Research Fund is in UK and I really appreciate how much Sohana does for raising awareness about EB. Her impact on the world is already quite important, having raised a lot of funds for research. Thank you Sohana, keep it up!

I would suggest you think of making a donation once per year, instead of buying a new phone or a new laptop, depending on how often you change things. See if you regret the choice. Can you skip an upgrade cycle every couple of updates? Pick any other device that is similarly acceptable to continue using. This is the amount you should donate. Think of the luxury you have. If you buy cars like others buy smartphones, then skip buying a new car, donate that money.

Medical research campaigns do not really go viral. We do not get a ton of people donating $5. You should consider donating as much as you are comfortable with.

Thank you very much for your time to read this article until here, and even more so if you will go ahead with making a difference.


The above concludes the first part of the article. I wrote more about the topics I touched upon in the previous sections, and I feel they belong in a single page, even if the whole document is quite lengthy. I have been suggested to split this part away, however I believe everything here flows together and it is related to how others have touched my life, for the better.

Please feel free to stop here, or go ahead if you want to know more about my perspectives on the topics below.

This whole article is not trying to give you some brilliant advice or ideas that were never heard before. It is mainly intended to send some of my thoughts to the circle of people who I can reach online. Thoughts that I hope will be positive.

Thank you.

On trust and choices

I did not trust much in the idea of making donations to anyone, to any charity or organization. Here in Romania, at least, there is a generalized mistrust in giving your money to anyone, unfortunately. You do not know what the money is used for.

My answer to the problem of trust is that you should, indeed, never give your money to anything you do not trust or care about. No problem. However, you are the one responsible for finding the organizations or causes you support and trust, if you ever want to do something like this. I did this last year. My experience in London taught me to appreciate the importance of medical research and donating to support it. The St Thomas’ hospital in London relies on funds from various charities for a lot of their EB research. They even had a dermatologist from Sydney working with the team for the purpose of learning more about EB, for one year, paid from the budget of a charity, from donations. That's epic for me. I'm glad to have met doctor Susan Robertson and to be her patient. She went back to Sydney and I am hoping her additional experience will be of benefit for more EB patients.

I saw how much more support other charities get in London, like Macmillan, compared to what I was used to. It is a different culture of giving back, unlike what I see back home. Not saying everyone in the UK is so giving, but I think it is a result of a better quality of life spanning more years than in Eastern Europe.

Mistrust blocks any chance to do or experience something good, beautiful. You get stuck in a lack of action. If we do not trust anyone how do we ever get any research done? How do we find love? Make great friends?

A lot of medical research only happens through donations because states and universities do not allocate too much funding for rare conditions. Cancer surely gets a lot of funds, but we can prevent EB patients from getting cancer by working on the main problem, which is more tractable.

I am not saying you should not make a donation for cancer, far from that. Actually please make your choice. Do not let your current lack of trust and indecision prevent you from making donations. Find a charity or organization you trust donating to - there are trustworthy ones.

I would like to point out that, at least, Europeans and Americans live in very good conditions that we take for granted too easily. The majority of us afford basic health care, a modest job, more than enough food (even if we complain about the quality), access to information, transportation, travels, technology and entertainment of many kinds. When was the human race so capable to provide such high standards of living for so many people? We have so many gadgets and we keep buying new ones as they come out.

On charities I would like to say one thing that bothers me: far too common you see their websites and presentations with too much pity and emotional content. Sad photos of EB patients and wounds, dressings, etc. You are given the impression that EB patients only know suffering and a life of hell, with no hope of ever doing anything in their lives, except you should give them money to help them live some more. Ironic and harsh. Why should someone donate money for that? This kind of messaging drives people away, and it even makes it too intense for any interested person to learn more. Even myself I sometimes disable images in the browser just to be able to focus on the content. If anyone wants photos and videos of EB patients they should have a dedicated section. I am not saying that showing others’ details of the condition is wrong. We need photos and videos, but not straight in your face. This is one reason why I do not show myself in public photos. Some feel too much when they see me.

My previous comment applies to other conditions and it does not apply to all EB charities either. Actually some EB related websites are very well done.

Some families personally present their cases. In such situations that is a lot more acceptable, because it is a personal choice. It also takes great courage to go public and campaign for what you want. I am weaker than that. :-)

My only gripe is with some charities that should encourage us to donate to research and show us the potential of patients. We are not limited to a world of pains.

I do not want this article to be a sad one, it may very well be, but for different reasons. Making a donation is about supporting a better life for future generations. It is about helping today's children to reach a better potential sooner and healthier. They all have a great potential to their lives. It is also about giving purpose and more meaning to your life, to touch others further away from yourself.

On love

This is probably the hardest part to write down, because it feels like every girl I loved would deserve a whole section. :-) silly me. I also do not want any of them to feel like X was "better" than Y for some silly reasons. Each love is unique and it never truly disappears. Each person is unique and special.

Like almost anyone I wanted a family, starting with a girlfriend and all the normal things in life. Given the situation I am in, this is obviously quite a task. Marius wrote an eBook on being a person with disabilities which includes ample sections about the problems we face in this kind of situations, in relationships.

Over the years I met some special girls, both offline and online. Each relationship failed for various reasons which I usually blame on my condition, the typical scapegoat. Special thanks go to Cristiana (lily), Corina, Livia, Alina and Claire.

These relationships failed before they even turned into anything like a proper girlfriend and boyfriend thing. With Cristiana it was just my first online-only thing, wanted more but nothing happened. With Corina things were offline, neighbors, the thing ended when I wanted more than a friend, but obviously the situation was more complicated. With Livia, again we had a good friendship which ended with a lot of suffering when I wanted more. Things were even more complicated, with too many mistakes. With Alina I kept an online friendship for almost 8 years before I had the courage to tell her my feelings, lol. We only met face to face a couple of years ago, when she came to Arad with her job for a short while.

Even with these unsuccessful relationships I feel it is much better than nothing at all. There was something, with each person. I know I will always be in their hearts. I know this sounds silly and optimistic, but there is more than that. Surely their feelings do not match mine, they cannot, because everyone feels things differently. Having even this (small?) amount of love and these experiences is really valuable.

I am going to focus a bit just on the latest special girl I met, and there is a good reason for that: Claire. I met Claire in November 2014, less than a week before I left the St Thomas’ hospital. She was there in the same ward as myself, as a patient, for several weeks. When I saw her a couple of times walking downstairs I was pleasantly surprised to see another patient there able to smile, to be gracious. She was obviously going through hard times, but nothing mattered. It is rare to see something like that. Someone else who is that strong. I was telling a friend she was like an angel. It is silly, but so many patients are disgruntled and sad in hospitals. She was different. I know myself, I am smiling going into surgeries, I come out smiling, except once when I was not feeling well enough. Seeing Claire she reminded of my way of being.

Like in silly movies I asked one of the nurses for Claire's phone number, so we met online and in the ward, and started to talk almost daily. Met her again in January this year, at the same hospital. Unfortunately, she continues to have her health issues.

Claire is a smart girl, she is pursuing a PhD in law and you can have a very lively discussion on politics, economy, faith and other topics with her. Did I mention she is kind? :-)

I do not want anyone to feel any kind of pity here. The point I am trying to make here is that there are special people out there with different medical conditions that need your support, and they make the best out of their life. Claire does as well. She has Lupus and if you want, please go ahead and make a donation to the St Thomas' Lupus trust from the St Thomas’ hospital in London, as per her wish. She fully appreciates and supports the team working there on Lupus.

Now I know you might wonder why I am suggesting people to donate both to EB and Lupus research. I could avoid mentioning Claire and Lupus, and just make a call to action here for EB research. I am not trying to convince you here to pick a charity. Just go ahead with making donations and supporting other causes.

I write here about Claire because it is the least I can do in her honor. In these past weeks I have been thinking a lot about how I can give back or show my love to the people I care about. This is one way, for Claire. It is difficult when you want to help or do something important, meaningful, for a special person and you cannot find anything to do. I see this with others who would do almost anything for me to get over this cancer. They feel powerless. I feel powerless as well. I cannot help Claire and others.

I feel that it would be egoistic to ask everyone here to simply donate to the cause I care about. I did that too much in 27 years. Now you choose if and how you touch others.

I also like the idea of having an impact in a completely unexpected direction in this world. I never knew about Lupus until I met Claire.

On faith

A topic closely related to love is faith and God. I want to mention that we, Marius and myself, were typically the target of various religious fanatics as we called them. Since early times they wanted to show us the light and love of God and even, recently, that of Allah (which is the same but not quite). What they initially achieved was causing rejection from both of us.

My cousin Simon helped with explaining things on demand, not like a spammer. To me belief in God starts with experiences, I cannot believe what I hear or read.

From my experience I would say that there might be something out there beyond human grasps that we cannot define, like afterlife and deities. Religions are only attempts to explain these matters. To claim there is only one truth is a big mistake. Humanity should not take that much pride in what it does. I am only closest to God and Catholic views because of social contexts, but this is not necessarily the "best" or "worst" deity out there, whatever that would mean.

On miracles I want to point out that too often that we want things to just happen, like in movies. We do not notice true miracles. The things me and Marius achieved were not something one would rationally bet on happening. Small achievements compared to what others have done, yet better than just a life of EB. Less than 10 years ago you could have asked any doctor or someone else to make an educated guess about us, and he would have not picked anything like how things really turned out. Seemingly impossible things can happen, even if there are very small chances. You only need to try and to have courage, to persevere.

I have an amazing family, got to have a great job, met great people, travelled to cool places, etc. Others do not get these, even if they have similar or the same condition. Is it all a coincidence or "little miracles"? I do not know, but I could have had it much worse, and throughout the years I "dodged" death perhaps more times than I can remember.

Even now, facing the prognosis I have, I cannot be sure about it. Until the very end there is always a way. I am entirely convinced that this cancer can be cured by today's medicine, that is if we include the alternative medicine as well. The only problem I face is finding the needle in the haystack. Very few other patients in late stages of cancer seem to have successfully overcome their illness, but none that I know of had EB. Were those miracles or not? It is all within the realm of humanity, but the actual finding is what makes it a miracle, nailing that very small chance. The question is how many of these "miracles" can one have in his lifetime? I cannot expect as many as I wish.

When you hear that man is made in the image of God you probably do not understand why. I see this with others, like my mom. She did and continues to give her life for her children, slowly, every day. Her sacrifices are like the symbolic sacrifice of Jesus for the sins of humanity. We have that desire to sacrifice ourselves for the ones we love. I would be so happy if my life would be so meaningful to at least one person out there, if I could have made a sacrifice for a higher purpose.

True love is about being there for the people you love, going through joy or unhappiness, sacrifices. When I hear some lover committed suicide because his partner decided to leave him it does not really point to how much he loved her. Unfortunately, having serious lifelong health problems such thoughts did cross my mind in different circumstances. Ultimately, I believe we have only one life to live, and we must make the best of it. If you abandon the project, then you deny any chances of improvements. Once you stop you cannot go back. I always hoped things will not be as bad as I am told, or as I expected them. I was generally right. :-)

I mentioned in this article all the love and support I got from the many people, which I really appreciate. I believe that the cumulated love is actually God's love. Ultimately, I feel like thanking him for all of this simply because it is all so much.

I could be very bitter about my untimely demise, but I am not. I wonder why? My answer to that is probably all the love and God have given me this peace. What more can I ask for when the end comes? Peace is the most important thing at the end. You could say it's my smartness and education, or whatever, that have have brought me to this peace, but I do not believe that. You can have smart and educated people going ballistic as well. It is something more than education. Maybe Christian brainwashing almost got me, lol. :-)

I want to recommended a movie on the topic of body and spiritual healing that is very well made, seemingly boring, but full of meaning: Lourdes (2009). Enjoy it.

A common question is why do we suffer so much if there is God and he loves us so much? It is the wrong question to ask, I would say. If there is a God, he is not going to do things how we imagine them in this reality. It is silly and limited. If God is love then he must also be freedom. You cannot love someone without giving them the freedom of choice. Freedom means anything can happen, good or bad. Even if you know something bad can happen you must allow your loved one the freedom to pick. You want freedom from your parents to choose what is right or not. If you do not do this, then it becomes a different kind of relationship. There is no love in a dictatorship, even in a "good" dictatorship - where you pick whatever happens with your loved ones and they do not get any choice. This is the same with God's love: his love does not prevent us from suffering, sickness, or from making bad choices for ourselves. We have that freedom.

It is good to pray or to meditate, to take your mind off the problems you have. You do not have to fully trust the deity you pray to. That comes in time. Also do not expect answers to your prayers as you want them. Things happen differently. I wanted the end of the suffering we go through. I am getting to that end now, but not exactly how I wanted.

As I wrote on Facebook in Romanian, in autumn 2014: you do not live until you get to "die". If you do not get to miss life for a while, you cannot really appreciate it.

I find the fear of death almost illogical. If you like your life, or life in general, death is part of the process of life. You must be prepared for it, and it will never be when you expect it.

I do not fear death at all. I expected it will be an early one. I am not happy to leave the things I like here, people, events, work, etc. I am also enthusiastic about technical progress. There is so much going on. I would like to see where we end up in 30 or more years. Silly, I know. :-)

Afterlife is another concept many are bothered by. There is no point to be worried about something that human language, psychology, intellect, etc cannot even begin to grasp. As such, I am waiting to see the afterlife peacefully, if there is anything like that. The various religions and cultures try to define this concept, deities and more, each with their own qualities, but I feel they are just exercises of imagination and human limitations.

I believe that faith starts with the courage to keep going in spite of all the disappointments, fears and failures you had or still have. How can you trust God if you fear death or you worry about tomorrow's big exam? You must face hard times with all the courage you can muster. That is faith.

It is silly how much time and energy people waste on anger and other problems, including myself. We cheat, lie, play games with each other, etc. We are mainly driven by fear. We think about what is next and we choose to avoid admitting feelings about the problems bothering us. We say half truths, we hide. We just do not fully admit what bothers us to the people around. Friendships, romantic relationships and families break up because of poor communication.

Being too honest also makes it easier for people to dislike and hurt you. It is a hard balance to keep between being yourself or being nice. I know I was mostly too direct, easily annoyed people. :-)

At the end I believe you do not really regret being honest. Mainly you get disappointed by the things you do wrong, the inexplicable complications that stem from miscommunication.

We fear too much and we trust too little. When someone tells you their own feelings the "best" option is to doubt him and make up your own version. That is really the recipe for disaster.

There is a song that captures this idea really nicely: Jem - Down to earth.

I am OK with all the people who did wrong by me, which is far fewer than those who did good. Those who do wrong only do it as a reflection or result of their fears, lack of trust and own problems.

I think having serious problems of any kind makes us more like animals. I have seen this with myself. It is much harder to be nice, educated, and considerate under the stress of pains, failures and frustrations. Survival mode kicks in quite subtly actually.

We compete and hurt others for little gains so often that we do not notice. We hear people say things and make assumptions. It is ridiculous how many times people assume I always like what Marius does, or often people think "you can't do that, right?" I see this in the technical world as well: just send an email to a technical mailing list and you will see replies from people who do not entirely read your message, or misinterpret what you write. Too many assumptions.

On technology

I will be abrupt here: no, the Internet did not fail. I read this article a long time ago and I still remember it. While I agree with the main points of the article, I consider my life an example of the amazingly positive impact of technology and the Internet. All of the miserable problems with the tech industry are minor compared to the improvements technology brings to the human quality of life. Without the Internet I could not have done what I did.

The latest example I have is with smart phones. I was a naysayer. I always used a PC, never a phone more than 5 minutes. I also was not much of a mobile person, staying at home most of the time anyway. Last year in March the bank I used started requiring a token device for authentication, or a phone. I could not use the token, but they were kind enough to offer me a pretty good smart phone (thank you very much Anda Dărăban). That was my first phone that I actually used. I used it in the hospital in Hungary, then in London and so on. My left arm was not usable for many months, it is not usable now either due to the tumors and surgeries. I never expected that technology on these otherwise addictive gadgets was so accessible to me. I can type this article easily on my phone, I do not mind not being able to use a keyboard anymore. How is this not a great achievement of all the work that the tech industry has put in? It is all for commercial interests, I know, but we easily forget about what these things enable us to do. Countless patients in hospitals and other people in difficult times come to rely on technology that was not available a few years ago, making all the difference in the world for them. I would have suffered a lot more in hospitals and back home now, and last year after the surgery, without being able to stay in touch with the people I know from home, work and others.

This is also an example of how a simple gesture of help makes a huge impact. I did not expect, neither Anda did, that this phone would be so useful for me in such hard times.

Proud to be a Șucan

I cannot end this article without saying a few words about the people who did everything they could for me, my family.

Mom's sacrifices are endless and tireless. Me and Marius, in silly attempts at being funny, we call mom RoboCop, for her tireless energy, she is unstoppable. We call her many things including things she has to forgive, during stressful and angry times. She forgives, loves and moves on. She was and she will always be our guardian angel.

I specifically want to recognize mom's ability to overcome her limitations. Born in a remote village that not very long ago got electricity, she learned to accept new things, to travel to places she never expected, to do things that she believed are nearly impossible. She did and continues to do everything for us, for love.

Almost everybody loves their mom, but if there would be a kind of contest I am certain my mom would be among the winners, simply because not everyone would be able to do what she did, objectively. Not every mom is equal to other moms.

If there are saints and angels mom would be one of them, or she is closest to being one. She always does things for the benefit of the other, never for herself. She takes the lesser half of a plate, for example, even when splitting with strangers. She even gives it all. I wish I could be a quarter as kind as her. Today I would not feel like I did not help others much.

Dad, similarly, is a strong character who never ever gives up and fights for us, with his own qualities and personality.

My twin, Marius, has always made images representing his feelings, which is much more valuable than trying to be nice and fit in some contemporary art and style that people like right now. His work and its impact have a value that will outlive mine, and that makes me happy.

Alex, my older brother, did everything he was able to with helping us as well, more than he notices. His education and level of technical expertise is epic and his impact in robotics is going to be larger than he expects. I wish I could get to see where robotics will get to, and that will include a Șucan. :-) His success was always a model for me and Marius.

Proud of my parents and brothers. Thank you all.

I will end this with thanks everyone for their love and support. Thank you God.

PS. Now go touch the world a bit by making a donation to medical research, EB and / or Lupus research. Cheer yourself up! :-)

Articol disponibil și în limba română aici.

How to customize the Firefox Web Console output

Hello Mozillians!

This is just a quick note to the blog readers about a new page on MDN: How to customize the Firefox Web Console output. The API presented is fully available in the Aurora channel, and partially available in the beta release channel.

I hope add-on authors interested to extend the developer tools will find the documentation useful.

Web Console improvements, episode 30

Hello Mozillians!

We are really close to the next Firefox release, which will happen next week. This is a rundown of Web Console changes in current Firefox release channels.

Here is a really nice introduction video for the Web Console, made by Will Bamberg:

You can learn more about the Web Console on Mozilla's Developer Network web site.

Stable release (Firefox 27)

Screen shot of the Web Console in Firefox 27 showing reflow logging.

Added page reflow logging. Enable this in the "CSS > Log" menu option (bug 926371).

You can use the -jsconsole command line option when you start Firefox to automatically start the Browser Console (bug 860672).

Beta channel (Firefox 28)

Added split console: you can press Escape in any tool to quickly open the console (bug 862558).

Added support for console.assert() (bug 760193).

Added console.exception() as an alias for the console.error() method (bug 922214).

Autocomplete for JavaScript input provides suggestions from the currently selected stackframe in the JS Debugger (bug 842682).

Added option to toggle the display of message timestamps in the console output (bug 722267).

Added a dark theme for the console output.

CSS warnings disabled by default (bug 909756).

Aurora channel (Firefox 29)

Added the console API to Web Workers (bug 620935). Now you can log messages to the Web Console from Web Workers.

Screen shot of the Web Console in Firefox 29 showing improved object previews.

Pretty output for objects in the console output. You can now see previews of object properties, array elements, DOM elements, node lists, and more (bug 843004).

Compact object previews are also used in the object inspector, which is also used by the JS Debugger.

The changes made in bug 843004 also include new APIs that allow custom message output to the Web Console. You can customize output for different object types as well.

Screen shot of the Web Console in Firefox 29 showing improved output for console.trace().

Nicer output for console.trace() - inline display of stack frames with syntax highlighting (bug 939783).

Now the input line is focused when you click anywhere in the console output (bug 960695).

Nightlies (Firefox 30)

Added cd() support. Now you can execute code in iframes/frames (bug 609872).

  • cd(someWindowObject) switch the JS evaluation scope to the given global window object - you can get it from iframes using iframeElement.contentWindow.
  • cd('.selector iframe') - for ease of use you can specify a CSS selector that matches the iframe you want to use as eval scope.
  • cd(iframeDOMElement) - you can also point to the <iframe> DOM element.
  • use cd() with no arguments to reset eval scope to the top window.

Note that cd() is also available in Scratchpad.

Screen shot of the Web Console in Firefox 30 showing syntax highlighting for object previews.

Rich previews for objects (bug 584733): syntax highlighting, you can click on property values/array elements to inspect those objects directly, DOM node lists and more.

DOM elements are now highlighted in the page when you hover the DOM element in the console output (bug 757866). An inspector icon is also included - click it to jump to see the DOM element in the markup view.

Added support for pretty output of objects in the Browser Console as well (bug 952190).

Network requests are now logged when you connect to Firefox OS (bug 917227). This affects both the Web Console and Network Monitor tools.

Added console.count() (bug 922208).

Autocomplete for array members, so now you can type myArray[2].foo to get suggestions (bug 943586).

Ctrl/Cmd-Shift-K no longer toggles the Web Console. To close the developer tools use Ctrl/Cmd-Shift-I or F12. Ctrl/Cmd-Shift-K is now used to focus the Web Console JS input if it is not already focused. See Rob's blog post for details and bug 612253 for the development notes.

The Browser Console no longer shows the JavaScript input by default (bug 922161). Set devtools.chrome.enabled to true in about:config to get back the input.

JavaScript warnings and network logging are disabled by default (bug 966692).


Big thanks to all of the contributors who made patches to fix and improve the Web Console.

Next week we will start work for Firefox 31. If you are a developer I recommend you to use aurora or nightly builds to get the best of our devtools.

Three years with Mozilla, and counting

Hello Mozillians!

In early 2010 when I applied for an internship at Mozilla I was anxious. It was a kind of test for what I learned and for the value of the projects I did up until that point. That is when I met my first manager. When I was invited to join the new developer tools team, I was thrilled, excited and really happy that somehow "I did it!". I did it in the sense that "yes! now I can do real work!", and yes, since 2010 I work on things that make a difference. This was, and still is, the job I really wanted to have. Back then, the team was preparing the initial versions of the Web Console and of the Inspector. We released the Web Console in Firefox 4.

In July 2010, when I started to work with the team, I was new to XUL and Gecko-specific APIs for chrome-privileged JavaScript. Since then I learned a lot more about technologies, about what it takes to work in a big project, what it takes to work in a team and I also learned about how managers work. I had no clue about a lot of things, and learning never ends - which is what I really enjoy about the work I am doing.

I had the opportunity to meet the whole team and other colleagues from Mozilla on several occasions - in London, Sunnyvale, Mountain View, San Francisco and soon in Paris. The people I met, the Mozilla offices and places I have seen, have, in some ways, humbled me about what the future can hold. They were all really great experiences that I did not dream of.

A bit of stats: in three years I fixed approximately 300 bugs and reported ~320 bugs (~210 are fixed already). I worked on the Web Console (I still do), the Inspector, the Computed Style view (in the really early days, in 2010), the Source Editor, the network monitor (the backend for network logging which is shared with the console), the about:home page introduced in Firefox 4 and a bit on Panorama (the tab grouping feature introduced in Firefox 4).

I look forward to continue to work on more cool projects and to work with really great people! The people make Mozilla what it is and they have been really great with me. For everything, big thanks to my colleagues, managers and, actually, friends who work on tools for the open web platform.

The Browser Console is replacing the Error Console

Hello Mozillians!

Today's Firefox Nightly (May 29, 2013) no longer has the Error Console enabled by default. It has been replaced by the Browser Console which shows all of the same errors, warnings and messages as the Error Console and more: network logging and window.console API logging from all content and chrome windows - including extensions! It also has a better UI, you can filter messages, evaluate JS with chrome privileges and inspect objects.

If you find missing messages, please file bugs as soon as possible in the "Developer Tools: Console" component. Thank you!

The Browser Console shares the same code with the Web Console. This means you will get all of the improvements we are working on - we are gearing up for a console output UI rewrite.

If you want to enable the Error Console you can change the devtools.errorconsole.enabled option to true from about:config.

Pro tip: in your Firefox chrome code (including extensions) you can do:

Cu.import("resource://gre/modules/devtools/Console.jsm");
console.log("hello", yourObject);

The above code will output to the Browser Console if you have it open - you can inspect objects, print stack traces (console.trace()) and do a bit of timing (console.time("foo") / console.timeEnd("foo")).

Have fun!

Update: these changes should have no impact in Thunderbird, XULRunner or any other applications. Currently the changes are limited to hiding the Error Console menu item from Firefox by default, and the Ctrl/Cmd-Shift-J keyboard shortcut now opens the Browser Console instead of the Error Console.

Web Console improvements and the new Browser Console

Today we just landed three new Web Console features you can play with in tomorrow's Firefox Nightly builds!

On a related note, Victor Porof also landed the new network monitor which gives you a very nice UI for working with the log of network requests and responses. The new tool uses the Web Console actors we worked on for making the Web Console remotable - both tools share the same network logging mechanism.

Evaluate JavaScript in the current stackframe

Whenever you are debugging a script in the page you can now evaluate JavaScript and inspect objects from the Web Console. Make sure you select in which stackframe you want to evaluate your code - just switch to the desired frame in the Debugger view. Until today the Web Console locked up while debugging pages. For technical details, see bug 783499.

This feature required a number of important changes. The Web Console now uses only the debugger API to access the content JS objects. With these changes we are fixing a number of bugs reports by users.

New object inspector

The old object inspector popup has been replaced with the same variables view from the debugger, allowing us to fix long standing issues with the old inspector. This is not just pretty UI: you can now filter/search through the properties by name and value, edit property name and value, delete properties, and more. You can also use JavaScript helper functions from the web console, inside the variables view: when you edit a value you can just write $("foo") or whatever you wish.

With this change object inspection works slightly different: you will notice that many of the methods and properties of DOM objects show in the prototype of the objects you inspect. The switch to the debugger API brings the Web Console in line with the JavaScript debugger.

The new Browser Console

To enable the Browser Console make sure you set devtools.chrome.enabled to true in about:config (Firefox restart is needed). Open the Browser Console from the Web Developer > Browser Console menu item.

The new Console is meant for browser and addon developers: you can see all of window.console API calls, from all windows, all script and style errors/warnings, and all network requests from all over the browser and from addons.

We plan to replace the Error Console with the Browser Console as soon as possible: the Error Console provides users with less capabilities than the Browser Console, and it is not remotable. You can currently connect to any Firefox Mobile, Firefox OS and Firefox for desktop instance and see all of the logs in the Browser Console from the remote instance.

Given the amount of logging happening we plan to support better ways of filtering output. For example, we would like to allow developers to filter messages by addon.

Obligatory screenshot:

Screenshot of the Browser Console

The screenshot shows the Browser Console with the new object inspector.

What is next

All of the three features are the outcome of a lot of work from the entire team. Still, I want to thank Panagiotis Astithas and Jim Blandy for the debugger-related work and reviews, and Victor for the variables view work.

Download a Firefox nightly build, play with the new features until you break them. :) Please let us know if you have any comments and report any bugs you find!

Web Console changes in new Firefox versions

Hello world!

Here is a summary of the improvements we have made to the Web Console in the latest versions of Firefox. In the new Firefox 16 release we have added the ability to display Content Security Policy warnings and errors. We are also highlighting network requests that happen over HTTP on HTTPS pages (and vice-versa), and we did more output performance fine-tuning.

In the new Firefox Beta we have moved the Web Console UI into its own <iframe> - which gives us better flexibility for upcoming work we will do. We changed the UI to match the developer tools theme and we made objects you pass to console.log() inspectable. For example, if you call console.log(document) you can click [object HTMLDocument] to inspect it. JavaScript input autocomplete also received a number of improvements. Last, but not least, now you can zoom in/out the text in the Web Console - just press Ctrl-- / Ctrl-+. The default font size should also match your system's font size settings.

In the new Firefox Aurora release we landed a big chunk of work that makes the Web Console remotable - we now make use of the Remote Debugging Protocol. This means you will be soon able to connect Web Console instances to your B2G, Fennec or other Firefox for desktop browser instances. We currently lack UI to allow you to do this, but we are working on it. This work also paves the way to a Global Console that could replace the Error Console, some day. 

At the end of September the developer tools team had a meetup in London. There I had the chance to demo the Web Console client connected to a B2G server:

Web Console client connected to a B2G server

In the above screenshot you can see the Web Console client running in a local Firefox for desktop build while connected to a local build of B2G Desktop running Gaia. You can see network logging, object inspection, network request/response information and script errors coming from B2G.

To learn more about the Web Console remoting capabilities see bug 768096 and the wiki page on MDN. To follow the progress with B2G integration see bug 795691.

What is next? We are going to complete work on B2G integration, improve the way Web Console output works, and we will probably add a Global Console. We also plan to improve the user experience of the object inspector and the network panel.

BrowserID (Persona) authentication in Ruby on Rails

A quick post to point fellow mozillians and users of Ruby on Rails to a useful gem made by a friend of mine, Dennis: BrowserID (Persona) authentication support for Devise. Thank you Dennis for your work!

Web Console changes in Aurora (Firefox 15)

Hello Mozillians!

For the Aurora update that's happening this week we have some major changes under the hood for the Web Console.

Async Web Console

Work on making the Web Console UI async, decoupled from all the error and network listeners, started in July last year (bug 673148). Even if it took almost one year to get this bug fixed, I worked on these patches for about 3 months (loosely summing up the total days of work spent on this specific bug).

 Back in those months we strongly pushed for various developer tools to land and get enabled by default in Firefox. I've been working a lot on the source editor which was needed for the Style Editor, the JS debugger and Scratchpad. Work on the Web Console was on and off. 

 There was modest to good progress for the Web Console async work until around September - October when Mozilla's electrolysis project was re-prioritized. The initial work on the patch started out with the goal of making the Web Console ready for e10s. When priorities changed, I went back to source editor work which was higher priority at that point. 

In January - February a really brave and courageous contributor, Sonny Piers, took the huge patch and rebased it. His efforts were commendable given the size and complexity of the work that was going on. Thank you Sonny!

 In March I resumed work and I strongly focused on completing the async patches. Last week the last patch landed in the nightly builds of Firefox. 

What changed? Most of the Web Console was implemented in a single file, HUDService.jsm. It had everything - from UI code to all the error and network listeners and stuff for the window.console API. We have now broken that code into separate scripts with the goal to leave HUDService.jsm as the script that implements only the UI. The new HUDService-content.js script implements all the listeners, all the "backend stuff". The UI code must no longer directly access the content window and objects from the content document.

Why? This work allows us to move to the remote debug protocol and to have the Web Console UI connect to your Firefox Mobile or B2G device where all the error and network listeners are instanced. This work paves the way to a remotable Web Console.

The added benefit is that the async-ness had some modest performance benefits to content scripts (pages) that used the window.console API - a call to any method no longer had to wait for the Web Console UI parts to update.

In the future other Firefox components and extensions can build different UIs on top of the data collected by the HUDService-content.js script.

Lessons learned:

  • Focus, focus and focus! Given big projects one must not try to do everything else.
  • Do not underestimate the time it takes to polish working code, to make it ready for review. I had working code in September-October, but getting it "done" took quite more.
  • Make sure your manager is aware there's a ton of work to do on your project. There's high temptation to be nice and be helpful and do a lot of other work in between. ;)
  • Aggressively split your work into smaller chunks.
  • Be lazy - avoid doing work you don't need to do for the given goal project.

Thanks go to Rob Campbell, Dave Camp, Felipe Gomez, Ms2ger, Joe Walker, Sonny Piers and everyone else who contributed to getting these patches to be ready to land.

Improved performance

Building on top of the async Web Console work we've also made some really nice output performance improvements (bug 722685). In bug 746869 Boris Zbarsky analyzed the performance issues in our code and he made a number of valuable suggestions on how we can make it faster. Thank you Boris!

Our first attempt to make the Web Console output faster has landed in Firefox. Let's go straight for the numbers:

  • Opera 12 (post-beta, latest snapshot, with "cutting-edge" Dragonfly):

    • Closed console:

      • Simple string: 4 ms
      • Interpolation: 1 ms
    • Open console:

      • Simple string: 17 ms
      • Interpolation: 12 ms

      Display performance is sufficiently good. However, it becomes slow to very slow after several runs. No message pruning happens.

  • Chromium 18 (beta):

    • Closed console:

      • Simple string: 21 ms
      • Interpolation: 11 ms
    • Open console:

      • Simple string: 66 ms  
      • Interpolation: 68 ms  

      Performance in content pages is very good. However, display performance is actually poor. First run is fast. Subsequent runs take far more. The web inspector tool UI is frozen for many seconds when the second and third runs happen. Content process separation helps a lot. Even if Web Inspector's display is frozen, web pages continue to run smoothly.

  • Firefox 13 (without the async patches):

    • Closed console:

      • Simple string: 135 ms
      • Interpolation: 128 ms
    • Open console:

      • Simple string: 6941 ms
      • Interpolation: 7376 ms

      Firefox locks up badly, turns gray (frozen). Subsequent runs take the same amount of time - not slower. We prune old messages.

  • Firefox 15 nightly (with the async patches landed): 

    • Closed console:

      • Simple string: 139 ms
      • Interpolation: 134 ms
    • Open console:

      • Simple string: 235 ms
      • Interpolation: 240 ms

      Firefox freezes for less time, it doesn't turn gray on Ubuntu and content script impact is reduced. Subsequent runs are not slower.

  • Firefox 15 Aurora (with the performance patch landed):

    • Closed console:

      • Simple string: 50 ms
      • Interpolated string: 48 ms
    • Open console:

      • Simple string: 51 ms
      • Interpolated string: 48 ms

      For comparison: do note that 1000 dump() calls take around 10-20 ms in Firefox. (dump() is a dumb method we use to output messages to STDOUT.)

      Having the Web Console open or closed no longer directly impacts console API calls. Now the UI no longer freezes and results show up quickly.

      I tried with 5000 calls and we now do better than Opera's Dragonfly and Chrome's Web Inspector - in terms of UI updates. Still, console API calls finish faster, for some reason, in those two browsers.

Please do note that I used the simple test attached to bug 722685 for testing. These numbers are not meant to be "scientific" or anything like that - they are based on my machine setup.

We will continue to do further work in improving the output performance (bug 761257). At this point we still need to avoid doing some unneeded work when a lot of messages end up in the queue to be displayed. We also need to better balance how often and how many messages we display during "heavy fire" - during the execution of content scripts that invoke the console API methods many, many times for an extended period of time.

What's next?

We have plans to move the Web Console UI into its own <iframe>, change the UI to match the other developer tools theme, add the option to move the UI into a real window, make a global console that could replace the Error Console and, obviously, switch to the remote debug protocol so you can use the Web Console with remote Firefox instances. All this and many other improvements, of course!

You may wonder "when?" and the answer to that is that all the improvements will come gradually when we get to implement them.

File bugs, find regressions and let us know what you like and dislike! Thank you!

The latest Source Editor changes

Hello everyone!

This week we will make the merges for new Aurora, beta and stable releases. This is always great news for us: we get more of the stuff we worked on released to our users.

In the new Firefox stable release (version 11) we have important performance improvements for handling very long lines in the source editor, fixes for CSS syntax highlighting and more. For example, users on Linux can now select text to copy to the primary X11 buffers and they can middle click to paste.

The new Firefox beta release (version 12) adds support for find (Ctrl-F) and jump to line (Ctrl-J), including other smaller fixes.

The new Aurora release (Firefox 13 alpha). This release marks important changes and it includes a number of patches from awesome contributors! The list:

  • Bug 684445 - added a default context menu. This is now used in the Style Editor.
  • Bug 700893 - added API for tracking the saved/unsaved state of the editor. This code is now used by Scratchpad which had its own tracking for the saved state.
  • Bug 707987 - added support for setting breakpoints (for JavaScript debugger we are working on). Stepping support is also coming very soon (Firefox 14).
  • Bug 717373 - removed the <textarea> fallback. We now only support the Orion-based source editor (blog post by Rob).
  • Updated the Orion integration, included a number of fixes for the read only mode, context menus, selection, undo/redo and more.

Our awesome contributors did:

  • Bug 703692 - added support for the focus/blur events.
  • Bug 721324 - themes can now change the code syntax highlighting style. 
  • Bug 725388 - expose the Orion mousedown/mousemove/mouseup events. This is going to be used by the JS Debugger.
  • Bug 725618 - added keyboard shortcuts to move lines up and down.
  • Bug 729480 - jump to line can now vertically align the target line: top, center and bottom, and this can include an offset so N lines at the top/bottom are always visible. This feature is now used by the style inspector to link to sheets in the style editor.

Thanks to all the contributors for their awesome work!

Other exciting news: Eric Shepherd, the "documentation overlord", is writing the source editor documentation. For now the wiki page is a work in progress, but the results are already looking great! Eric will also write a guide on how to use the source editor. Thank you Eric!

We hope you like the work we are doing! Comments, suggestions for improvements and patches are always welcome!

The Mozilla community

Aloha!

In summer 2010 when I joined the new and awesome developer tools team little did I know about Mozilla, how Firefox is built and what is the "Mozilla community". Every day I learned more and more, and now I am surprised in a very pleasant way. The Mozilla community is a broad one, helping our open source projects in multiple ways: from spreading the word, advertising our project, to localization, documentation writing and even development.

We have recently made our developer tools more "public" simply by releasing them to our users in stable versions of Firefox. The latest releases of Firefox have put the new developer tools into the hands of many interested web developers around the world. The coolest outcome of this is that some people want to help us improve our tools! There's no better way to do this than writing actual patches for new features and bug fixes.

At Mozilla we have the Bugzilla site where most of all development tracking happens: that's where we open "bug" reports for new features, for issues we need to fix and so on. We have a way to mark bugs that are easy to fix for volunteers, newcomers to the project. We call these "good first bugs" and we associate mentors to them, people more experienced, who know how to fix the bug and can help the volunteer in the process of writing a patch.

Recently I had the pleasure of working with several contributors from our big community, and it was quite awesome. From "near-perfect" contributions that needed almost no help from me, to contributions that needed more guidance. In all cases I was glad to see contributors enthusiastic about their work, happy to help, taking bugs we can't immediately fix (people on the team usually work on higher priority tasks).

It's really cool to see people joining the Mozilla IRC servers, in the #devtools channel, and just saying "hey, I want to help with fixing bug #nnn. any pointers for that?". That's all it takes to start the ball rolling. It's the spark of curiosity in our volunteers, their desire to help and to learn. It doesn't take a rocket scientist, it doesn't take anything "hard" - it's just that drive to do something useful for them and for us.

While Firefox has hundreds of millions of users, I think the coolest part of the Mozillians community is these fewer people who "bite the bullet", who try to do something they didn't do before: get the Firefox source code, build it, write a patch (with automated tests), ask for feedback from the mentor, update it as needed, and done! They take time to read and understand existing code, and they read our documentation to be able to successfully complete their patches.

This is very much different from what one can expect from a closed source project where users, irrespective of their appreciation of the project, irrespective of how capable they would be to help the project forward, they cannot do so. This is open source and simply being so it enables a whole new level of engaging people around the world within the Firefox project, or within the other Mozilla projects. Also, it goes without saying that simply being open source is not always enough, open source done right allows actual successful contributions from volunteers.

Our contributors are always happy when their patches land in Firefox but we are also thrilled when we see the final patches land, it feels great to see others helping to improve code we previously worked on.

Thank you all and keep on rocking! You make Mozilla unique!

Firefox 10

Aloha!

Mozilla has made the final release of Firefox 10. The developer tools team has worked for over 18 months for what you get to play with - this new release brings a lot of the hard work each team member has put into these tools. I am happy to be one of the people who contributed to this really big release. We always strive for quality and performance. While these tools are now undergoing a lot of work in terms of features and polish, they are already at a point where we can be proud of them.

The Eclipse Orion code editor has gone through great improvements since Firefox 8 and it is now enabled by default. Collaboration with the Orion team has been very successful and we are making great progress. I really enjoy working with them!

Firefox 11 beta features a new Style Editor developer tool that also uses the Orion editor for syntax highlighting. We are also working on a JavaScript debugger for a later Firefox release which is going to use the same editor, with additional features.

Keep your Firefox updated and have fun using our developer tools!

Orion in Firefox

Hello world!

Just a quick note: today we have landed the Orion editor in Firefox. If all things go well, users will play with Orion in the new Scratchpad developer tool in Firefox 8.

Implementation and integration notes: only the Orion TextView is used and for now this feature is disabled by default due to some bugs with bidirectional text support and accessibility issues. We are looking into improving the code so we can later enable Orion by default. This will happen after Firefox 8.

To enable Orion you need to go to about:config and change devtools.editor.component to "orion".

An obligatory screen shot and screen cast:

I did the screen cast one month ago. The only changes since then are code quality improvements, bug fixes and minor UI improvements.

Big thanks go to the awesome Orion team for their great project and fruitful collaboration, and to the Mozilla colleagues who had the patience to review all the code I wrote: Robert Campbell, Gavin Sharp and Ehsan Akhgari.

Have fun! Play with tomorrow's Firefox nightly builds or... wait for the Firefox 8 alpha/beta/stable release (whichever you prefer).

If you want gory technical details, just check out the bug reports where all the work was done: bug 636727 and bug 660784.

Firefox 4 is out!

Hello everyone!

It is a long time since I last wrote anything in this blog, but today I have a great occasion to write about! Today I am really glad to be part of a great open source project release: the new Firefox 4 from Mozilla is out! Go ahead, download the browser, play with it and use it!

Since July 2010 I have started to work with the new developer tools team. This is the awesome team that brings you the new Web Console tool into Firefox 4. :)

There's a special feeling to making contributions to such big projects that reach hundreds of millions of people. These months I learned a lot of cool technical stuff from the fellow software enthusiasts at Mozilla. I also learned that open source at Mozilla goes beyond putting the Firefox source code on a Mercurial repository, out in the open for everyone. Open source is the way to drive development, manage a project and a company.

Congratulations to the whole Mozilla community for this awesome release!

Update: Yesterday, on the Firefox 4 release day, I found a blog post from a fellow Mozillian titled Proud. I really liked the video he linked. Here it is: