Sunday, October 29, 2006

Bug 355490 Need a way to access all tabs quickly from the tab bar

When adding the scrollable tab bar to Camino, we also removed the pop-up menu that lets people who use lots of tabs access them quickly. I submitted a patch today that brings back the pop-up menu and it also shows the current state of the visible / not visible tabs.

There has been some discussion about whether or not this should be an extra button on the tab bar. I think it will work really well because people switching from Firefox / genuine switchers from Windows (IE7) will be used to having a visible button to let them do this. The exact sizes of the buttons are subject to change :)

As usual, a screenshot to demonstrate :)

Thursday, October 19, 2006

Internet Explorer 7 vs Camino 1.2+ showdown

I really wanted to do this comparison using video clips of the OS to show the differences and similarities side-by-side. I couldn't easily find a piece of software for Windows XP that would perform the same function as iShowU does for OS X.

The Internet informed everybody that Internet Explorer 7 was released today. I took some time to check out the changes that Microsoft had made with respect to tabbed browsing.

I really like the New Tab button at the right of the right most visible tab. It is a nice touch and it makes the benefits of tabs more obvious to new users.

When you scroll, you actually change the currently visible tab. I'm not sure what I think about this because is it always the case that you necessarily want to change the currently visible tab?

When you have the left most visible tab as the first tab that you opened, the scroll button is removed from the bar. When you have the right-most visible tab as the last tab you opened, the right scroll bar is visible... a little bit peculiar.

The tab list is quite nice. It uses highlighting to draw attention to which tabs are currently visible in the tab bar. I am currently working on bringing this back to Camino using separators to subtly denote which tabs are currently visible.

There is no click and hold scrolling of tabs - come on guys! The scrolling of tabs is not animated. This is something that people have been pushing for since the start in Camino.

The Quick Tabs button is very nice. It does exactly what I'd like to see Camino do but using Expose similar to Shiira. Also, it felt a little sluggish with 16 tabs on using Quick Tabs. I'm on a Core Duo 1.83 with 1.25GB RAM so I wouldn't expect that to be an issue. I wonder if they do it buy taking a snapshot of each page on the fly and arrange them into a matrix of images. That seems to be the way that Shiira does it considering the initial lag experienced when switching to Tab Expose. It's probably how I'd try to do it in Camino until Stuart told me that I was being a retard ;-)

I have to hand it to them that their product looks extremely polished compared to my summer work. It'd be quite interesting to speak with the people at Microsoft responsible for implementing this, I wonder if they read Blogger...

Friday, October 13, 2006

Hello, hey, hi

It has been almost 2 calendar months since my project with Google/Mozilla finished. I have continued to work on Camino since the end of August.

The scrolling tab bar patch landed on the trunk of the Camino code on 5th October 2006. As a result there have been at least a dozen follow up bugs - some of them are actually bugs, some of them are feature requests, some of them confuse me.

I have no idea when the scrolling tab bar will make it into a public release of Camino - there are words like 'branch', 'Gecko 1.9', '1.2', '1.5', and '2.0' flying around and I don't understand any of it. Your guess is as good as my guess. If you are keen to try out the new tab bar, then this should allow you to.

Clicking on that link comes with the following health warning taken from here:

We make nightly builds for testing only. We write code and post the results right away so people like you can join our testing process and report bugs. You will find bugs, and lots of them. Mozilla might crash on startup. It might delete all your files and cause your computer to burst into flames. Don't bother downloading nightly builds if you're unwilling to put up with problems.
The Summer of Code was a fantastic way to spend my summer. I would recommend it to anybody who is interested in being a software engineer because the experience I gained was really valuable. It has made me want to develop software when I graduate next summer.

The hardest thing about Summer of Code is getting a slot. There are thousands and thousands of people who apply for 600 slots. I spent ages on my application and made a great impression!

The first 4 lines of my dazzling application

I did spent about 2 weeks writing my application. Making sure that I made the most of my limited to Java experience but didn't lie about it; drawing attention to my previous team experience; trying to convince Mozilla that they should choose me out of 100 hopefuls. I bugged the hell out of #camino to make sure that my application might be something that Mike would be interested in working on.

All of that work to make my application great, to open with the benefits to the Molizza Community - bloody hell. This no doubt made it clear to the selectors for Mozilla that I was a student of the highest calibre.

Everybody who knows me will know that the real reason I took part in SoC was so I could get the t-shirt. It is awesome and presented below in 2 snapshots

The t-shirt itself

A rather handsome man modelling the t-shirt

I tried to convince Mike to take a photograph of himslef wearing his t-shirt - he got two, apparently! He hasn't e-mailed me yet so I guess he decided it was a totally naff idea.

There is an opportunity to visit the Google offices in London where Chris DiBona shall be hosting an afternoon for SoC students. While this could be a great networking opportunity, I am not sure if I can afford to go, or whether I have the time. It looks like it will be a 5 hour train journey to London and a 7 hour train journey back to Edinburgh.

Monday, August 21, 2006

A brief roundup

Mike and I met for the last time today as Mentor and student.

Mike believes my acheievements this summer are fantastic and that what I was trying to do - coming from a background of no programming experience on Objective-C and Cocoa - was not easy at all.

Mike said that, at best case, I might have been able to get a little bit further with the project. We spoke about the need to buy Stuart a beer to say thanks for all the hard work he put into reviewing my code.

Mike told me that even if I didn't get as much done as I would have liked to, there were students who did *much* less than I did.

I told Mike that I'd be staying on to continue the ever-waging war against the bug list in Camino. I also let him know that when I destroyed my laptop I almost gave up.

I normally transcribe our IRC conversations into prose, but I want to keep this bit as it was:

15:31 <@pinkerton> there's a lot of documentable work here, and a lot of growth and progress, and it's obvious that you learned even more than that just from the experience.
15:31 <@pinkerton> so i'd say it was a successful summer.

I'm looking forward to speaking to Mike, as a friend, in the future :)

I will be posting a longer and much more boring review of my summer experience so you'll probably want to avoid that when I post it next week ;)

Sunday, August 20, 2006

T-1: An overview as requested

Mike requested that I detail my achievements this summer.

  • I can (arguably) write Objective-C code.

  • I am becoming increasingly familiar with the Mozilla code review system.

  • I have designed and nearly implemented a new method for allowing people who use Camino to use a scrolling tab bar.

  • I have made headway into solving the dragging tabs issue.

  • I am now being included on newly filed tab related bugs, I think this means that the triagers think I might know some things about how tabs work in Camino.

  • I have become involved in the Mozilla community through the mailing list, IRC channels and MozillaZine forums.

  • I engaged in conversation with developers on different projects (Adium and PSMTabBarControl) to see how or if we could work together.

  • I produced a set of implemenation sketches based on feedback from the community and things that I'd been thinking about.

  • I submitted 13 work in progress patches on Bug 319777

  • I destroyed my laptop and lost a week's worth of work as a result.

  • I submitted 2 work in progress patches on Bug 160720

  • I started gathering some feedback from people as to how the second iteration of the new tab overflow management interface should look. This is part of my determination to continue my work after the deadline in order to see some of my code make it into Camino.
Things that I've achieved that are important to me, personally:
  • I am now more able to deal with project related stress. This will be very useful when it comes to writing my dissertation.

  • I now understand the value of backing up your home directory. This will also be very useful when it comes to writing my dissertation, and also as a good lesson to learn in general.

  • I am able to take criticism of my work and look at it as constructively as I possibly can. Stuart has spent most of the last 2 months reviewing my code submissions and even though he is strict and insists on doing things his way, he seems to be right and is always willing to discuss why and most importantly, he isn't rude about it.

  • I am able to work with a group of people who are in a different time zone, have different interests in the Camino project, have different opinions about which direction things should be moving in.

  • I now know that the first time you try something it's probably not going to be right and that things will probably never be right the first time round but that is no reason to be disheartened.
Things that I wish I had achieved:
  • I had managed to get a single positive review of my code, and in return, a super-review from Mike.

  • I had managed to make more progress on the tab dragging aspect of my project

  • I had managed to get some real usability feedback of my work from a larger group of people than Smokey and Stuart

Friday, August 18, 2006

Penultimate Meeting

After 3 weeks without having a formal meeting Mike and I met today to discuss what the end-game was for the project.

I showed Mike the image the I sneaked out yesterday showing the overflow menu coming back. He said that he thought it looked cluttered and that right-click on either of the scroll buttons would work. He liked the idea of using dividers to split up the menu list showing which tabs are overflowing on either side.

Mike was pleased to see that I've made some progress on dragging tabs and he is keen to see the work that I have been doing between submitting WIP1 and WIP2 of 160720. There are some cute problems associated with |shouldDragFrom| so I'll need to get some pencil and paper out to sort it.

I've got to plough through lots of work this weekend but Mike believes that there should be a middle-ground compromise of reaching the immediate deadline and thinking about my work over the longer term of getting the code into Camino.

We have set a meeting for Monday at 9AM EDT to have a final mull over the project. I've got to write a summary on my blog this weekend of what I have achieved and learnt this summer, where I have made mistakes and what we can take from this whole experience.

I had some concerns about today's meeting because it has been a long time since we had spoken, but it turns out that I really do just worry about nothing most of the time.

Thursday, August 17, 2006

T-4: A sneak preview

This pop-up menu is only visible when tabs are overflowing, it allows quick access to any tab and also provides a contextual overview of all of your tabs.

Tabs above the first divider are overflowing to the left, tabs after the 2nd divider are overflowing to the right. This is just a little sneak peak because there are still some interesting problems to iron out before I could even dream of showing a video. A massive thanks to James for suggesting the dividers idea in the comments.

The buttons at either side are capable of showing their state - they are greyed out when it is not possible to scroll any further in that direction.



After I properly hack the code relating to selecting a menu item, the tabs will slide to show this tab in the tab bar.

I am much happier with the interface that I am now working on.

I'm off out to the pub to have a birthday beer with my friends.

You can make statistics tell you whatever you want! (Camino almost has the same 'market share' as Safari!)

This information is based on the previous 1,000 visits to my blog

Safari: 26.5%
Camino: 26.1%
Firefox: 23%
Mozilla: 10.8%
Internet Explorer: 7.8%
OmniWeb: 2.2%
Opera: 1.4%
Galeon: 0.1%



We all know that statistics can be skewed to mean different things.

You could probably say that these show that most people who are reading my blog are reading it using a Macintosh - Safari + Camino + OmniWeb = 54.8%.

You could also say that Gecko based browsers are the most popular - Camino + Firefox + Mozilla = 59.9%.

All that I am going to read into is that there are nearly as many people using Camino as there are using Safari and that makes me smile.

Happy birthday

I am 23 years old, time to get back to work.

Wednesday, August 16, 2006

T-5: New proposal for approach to overflow management and tab dragging

A more solid proposal for how overflow management and tab dragging could work in Camino in the future. I've spent a lot of time this summer working on ideas that were never really well set, but I've done a lot of listening and this almost feels like what people are expecting to see

An overview



When you open up too many tabs to fit in the tab bar then overflow management will change the appearance of the tab bar as shown above. This new tab bar has a set of pop-up menu buttons - one at either side - and a set of scroll buttons - one at either side. This allows people who use tabs heavily to retain their access to the pop-up menu that they are used to, or for casual users to use the scroll buttons like they would in Finder.

The pop-up buttons

The pop-up buttons at either side behave exactly as the single pop-up button currently behaves in Camino, with a few extensions.



When you click on a pop-up button it presents you with a list of tabs that are overflown at that side. This keeps a sense of position in the tab bar over the currently visible tabs. If you click on a tab from the pop-up menu then that tab is made either left-most or right-most in the tab bar - this depends on whether or not you click on a menu item in the left or right pop-up menu respectively.



As a result of selecting the tab at the bottom of this list you have selected to make the first tab left-most. One of the complaints I have received with regards to what I was working on was that it was difficult to tell whether or not you could scroll in a direction anymore because the difference between an active and inactive button is not always obvious.

An attempt to deal with this is to remove the pop-up menu button and scroll button from the tab bar if there are no overflown tabs in that direction. I believe that this goes some way towards eliminating any such confusion.



The scroll buttons

The scroll buttons allow you to slide along the tabs to change the tabs that are currently visible in the tab bar. You can click and hold the mouse on a button and the tabs will continue to slide in that direction until you release the mouse, or, there are no more tabs left to slide.





Dragging tabs

Dragging tabs is something that people have been asking to be able to do for years. The way that is is done in the bookmark bar does not give you much feedback while you are dragging and plans are to make tab dragging more interactive.

To drag a tab you can pull the tab out of the tab bar. This will cause the surrounding tabs to slide to fill in the space that the tab you are dragging is leaving.



If you want to drop the tab within the current set of visible tabs then just drag it back into the tab bar and this places that tab where your mouse pointer is located at. This happens while you are dragging the tab, letting go of the tab finalises the placement. Pressing escape will allow you to change your mind and the tab will go back to where it was before you started the drag.



Dragging to a totally different part of the tab bar

If you want to drag a tab from it's current location to a totally different part of the tab bar then you can hover over a scroll button with a tab image dragging. This will cause the tabs to slide in that direction until you find where you want to put your tab.



When you have found where you want to put your tab, move the mouse pointer away from the scroll button and drag it into the tab bar to place it there. Easy.





One of the problems with dragging is that if you have access to a pop-up menu and a scroll button you might think you can drag and drop into the pop-up menu. That is not possible using Apple's implementation and I've already spent the summer twisting the way that tab view items work so the thought of twisting pop-up menus is daunting. In short, you will not be able to drag a tab into a pop up menu until Apple support that.

Some questions:

  • Is the UI too clunky having both a pop-up menu button and a scroll button? Would it be better to have a scroll button that allowed access to a pop-up menu using a right-click or a Command-click?
  • Are there any really obvious defects in this design that I just cannot see because I've spent nearly my whole summer working on it?

I'm sure that you can see that I am pretty good at Photoshop. I know all the best tricks and even managed to make my images look like I did them using pen, pencil, paper and blue-tac. Blogger crashed on me twice while writing this post so I'm a little bit challenged for patience right now.

Hope to receive some really useful feedback so that what I am now working on will be what people expect to see in Camino.

Edit

After some great feedback, I'm looking at this...

When tabs are overflowing there are 2 buttons at either side which show an enabled or disabled state depending on whether or not you can scroll in that direction. There is also a pop-up menu at the far side of the tab bar which contains a list of all the tabs that you have open.



When you click on the pop-up button the tick represents that tab that is currently selcted, as you can see, the tab with title "tab2" is the selected tab.



If you select a tab that is not currently being shown in the tab bar then the tabs slide to show this tab in the tab bar. Perhaps in the middle as has been suggested.



Tuesday, August 15, 2006

T-6: Almost dragging between windows, propsed detailed plans for new tab overflow interface nearly ready

I have spent most of the day battle with trying to get a deeper understanding on the NSDragging protocols. When a user drags a tab from one window and into another the tab needs to be simultaneously removed from the source window and added to the destination window.

I could remove the tab from the tab bar when the user drags it out the bar, and then add it into a tab bar when a user drags it into a tab bar, or create a new window if the user releases the mouse button when they let do of the tab when they are not in the tab bar. Somebody just pointed out to me that they would expect this to remove the tab item.

Any thoughts?

Monday, August 14, 2006

T-7: Wedding (Off topic), Dragging, Cheque

The wedding was quite the event. The bride looked beautiful, I've never thought that brides looked beautiful in photos, but in real life they are stunning. She was so nervous that she had tears rolling down her face. I had to work hard to keep the stiff upper lip.

We had a buffet which was nice because it meant that you got to eat what you wanted instead of what somebody else thought you might. A waiter spilt a bellini all over me as soon as we sat down at the table so I had to go and change into ... jeans and a t-shirt. How shameful! I washed up my suit jacket as best as I could so I could wear it over and still look a little bit smart. The father of the bride told me that it was alright and I still looked smart so that was good enough for me.

People in England can smoke indoors, this was quite a strange thing because we have had a smoking ban for nearly 6 months now. Also, the English don't have ceilidhs (from what I was told), they have discos. I couldn't really get into the disco but I love nothing better than a ceilidh. We got a bottle of wine from the bar and it tasted like acid. We had to mix it with lemonade to make a punch.

I rewrote the tab dragging patch. What I wrote on Friday was total nonsense and this morning's offering was much better. I am writing a custom image for the user to drag, but suspect that this will be an iterative process because I can't see exactly how to get what I want but can easily create a transparent rectangle with borders. The patch now supports dragging to arbitrary places and should support dragging between Camino windows shortly.

I received my midterm paycheque from Google today and cashed it with my bank. I was pleased with the greater level of communication that LH engaged in with us during the issuing of this cheque and might even send her an e-mail to let her know that it is appreciated.

I've asked for a meeting on 28th August to have some post-project chat with the Camino team. It is important to talk about things when a project is over because there are always lessons to be learned.

Friday, August 11, 2006

T-10: Tab dragging WIP demonstration

Without further ado,

Tab dragging first demonstration (Yay!)

Things worth noticing:

  • Dragging favicons is still different to dragging tabs
  • Dragging a tab does not affect the state of the information inside the tab - I have shown this by dragging a tab that contains some text in the Google search field. This works for audio and video too (I love Ze Frank)
  • Things might look a little bit slow to react. I think that is because I'm still developing on a 700MHz G4 with 384 MB RAM.
Things that I might appreciate feedback on:
  • When should tabs switch position? As soon as the mouse pointer is hovering over a different tab? When the mouse pointer is more than a certain % across the tab you want to move it to?
  • How much animation does this need to become a useful tool? Does it need any animation at all?
I have found it quite difficult this week with Mike being away at WWDC, I wish I was at WWDC.

I am going to a wedding this weekend (not mine, don't worry!) so I shall return on Monday and sit infront of my computer until the end of SoC. There might even be some time for sleeping and eating and washing.

PS I am super scared of submitting my patch to BugZilla because I know that it is hacky and that Stuart will roar at his computer screen when he reads it.

PPS Sorry to the people who read all of my posts for the whiney state of affairs that you have had to put up with recently, it's full steam ahead from now on.

Thursday, August 10, 2006

T-11: Stop cheating, Desmond.

I noticed that the way I was dragging tabs was totally cheating and so I've had to go back to the drawing board to try and do it correctly. I had a massive panic about having to store entire tab view items because that would be a nightmare that I'd rather avoid. I think I can do it using the index of that tab that a user starts their drag from. I'll find out about that tomorrow.

I went out for coffee with some friends this afternoon. One of them asked me if it was weird to be outside with real people. I've not done much of that since I decided that I wanted to make some extra work for myself and poured juice all over my laptop.

A little snippet from IRC that made me laugh:

23:36 < froodian> !seen ardissone|away
23:36 < thebot> ardissone|away was last seen 17 hours, 58 minutes and 43 seconds ago, saying '!seen froodian' in #camino.

Wednesday, August 09, 2006

T-12: Mostly rambling today

There was no T-13 because I had a super mega headache and only worked in the afternoon.

As everybody knows it takes at least an hour in the morning to read your e-mails, everything that you check everyday in your favourite RSS reader, and your favourite Web 2.0 site (this one takes too much time). Then all of a sudden it is 10.30am and it is time for coffee. Since you make your coffee from a coffee machine, you like to take some time to really enjoy the experience. After you come down from the shakes of your stronger-than-something-strong-coffee.

Then you start to watch Ze Frank and then it is 11.30 and you've not even opened XCode yet. But it is alright because you've been thinking about the mountain of code that you need to write. You've got loads of ideas about stuff but unfortunately the code base you are working with is soo complicated sometimes you struggle to find where you need to start.

I've been having fun with the NSPasteboard seemingly losing the tabs that I place in it while I am dragging them. This didn't happen 2 days ago so I must have done something stupid between then and now. I've also had some fun playing with NSAnimation and NSTimer classes, but these ventures have not been very successful. It's hard to learn how things work without toying with them to understand them, but I've not really got much time left for understanding.

And so the daily grind continues.

Monday, August 07, 2006

T-14; WWDC

14 days to go and still soo much work to do.

WWDC is happening today. I hope they release new Mac Minis, I've been waiting for Revision 2 to buy one.

I had a great conversation with Stuart Morgan last night about scrolling tabs. Dragging tags is nearly there, I just have some peculiar problems. Dragging tabs doesn't work with overflowing tabs yet because the mere thought of dragging from a NSMenu into the tab bar makes me wince.

I'm preparing an e-mail to send to Jon Hicks to get his thoughts.

I'll be posting a video demonstrating draggable tabs within the next 48 hours.

Thursday, August 03, 2006

Re: Disaster

I have been quoted £719 to repair my MacBook.

£432 for a new logic board
£90 for 2 new 256MB sticks of RAM
£75 for a new top
£62 for a new Airport Card
£60 for delivery.
I didn't even catch whether or not this price includes VAT or not, eek.

The lesson to be learnt here is do not drink anything near your laptop. But that was pretty obvious anyway.

I have almost got tab-scrolling back to where it was and tab-dragging is nearly back to where it should be too. I'm just having a bit of a mental block when it comes to dealing with resizing the window programmatically.

Nearly all of the tab-dragging code has been re-done and it now makes much more sense. I've taken Stuart Morgan's comments onboard and implemented them. However, as a result, I've touched many more files than I had before.

I promised #camino that I'd submit tab-dragging tomorrow evening so I had better get back to XCode.

Tuesday, August 01, 2006

Paris!

This will be the only post that I make that is unrelated to GSoC.

I have spent the last 4 days in Paris on my summer holiday.

I visited the Notre Dame Cathedral and was overwhelmed by the unbelievable architecture in the building. It was quite a spiritual experience, complete with a singing choir.


I visited Musee de Louvre and found their diverse collection of art fascinating. The Mona Lisa is not tiny, contrary to what many people say; the Venus de Milo was impressive, as was the whole collection of French sculpture; the Egyptian collection was fantastic, there was even a mummy! I could have spent days in the museum...


I went to the top of La Tour Eiffel and was almost sick when I looked down and saw high up that I was. There was no queue and I walked to the 2nd floor, which I regretted about half-way up! I also visited the Trocadero and took some photographs.


I met a friend and we had some coffee, sushi, and a bottle of Petit Chablis. The wine in France was fantastic and very well priced!

I didn't see L'Arc de Triomphe, which was disappointing.

I ate frogs legs, which have the same texture as chicken; fresh crepes which were amazing; far too many pain au chocolat; and drank lots of wine.

I will certainly go back to Paris - time and time again.

Wednesday, July 26, 2006

Disaster.

I spilled a full bottle of Lucozade over my MacBook and it immediately shutdown. I had no backup of my work. I had not committed my work on tab dragging to BugZilla.

I only have an iMac G4 700Mhz with 384MB RAM to code on until this has been fixed. I may aswell be coding on a BBC Computer.

Wednesday, July 19, 2006

End of 2nd month assessment

Shortly after my first end of month assessment I submitted my first patch to BugZilla. On reflection is was a disaster and the code was nowhere near it needed to be. At that time I was naive enough to think my patch would see r+ approval by the end of that week. I am still working on this patch and iterating it. I am currently on my 4th formal submission and things are getting closer to being feature complete. There are still some huge problems with the design of the code but I am working with the close reviews of Stuart Morgan, Nick Kreeger, and Bruce Davidso to improve things.

I posted a video to show the people of the world exactly what Camino was getting for it's money. It sparked quite a lot of discussion between people on IRC and people in the Comments. A lot of this discussion was negative and certainly detrimental to the progress that I have been trying to make. I had to block out most of the 'community' for a couple of weeks because I was hearing was that what I was doing was a massive mistake and that people did not want it. I guess these problems were me own doing since I had been very keen to hear what people thought about things, I just struggled to deal with all the negativity.

(This feels like something I would post to LiveJournal, if I had an account)

Pink and I agreed that it was time to get some work done on the 2nd milestone - dragging tabs to re-arrange them in the tab bar. Progress on dragging tabs has been terrible in comparison to progress on the scrolling-tab bar. I tried working on scrolling tabs in the morning and dragging tabs in the afternoon which was a complete disaster.

I also probably made a mountain out of a molehill with respect to receiving my pay cheques from Google. I received my first cheque the other day. The cheque was dated 20th June 2006 and the date it was sent (dated on the parcel) was 12th July. It arrived on 17th July. I don't know what the cheque did between 20th June and the 12th July, I just hope it doesn't take that long for the 2nd cheque to arrive. I don't really feel it is a good idea for me to talk negatively about the hand that feeds so I'll cut short this part of the assessment.

I finally have a Safari Bookshelf Account. We are able to take out 10 books at a time, sadly nearly all of the books that I have any interest in taking out are books that I have already had to buy to learn Objective-C and Cocoa. I'm sure that with nearly 4,000 books to choose from there will be other things that interest me. It is actually quite nice of O'Reilly to give us this for free, so a big thanks to Chris DiBona at Google who seems to have spent quite a while negotiating it for us.

I showed off a new work in progress demonstration much to the delight of Pink. It felt good to get some more code out of the door and into the BugZilla torture chamber. I only need to add 3 more features to make tab-scrolling feature complete but they are by far the most difficult things to do.

I am very concerned about the progress that I have been making on draggable tabs. I need to stop working on scrolling tabs during the day and really focus my efforts of draggable tabs. I only have one more month to reach the targets of this project and I honestly cannot see it happening at the moment. Considering how long it has taken me to get my scrolling tabs patch through BugZilla to a stage where people think it might be a couple more iterations away from R+ which is fantastic to hear, but also leaves me really concerned that draggable tabs will not land on time and I will fail to reach the goals of my project.

I need to pull myself together and start working harder. There would be nothing worse than to have come this far and not acheive what I set out to do.

(I will probably re-read this later on today and re-word some things or cut complete sections / add new sections)