Search Results: "pm"

15 February 2010

Gustavo Noronha Silva: WebKitGTK+, and the Page Cache

So, one of the things I get to do during work hours for Collabora is to contribute code, and do maintenance tasks for WebKitGTK+, and have been doing so since early last year, working on all kinds of things, from improving the network backend to handle the real-world web, to fixing scrolling problems, while reviewing patches from the many awesome developers who have been joining us (more on that later =D). One of the big features I have worked on this past month or so, along with Xan Lopez is the Page Cache. The page cache is a feature of web browsers that makes going back, and forward between pages in the same view very fast. It s better explained in this post, but to summarize, the idea is that instead of destroying all the work you have done since downloading the resources, and having to reparse/rebuild the structures the view uses to display the page from the cached resources, you hit pause on the page, and store the whole thing as is, and when coming back to it, you just hit play. You can see in the video two instances of Epiphany, one with the page cache enabled, one with it disabled. Easy to see which was has it enabled. Thanks to KiBi for the suggestion regarding a page that shows this easily =D. <video controls="controls" height="302" src="http://kov.eti.br/media/webkit/page-cache.ogv" width="450"></video> We initially thought we had this feature enabled, since our initialization functions (that exists since before the current maintainers were involved) did setup the number of desired pages in the cache, but during the hackfest we held in December we found out we were fooled all this time. Enabling the page cache does make going back faster, but also made lots of things become unstable and crash. Since then, we have been working on figuring out all the problems, and fixing them, using help from adventurous users of in-development software ;D. I believe we re now at a point in which I can happily declare the GTK+ port has a working page cache in trunk! If you re interested in the nasty details, bear with me! Let me go back in time a bit, and show you what problems we had. First, some background: the GTK+ port deviates a lot from the other ports when it comes to scrolling. This is because, when designing this part of the port, Holger Freyther had a very nice idea in mind: that the WebView should be a first-class citizen GTK+ scrollable widget. Meaning it would use GTK+ s adjustments for scrolling, and be able to interact with any parent scrolling widget, be it a GtkScrolledWindow, or a MokoFingerScroll. We cannot just throw away all the rest of the scrolling code in WebCore, though, that deals with all the details related to interacting with the DOM, and JavaScript code. This means our WebView contains adjustments that need to be set, and unset on our port s version of WebKit s own representation of the view, called the FrameView, to interact with it, and to get updates on the bounds of content, and such. For every load, in the non-page-cache case, a new FrameView is created, the previous one is destroyed - this means we need to set the adjustments on every load. The problem starts when you have the page cache enabled, because the code path used to do what is called commit the load of a cached page (that is, start replacing the content that is currently being displayed by the one that should now be displayed) is completely different, and we were not setting the adjustments on this new view, so we started with that. But all was not well. We were still having weird behaviour with scrollbars disappearing, and becoming the wrong size, and worse, crashes when back was hit. We then started investigating in more detail how it is that the page cache does its magic, to try and figure out the source of all evil. It turns out that when you leave a page that can be cached, the existing FrameView is no longer destroyed - it is stored as is in a CachedFrame to be restored if you go back, and a new one is created for the new page. This was having the undesired effect of having the adjustment be set in more than one FrameView at once, causing all kinds of (predictable, after we knew for real what was going on) unwanted effects. Thus, we reworked the code to make sure the adjustments are only ever set in one FrameView at once, making sure they are unset when the FrameView is being frozen, and reset when it s being restored from the page cache. Last, but not least, it was discovered that going back to a page that contained resources with data: URIs (such as Google results pages which contain a small number of image hits) also caused a crash. This was because our network backend was not storing the data: URI in the ResourceResponse objects it fed into WebCore. The page cache relies on those responses to recreate the requests it uses to artificially replay the load when restoring the page from the page cache, so we fixed that as well. What can be taken from all this? Building browsers is a lot of hard work! I can t think how we could deal with this level of complexity without the awesome testing suite of WebKit. The good news is all of those issues I talked about in this post are now covered by the automate tests that run as part of the normal buildbot cycle in our bots, so we re covered for the future, at least for these specific problems =D.

Russell Coker: Links February 2010

Popular Mechanics has a good article about 911 [1]. Experts in all the relevant fields were consulted to debunk popular myths. It s an old article but I hadn t read it before and learned a lot. Former CIA analyst Raw McGovern and former FBI attorney/special agent Coleen Rowley, a colleague in Veteran Intelligence Professionals for Sanity wrote an interesting article titled Why Counter-Terrorism Is in Shambles [2]. Such sanity from people who are associated with the intelligence industry is unusual. Gizmodo has an amusing and informative poster about the true risks of airline travel post 911 [3]. Reuters has an interesting article about drug smugglers using Gulfstream and 727 aircraft to smuggle cocaine from South America to Africa [4]. They claim a link to al Quaeda, but such a link seems tenuous from the evidence provided, it does seem reasonable to claim that groups who claim affiliation to al Quaeda are involved in smuggling anyone can claim anything really. An 8yo boy is on the TSA terrorism watch list , he regularly gets frisked when traveling by air [5]. His mother had a security clearance to fly on Air Force 2 when Al Gore was the Vice President, any sane security system would look at the parents rather than an 8yo child children of that age aren t going to independently become terrorists. The Dallas Observer has an interesting article by Kimberly Thorpe about how to beat debt collectors [6]. Apparently most debt collectors break the law in some way and can be sued for damages with a typical settlement of $3,500. Some debtors are suing multiple debt collectors, after one debt collector is successfully sued the debt is passed to another collector who also breaks the law. What I really like about this is that the community of people who sue debt collectors keep the industry honest and protect the majority of the population who don t have the time or interest for engaging in law suits. Read Write Web has an informative article about SourceForge being forced to deny access to people in Cuba, Iran, North Korea, Sudan and Syria [7]. A problem for free software developers is that we often don t know the location of the people we collaborate with so it s best to be as open as possible. This means that the US is not a good place to host servers, probably some part of the EU would be better. Also this sort of thing makes the field of free software development less welcoming to US citizens. Did the congress people learn nothing in high-school? They should know that someone who starts a campaign of ostracism may end up being in the small group. Google is developing a new Native Client (NaCl) system that seems to be like Microsoft ActiveX [8]. I can t imagine this doing anything that couldn t be done with Java, it seems most likely to just marginalise the less popular platforms which isn t in the best interests of Google. Kevin Kelly of the Technium wrote an interesting post about 1000 true fans [9]. The concept is that if you are doing creative work you only need 1000 dedicated fans who buy everything you sell to make a living. If you make $20 per year from each of the 1000 fans and you will earn enough to live. Make $100 per year from each of the 1000 fans and you will be earning more money than most people. The updates show that artists who try this aren t having much success yet, but the Internet population is still increasing dramatically PaxStreamline offers an innovation in commercial air-conditioning, apparently a significant amount of electricity is wasted on heating the air after chilling it excessively to remove moisture [10]. So instead of cooling it they use a liquid dessicant to extract the moisture. Ben Schwartz explains why you should never create files in H.264 or MPEG formats, unless you have a special commercial license then you (and your viewers) will all be liable for patent infringement for any type of commercial use [11]. Note that storing the data on a web site with Google adverts counts as commercial use. I wonder if all those digital cameras and mobile phones that create MPEG videos have appropriate licenses, maybe uploading a file created on your phone breaches the patent. J. K. Rowling (author of Harry Potter) gave an inspiring speech for Harvard graduates [12]. I particularly liked the following reference to her work for Amnesty International Choosing to live in narrow spaces leads to a form of mental agoraphobia, and that brings its own terrors. I think the willfully unimaginative see more monsters. They are often more afraid . Peter Eigen gave an interesting TED talk about the formation of Transparency International and the economic problems that are caused by corruption [13]. The Monthly Review has an interesting article about the failure of the US justice system [14]. The prison industrial complex has captured part of the US government, neo-liberalism is to blame. 59% of Americans agree that homosexuals ought to be able to serve in the U.S. military. But 70 percent believe that gays and lesbians ought to be able to serve in the military [15]. Apparently 11% of Americans think that gays and lesbians are better than homosexuals .

Julian Andres Klode: Maemo + Moblin = MeeGo = Failure


Today, Nokia and Intel announced the merge of Maemo and Moblin into the MeeGo project. This is sad, because it will end the era of the Debian-based mobile operating system Maemo and replace it with a system using RPM and probably some other evil stuff as well. In fact, dpkg & apt-get where two of my main reasons to buy the N900. And another question is why yet another name. Moblin was already a well-known name and they shouldn t have changed the name just because they switch the servers and add some Nokia developers. Furthermore, does this all mean that there will be no Maemo 6? What will happen to the Maemo users on the N900, will it be possible for them to use MeeGo? Maybe this is the time to start a new project, Debian Mobile. Debian Mobile would take the MeeGo experience and apply it to a Debian system. This would probably the best mobile operating system ever, being backed by Debian s large repositories with thousands of software packages. Filed under: Debian

William Pitcock: Multiple Sclerosis Reconnaissance Fat Young Girl

abg-(abc.net.au)-dalam Multiple Sclerosis is a disease of the central nervous disorder that weakens the immune system. A study showed that obese adolescent girls affected by MS have opportunities in the future. During the 40-year study of 238,000 women found that adolescent girls suffer from obesity at the age of 18 years had twice the risk of MS affected than teens of that age have more slender bodies. Fatty tissue which accumulates as a teenager allegedly memproduki substances that affect the immune system that triggers the possibility of MS. However, body size during the children and adults are not found in relation to risk of MS. Researchers have made a study report in the journal Neurology. Researchers still need to take further evidence to confirm these findings. Researchers from the Harvard School of Public Health used data from the nurses about diet, lifestyle factors and health. During the study, 593 women are diagnosed with MS, a disease caused by loss of nerve fibers and myelin sheath in the brain and spinal cord that makes nerve damage. Researchers compared the risk of disease with body mass index (BMI) or weight to height ratio, in women aged 18 years. Studies show those who have weight BMI 30 or greater at the age of 18 years had twice the risk of MS. Our results indicate that body weight during adolescence is very important in determining the risk of MS, said Kassandra Munger ScD from Harvard School of Public Health in Boston, as quoted by BBC News, Monday (9/11/2009). There are many studies that support that adolescence is an important time for the development of the disease, so what we found was associated with it, he said. He added that obesity prevention early adolescence is an especially important step in reducing the risk of MS in the future. Previous research has found vitamin D levels are high can reduce the risk of MS and the researchers showed that obesity associated with low levels of vitamin D in the body.

12 February 2010

Tim Retout: Facebook and XMPP

So Facebook Chat now uses XMPP. And the Empathy development version has some nice integration. This could mean that I can finally chat to non-Jabber using friends on a regular basis. It's been nearly four years since I switched from MSN to Jabber, and I think I lost contact with a lot of people. Facebook chat via AJAX is unreliable, and my visits to the site are quite irregular, so hopefully this will work around both problems. I for one welcome our social network monopoly overlords

11 February 2010

Michal &#268;iha&#345;: Preparing for Google Summer of Code 2010

It might be quite premature, but in phpMyadmin we've started our preparations for this year Google Summer of Code. This is basically just one of followups to the team meeting at FOSDEM, where we decide to apply again this year, but to try as hard as we can to be standalone project and not hidden inside of MySQL. We're grateful for participation in their project, however we feel it would be easier to manage if we're standalone project. So if you are a student who might be interested in participating, you can already browse our ideas list (this time PHP coding skills are not strictly necessary as I've given there a documentation improvements also) or come with your ideas and follow our student checklist, to see what you can do to get accepted (in case we're accepted to GSoC).

9 February 2010

Christian Perrier: Family DebConf

This year, at DebConf 10, I'll very probably have the pride to attend the conference along with my 22 y.o. son, Jean-Baptiste. JB began a 3 year cycle to graduate in electronics and industrial computing at Polytech'Paris-UPMC and is increasingly becoming more and more interested in Linux, programming and particularly low-level programming in embedded devices (as far as I can understand this stuff). As one can see, he's on his way to become a much clever geek than his dad. It then became natural for him to consider attending Debconf even though he's not (yet) involved in Debian. So, you folks will have to suffer having two bubulles instead of one. That should make a nice picture if Bdale and Elisabeth are there too..:-) See you in NYC!

Kees Cook: rng-tools with TPM

In Ubuntu, I uploaded an rng-tools that supports the RNG in TPM devices (my patch is waiting in Debian). This hardware is available on a bunch of systems, including several Thinkpads and the Intel Q35, Q45 and newer main boards. While most TPM RNGs aren t really heavy-duty hardware RNGs, they are at least a mild source of randomness. I ll be using an entropy key eventually, but for now, the TPM can supplement my collected entropy. /etc/default/rng-tools:
HRNGDEVICE=/dev/null
RNGDOPTIONS= hrng=tpm fill-watermark=90% feed-interval=1
After it s been running a bit:
Feb 8 19:10:51 linux rngd[13143]: stats: bits received from HRNG source: 6180064
Feb 8 19:10:51 linux rngd[13143]: stats: bits sent to kernel pool: 6166144
Feb 8 19:10:51 linux rngd[13143]: stats: entropy added to kernel pool: 4624608
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2 successes: 309
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2 failures: 0
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2(2001-10-10) Monobit: 0
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2(2001-10-10) Poker: 0
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2(2001-10-10) Runs: 0
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2(2001-10-10) Long run: 0
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS 140-2(2001-10-10) Continuous run: 0
Feb 8 19:10:51 linux rngd[13143]: stats: HRNG source speed: (min=5.207; avg=6.145; max=6.200)Kibits/s
Feb 8 19:10:51 linux rngd[13143]: stats: FIPS tests speed: (min=66.925; avg=75.789; max=112.861)Mibits/s
Feb 8 19:10:51 linux rngd[13143]: stats: Lowest ready-buffers level: 0
Feb 8 19:10:51 linux rngd[13143]: stats: Entropy starvations: 308
Feb 8 19:10:51 linux rngd[13143]: stats: Time spent starving for entropy: (min=3150263; avg=3178447.994; max=3750848)us
And now the kernel entropy pool is high:
$ echo $(cat /proc/sys/kernel/random/entropy_avail)/$(cat /proc/sys/kernel/random/poolsize)
3968/4096

8 February 2010

Olivier Berger: New inter-forges discussion list on planetforge.org

You work on developing a software forge, you re an admin for a software forge, or a project administrator. Join us and discuss (in english) forge matters on discussions@planetforge.org, to try and improve communication, sharing, reuse and interoperability among various hosting platforms, and collaborative development tools. You may prefer joining the PlanetForge RSS aggregator if you blog about forges (feel free to add it to your preferred RSS reader).

7 February 2010

Michal &#268;iha&#345;: Big changes in phpMyAdmin future

The main reason for me to go to FOSDEM this year was to meet with other phpMyAdmin developers to be able to discuss some things personally rather than on mailing list or irc. We had quite a big list of topics to discuss and besides discussed some other things which will be made public at some point later. The good thing is that both my proposals were accepted, so we're about to migrate to Git, what will make our development less blocked by slow SourceForge.net VCS server (what mostly affected people sitting in Europe). The migration will happen shortly, I expect to provide testing repository during next few weeks and we will switch for real once all developers get used to it. The other important change is to switch our translation system to Gettext. The primary motivation behind this is to allow translators to use wide range of standard tools available for po files and also to allow web based translation using Pootle server in similar way we currently handle documentation translation. I have already prepared the migration plan to Gettext, but it will not happen before migration to Git as I want to benefit integration of Pootle with Git, what makes translations directly commit to the local repository.

6 February 2010

Martin F. Krafft: Of waterfalls and communication culture

I got involved with open-source software before I learnt about software development in a university course. Naturally, when my profs tried to teach the waterfall model to me, I couldn t take them too seriously back then. After all, requirements specification design implementation verification maintenance is not really in line with the principle to release early, release often. Furthermore, since water cannot flow uphill, the waterfall model fails to represent development cycles, as they naturally appear, even in behemoth, ancient software nightmares. And yet, when embarking on a new project, I do tend to find myself first thinking about the big picture, instead of churning out the code. I am certainly not the best coder out there, and it might well be that I could benefit from learning to break down problems to get an earlier start on the implementation of components. However, I maintain that avoiding the waterfalls and engaging directly in extreme programming, agile software development, or pair-based approaches right away is not the answer. Rather, the best approach should probably involve a certain level of conceptualisation before code is produced. I am a big fan of test-driven development, and I like the scrum method for the very reason that it involves talking and challenging ideas (although I wouldn t follow the method down to the book). I like to think about trickles in the mountains where water droplets joyfully jump around. * * * When Glyn Moody spoke in his LCA2010 keynote about challenges we (as in society) face, and how open-source seems to have many answers, he dropped the following gem, which spoke right to my heart:
Twitter is the release early, release often principle applied to thinking.
By this simile, journal articles are produced according to the waterfall model. This may well be why they are usually outdated at the time of publication. Microblogging (like Twitter), on the other hand, is primarily used to publish stuff before it s ready, and which would never be published otherwise. With journals on one end, and microblogging on the other, I think the epiphany is found in between as with software development: web logs web applications that allow for easy publishing by anyone (which is a different problem not to be discussed here). Since articles on those platforms usually have at least a title and a body, they require just a little bit more thought than 140 characters of contracted brain farts, spilled into the world faster than it takes one to stand up, stretch, and sit down again. * * * Microblogging seems to be in line with where we re heading: more information, more self-promotion, more access to more people, and all that with lower barriers of entry. It s hard to argue against a trend, but I think we ve taken a wrong turn somewhere. The one specific instance of content is no longer relevant, and there is no more time in the day to read elaborate treatments of subject matters. Instead, what seems to prevail is a constant flow. This flow threatens to replace actual thinking and discourse, both of which require reflection and time a scarce resource used up by ever new, fast-flowing media. It seems to me that those who immersed in this flow are unable to get out, as if sucked in by a maelstrom. I ve seen people enter serious withdrawal within hours of not knowing what s going on in the world. One could miss out on something. If you re following people on one of those microblogging platforms, I challenge you to spend the weekend offline and when the urge hits, ask yourself what you are actually missing. I mean what you are really missing, and by that I mean anything other than the cozy buzz and hum of entertainment washed upon you, preventing you from having to think about what you could be (actively) doing instead. I hope it s not a lot. For else, I fear that this means that future generations will be stuck with this communication culture, just like water droplets can t ever play in the mountain trickle again. NP: Sola Rosa: Get It Together

5 February 2010

Brandon Holtsclaw: My Friend Audio Business Converter Product

Audio information can be stored in a wide variety of formats, which vary in sound quality, file size, compatibility, etc. There are lots of extensions that cannot be read by some players. For this reason, many audiophiles are often confronted with compatibility issues. There are lots of audio conversion tools available on the web, but there are much more formats out there than they support. Most converters support only a few extensions and therefore they fail to satisfy users requirements.

Finding a high quality mp3 converter
has long been a challenge. Happily, software developers have designed Factory Audio Converter. It converts audio files to MP3, WAV, WMA, OGG, APE, MP4, FLAC, MPC, AAC. The array of input formats is even broader: MP3, RA, RMM, RAM, RPM, RM, RMVB, WAV, OGG, CDA, APE, APL, MPC, MP+, WMA, FLAC, AAC, M4A, MP4, TTA, OFR, SPX, WV, XM, IT, S3M, MOD, MTM, UMX, AMR, MP3/OGG compressed MODs, MIDI, VQF, AU / SND, PAF, IFF, SVX, WAV, SF, VOC, W64, MAT4, MAT5, PVF, XI, HTK, CAF. If you are looking for a flexible audio conversion utility, this one is the best!

Good audio converters feature batch mode. If you have a lot of wma files and would like to save them as mp3, you need a fast-working and powerful wma to mp3 converter. Factory Audio Converter can convert hundreds of files within seconds. If you have gigs of music on your PC, you can set the utility to convert all of them and turn in. You will get up in the morning to see all your files saved in your preferred format!

By aid of Factory Audio Converter, you can convert wma to mp3 right from the desktop. Once installed on a PC, the program integrates into Windows seamlessly, and Convert to option appears in the right-button menu. All you need to do is right-click on a wma file and select Convert to. You can also run Factory Audio Converter from within other programs via command line.

Advanced users do not only want toconvert wma to mp3
. They want to do it easily! User-friendliness all but heads the top-importance list of characteristics. Factory Audio Converter has a robust and intuitive user interface. It does not take any background to understand how to use it. The program wizard will guide you through the whole procedure. It will help you select your settings. You may either skip it and leave the default settings or specify your own settings. Sound quality will depend on your choice of bitrate, samplerate and channel.

The more new features a program has, the more likely it is to enjoy demand. Factory Audio Converter incorporates a built-in audio player and CD ripper. You can listen to your tracks prior to conversion and compare output and input files. The CD ripper will rip your CD files and help you save them on any type of hard drive. Factory Audio Converter permits you to change wav to mp3
and save a lot of drive space. Now you can use any portable player and listen to your favorite musicians any time, wherever you are!

You can buy Factory Audio converter at a price comparable to that of any other converter. However, few converters are comparable to Factory Audio Converter in terms of user friendliness and productiveness. <script class="owbutton" src="http://onlywire.com/button" title="My Friend Audio Business Converter Product" type="text/javascript" url="http://www.imbrandon.com/2010/02/05/my-friend-audio-business-product/"></script>

4 February 2010

Brandon Holtsclaw: More Women in Management, the More Profitable the Company

According to an article in theWashington Post, Weekly Edition, 9 by Katty Kay and Claire Shipman, companies that employ more women in upper level management are more profitable than those that rely heavily on male talent to run their businesses.

This exciting (but not surprising) news is not limited to the United States, but is true throughout the world.

And it s not only one study, but at least half a dozen, from a broad spectrum of organizations such as Columbia University, McKinsey & Co., Goldman Sachs and Pepperdine University, that document a clear relationship between women in senior management and corporate financial success. By all measures, more women in your company means better performance.

One of the points made in the Washington Post article was that men may naturally be more prone to risk taking and competition (thanks to the hormone testosterone), but women are better collaborators and better at achieving long-term results.

So men, if you want your businesses to flourish, hire and promote more qualified women. The results are in, the statistics speak for themselves. Men are the hares and women are the tortoises, who will win the race steady and slow. <script class="owbutton" src="http://onlywire.com/button" title="More Women in Management, the More Profitable the Company" type="text/javascript" url="http://www.imbrandon.com/2010/02/04/more-women-in-management-the-more-profitable-the-company/"></script>

DebConf team: Registration now open for DebConf10 (Posted by Jimmy Kaplowitz)

Registration is now open for DebConf10. The dates of the conference are August 1-7, 2010, with arrivals at our group lodging permitted as of 3 PM on July 31 and departures required by 11 AM on August 8. The conference is preceded by DebCamp from July 25-31 including the arrival day. To receive announcements regarding DebConf and DebCamp, please subscribe to the debconf-announce mailing list. In order to avoid spamming Planet Debian with a long post detailing registration procedure, travel sponsorship, DebCamp info, and cost of attendance, please instead see the DebConf10 website s registration page to answer all your questions. As always, feel free to contact the DebConf team via email or IRC for answers not provided by the website. DebConf10 is going to be great. We re looking forward to seeing you in New York in August! the DebConf team

3 February 2010

Barry Hawkins: The Agile Business Analyst

Agile Business Analysts? I have recently been fleshing out my thoughts on the role of business analysts in an Agile team. This is something I have historically addressed on a case-by-case basis with clients, but when thinking about it last week at a client site, I realized that I do have a general take on how the role and responsibilities of a business analyst change when a group moves to using an Agile process. Per the usual, I ll be using Scrum as the example process where needed. The Classical Roles Historically the business analyst has had two primary roles. In a process where cross-functional communication and collaboration are minimized, these roles are essential. What little communication that takes place between the business and the software development teams purporting to serve them passes almost exclusively through one or more business analysts. I view the business analyst in a phased development approach as having two roles; Translator and Gatekeeper. The Translator The business analyst is primarily tasked with taking the needs of the business and translating them into a written document that is then handed to the software developers and testers. This role s necessity is based upon some fundamental assumptions. First, programmers and testers are on the whole, too socially retarded to actually talk to the business persons and find out what they want. Second, the business is primarily viewed as being unable to focus its thought long enough to tell the programmers and testers what they need. Since a key value of an Agile approach to software development is to have individuals and their interactions be the driving force rather than processes an tools (see The Agile Manifesto), the obliteration of this role is a primary objective. The Gatekeeper Business analysts are also viewed the gatekeepers for requirements in classical, phased software process approaches. This is a somewhat unfair role, since they rarely have the authority to prevent business or technology changes, like a meter maid trying to stop an armed terrorist. It s even more unnatural since change always happens, so it s like the meter maid being assigned to an anti-terrorist unit with no additional training, authority, or weapons. The Agile Roles Some of the more extreme practitioners of Agile methodologies say that business analysts have no role in an Agile team. I disagree, provided the role of the business analyst is allowed to evolve. The roles I ve seen them take on as valuable members of an Agile team are Facilitator, Historian, and Journalist. The Facilitator A high degree of collaboration and interaction take place between business and technology in Agile Software Development. The business analyst can serve a critical need in these interactions, facilitating communication between business and technology and making sure that critical areas are being covered in an interaction. This can be a more fulfilling experience for an analyst, since they often talk to one side, then go to other to pass on the information, all the while thinking, Man, this would be simpler if you were both in the room with me at the same time. The Historian The business analyst s documentation skill is excellent for capturing significant information that often gets lost in a team of purely technical people. I have seen some great uses of business analysts in this area. One is to document the system that the team actually builds (not the big, up-front imagined system that is covered in a phased design stage). Another is capturing key technological and architectural decisions and the context in which they were made, so that when a group revisits certain items asking, Why in the world did we decide to do that? , they have the means to be reminded or informed why a particular path was chosen. The Journalist The business analyst can also be the team s journalist, making sure the latest information makes it out to all interested parties. One creative approach I ve seen at a client site is a business analyst who has a project blog. He posts entries after each meeting between the business and technology, documenting what new user stories were created (even scans in the story cards!), a summary of the discussions held, and documents any key decisions that might have been made. Oh, and he provides an excellent executive summary at the top that s suitable for anyone s review, right up to the CEO. Tell me you wouldn t love to have that guy in your Agile team.

Cyril Brulebois: G-I, part 2

Getting to X After having prepared a bunch of libraries, the idea was to get X in shape. I d like to thank Julien Cristau very much for his support all along the way, since I knew nothing about X. Basically the plan was to get: Not much to say about the former, it only pulled two additional libraries compared to what was previously udeb-ified: libaudit0 and libselinux1. Since security modules aren t the primary concerns in this exercise, --enable-xselinux quickly became --disable-xselinux and those dependencies went away. Both drivers were trivial to tweak, nothing really worth noting there. Once those 3 additional packages added to localudebs/ and to pkg-lists/local, the mklibs tool really wasn t happy with them during the rebuild of the netboot image, since the drivers are X plugins, meaning they need symbols which aren t defined in other libraries. Example:
No library provides non-weak EventSwapVector
Since the idea is to get something working rather than getting something perfect at once, d-i s packages/mklibs/src/mklibs.py (installed as /usr/bin/mklibs) was told to stop raising an exception, and to print a warning message instead. Rebuilding an image was then working again. It took some time, but finally it got noticed those packages were actually all installed in the initramfs, so there was no need to try and load/install them manually during the installation process, everything was there already, and it was sufficient to switch to VT2 to see the /usr/bin/Xorg binary. Some packages were still needed: xkb-data, and x11-xkb-utils. The latter also pulled libxkbfile1, but well, an additional library doesn t sound very scary. At this point, one has to try and run Xorg. The result was a black screen, and no means of getting back to another terminal, be it inside Qemu or VirtualBox. Troubleshooting X First idea: adding the openssh-server-udeb package to the image, and start sshd from there. But then one has to go through the missing config file, tweaking privilege separation, generating a host key, setting a password, etc. And for whatever reasons, it wasn t possible to access it. That s where the DebianInstaller/NetworkConsole page on the Debian Wiki came into play: it includes a few steps to get a working sshd within d-i, painlessly. So, X was actually starting properly, but getting a black screen is now the default. One wants X -retro to get the well-known old behaviour. From udevadm info --export-db, it looked like input stuff were missing, and indeed, udev-udeb doesn t include /lib/dev/input_id and /lib/udev/rules.d/60-persistent-input.rules. Since scp seems broken, wget from the host did the trick followed by chmod +x for the input_id file, otherwise that doesn t work so well. But still, there were some missing evdev stuff. And indeed evdev wasn t to be seen in lsmod, nor available to be modprobe d. That s where it became a little dirtier: wget and udpkg on mouse-modules-2.6.30-2-amd64-di, followed by depmod to make sure, and then modprobe was OK. A little udevadm trigger run to ensure udev was fully aware of the new situation, and restarting X led to a moving cursor there, as well as a working keyboard, since it was possible to switch between terminals! Prove it! Alright, I m proudly providing you with a screenshot: (Really, I ve never been so happy to see this fracking black-and-grey-grid screen. I kid you not!) If we forget about the very few network-console-related questions answered to get an sshd running, please note that the installation process is still just starting, the very first debconf question is still unanswered. Now, patching udev again so that udev-udeb includes the two mentioned files was almost easy (details aren t important anyway), while pulling evdev.ko module automatically was trivial, just a matter of adding such a line to a packages list (I picked pkg-lists/netboot/amd64.cfg):
mouse-modules-$ kernel:Version 
Which means one can now, out of the box: Next step Rework the Pango/Cairo/Gtk stack to use X11 instead of DirectFB.

2 February 2010

Craig Small: procps: Third time lucky

OK, ok, i got a chroot and pbuilder now. So that should, I hope stop any more FTBFS bugs about missing depdendencies.

procps got uploaded that fixes some important bugs, but mainly they were small fiddly things. About the most significant enhancement was pmap now has a real working -x flag. It looks a lot like some of the other pmap programs out there and shows the RSS and Dirty bytes per map. Let me know if its useful or not.

However there still is 48 bugs in the package, so if you're feeling game wander over to procps bug page and have a look around, but here are some more interesting ones, such as why would a process start time be earlier than the boot time? Bug 408879 has this problem

Now, a nice can of worms is in a Linux system, what is free memory? What should the "free" program report? Currently free just reports what it sees in /proc, but in Bug 565518 should the slab count be taken out? I certainly won't be making any Debian-specific changes here as you could get different numbers depending on your distribution, or even worse the age of you Debian system.

procps is also my first attempt at using git-buildpackage which I found very helpful. There was one problem with it and that is how it works with the quilt patch program. If the quilt patches are applied, git doesn't know this and says all the files have changed. I know its how these two programs are supposed to work but its a little annoying.
<script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script>

1 February 2010

Brice Goglin: Debian/X.org notes - Radeon KMS and DRI2 in experimental

Now that libdrm-radeon1 is in unstable, I just uploaded a snapshot of the radeon driver to experimental (xserver-xorg-video-radeon package version 1:6.12.99+git20100201.a887818f-1). So you may now get KMS and DRI2 working, assuming you have a recent kernel (I am running 2.6.32-trunk-686 here). This driver even contains some early support for r8xx boards. To check whether KMS is working, look for radeon kernel modesetting in dmesg. To check whether DRI2 is working, look for DRI2 in /var/log/Xorg.0.log. Make sure the radeon kernel module is loaded early (which means: don't let X load it late in the boot, otherwise you may experience this bug). I had to add radeon to /etc/modules and put options radeon modeset=1 in /etc/modprobe.d/. In the past, I also needed agpmode=-1 there but it didn't seem to make any difference with latest packages. Then, actual DRI2 support requires Mesa packages rebuilt against libdrm-radeon1. This is in experimental as well now. Look for libgl1-mesa-dri and other Mesa packages version 7.7-3. Don't forget that these packages are in experimental for a good reason, they may not work. But at least basic things seem to work fine on my Radeon X300 (rv370). And don't forget that the X team needs help, otherwise these packages may never make it to unstable...
(Permanent link)

29 January 2010

Joey Hess: xmonad layouts for netbooks

How a window manager with tiling layouts makes a 1024x600 resolution livable. I spend a lot of time in front of a screen, and for the past year I have used only my netbook. No desktops, no laptops. Just a cheap $200 computer that is nearly a kid's toy. The most challenging thing about this is dealing with the 1024x600 screen resolution. When I moved to this screen from something with many more pixels, it at first seemed very cramped. After a year, I think that the most important part of coping with the small screen is the flexability and customizability of layouts provided by the Xmonad window manager. In this post I will explain a few layouts I have developed for fitting specific tasks onto the netbook screen. (I assume that you know maybe 0.1% of Haskell (about what I do), and can read Haskell code without having a brain aneurysm.) web browsing
It's important that the web browser have as few toolbars and other cruft as possible, as horizontal space is especially at a premium. I've configured both Epiphany and Firefox to put everything in one tool bar. But now I use Chromium, which comes pre-configured that way.
What the netbook is designed for. You just want a web browser, taking up the full screen, and with its own tabs. So far, so easy: that's Xmonad's Full layout. But, you sometimes want to see two websites side-by-side. This layout accomplishes that, allowing the sizes to be adjusted as needed. It also uses Xmonad's Magnifier to zoom the smaller window when it's focused, which is useful if you briefly need to see more of a web site.
mySplit = magnifiercz' 1.4 $ Tall nmaster delta ratio
    where
        -- The default number of windows in the master pane
        nmaster = 1
        -- Percent of screen to increment by when resizing panes
        delta   = 3/100
        -- Default proportion of screen occupied by master pane
        ratio   = 60/100
screenshot screenshot web development If you're doing web development, you'll want probably one big web browser window, but also with a nice wide terminal on the same screen, in order to see web server logs. A simple way to do this is to mirror Xmonad's Tall layout by 90 degrees.
myWide = Mirror $ Tall nmaster delta ratio
    where
        -- The default number of windows in the master pane
        nmaster = 1
        -- Percent of screen to increment by when resizing panes
        delta   = 3/100
        -- Default proportion of screen occupied by master pane
        ratio   = 80/100
The myWide layout uses the full screen width for a single terminal, and splits the width when there are more. This is sufficient for viewing logs and doing minor things at the shell prompt, in between testing the result in the web browser. Of course a terminal can be temporarily moved to the master area by pressing mod-return, if you need it to be larger. screenshot screenshot chat
Tips on configuring Pidgin for a netbook: Set it up to use vertical tabs to save horizontal space. Configure the input area to only 1 line tall, and turn off as much other cruft as you can. The menu bars, sadly, cannot be disabled, nor can the excessively large borders. In my screenshots, you can see that stuff wasting space that could be used to show four more lines of text.
For chat, you want to put the buddy list on the side of the screen, and use the rest for conversation windows. Xmonad's IM module takes care of allocating a sidebar on the screen for the buddy window. The rest of the screen can be occupied by any layout you choose. I like to have the conversation windows be as wide as possible, and typically only want to see two conversations at a time. But sometimes I might have a dozen visible. A good layout to cope with those needs is Grid.
myChat' l = withIM size roster l
    where
        -- Ratio of screen roster will occupy
        size = 1%5
        -- Match roster window
        roster = Title "Buddy List"
myChat = myChat' Grid
The withIM layout puts the buddy list on the left; I prefer it on the right for some reason, so I tweaked my layout to do that. All it took was using the reflectHoriz layout modifier to get a mirror image of the layout. Then I reflect the inner layout back to its normal orientation. Being able to throw in a few function calls and mutate a layout like that is where Xmonad shines.
myChat' l = reflectHoriz $ withIM size roster $
            reflectHoriz $ l
screenshot screenshot logs
Ever notice that tail -f wastes the last line of the terminal? On a netbook this matters. shorttail lets the last line be used.
I have a dedidated workspace that I use to tail logs, and as a place to send long-running tasks (such as compiles). The layout for this needs to keep windows wide, to see whole logged lines, but they need only be five or so lines tall. And it's convenient to have one bigger window with the small ones below. Xmonad has a perfect layout for this, called Dishes, because it's sorta like a stack of plates.
myDish = limitWindows 5 $ Dishes nmaster ratio
    where
        -- The default number of windows in the master pane
        nmaster = 1
        -- Default proportion of screen occupied by other panes
        ratio = 1/5
screenshot screenshot
In the second screenshot above, I have 6 windows open, but only 5 are visible. The limitWindows 5 accomplishes this. It's handy mostly because gnome-terminal has a bad habit of crashing when resized to 0x0. (That's gotta be a bug in something!)
Notice that the screenshots above also have Procmeter in a sidebar on the right. I (ab)used the withIM layout to do that:
myLogs' l = reflectHoriz $ withIM procmeterSize procmeter $
              reflectHoriz $ l
    where
        -- Ratio of screen procmeter will occupy
        procmeterSize = 1%7
        -- Match procmeter
        procmeter = ClassName "ProcMeter3"
myLogs = myLogs' myDish
coding Everything above was easy. Doing coding (or writing) on a small screen is where it gets hard. When I'm coding I want to have one window that is exactly 80 columns wide, and as tall as possible, where I do the main development. Then I need a minimum of two other windows also visible: one action window for running tests and the like, and one to view references (emails, man pages, other files, etc). I may need to view any of these windows fullscreen at any time, of course.
As an example of the three window rule: While I'm writing this post, I have a reference window open with my .xmonad/xmonad.hs, and an action window open where I am managing screenshots.
Often, deep into something, I will accumulate many other reference and action windows. But three seems to be the magic, minimum number for me; use of screen or anything else doesn't reduce it; if I can't see all three at once, I will waste time and concentration flipping back and forth. The Xmonad layout I've developed to handle this is based on the handy FixedColumn layout, which automatically keeps the master window 80 columns wide. I modify this by adding the Magnifier, so that my action and reference windows "pop out" over the master window when focused.
myCode = limitWindows 3 $ magnifiercz' 1.4 $ FixedColumn 1 20 80 10
The 1.4 was carefully tuned, to magnify a window to be big enough to be usable for editing, reading, or command-line, while not obscuring too much of the other two windows. And again I use limitWindows, to only show three windows, in order to keep them all as big as possible. Other windows are hidden offscreen, but I can rotate to them with alt-tab as needed. screenshot screenshot reading ebooks When I'm reading an ebook, I want to have the reader in the middle of the screen. But a widescreen netbook like mine is too wide to comfortably read text all the way across, so it's nice to have margins. (In the margins, I put terminals, or notes.) The ThreeColumns module has a layout that does just that.
myBook = ThreeColMid nmaster delta ratio
    where
        nmaster = 1
        -- Percent of screen to increment by when resizing panes
        delta   = 3/100
        -- Default proportion of screen occupied by master pane
        ratio   = 2/3
screenshot putting it all together I join all my layouts together, so Xmonad will allow switching between them. These three combinations all have the same layouts, only ordered differently, so that different workspaces can have different default layouts.
codeFirst  = myCode    myWide    myGrid    myDish
dishFirst  = myDish    myCode    myWide    myGrid
gridFirst  = myGrid    myDish    myCode    myWide
Xmonad layouts can be decorated with things like title bars. To save horizontal space, I leave off the title bars on layouts where they are not needed to disambiguate windows. Two helper functions can be applied to add or remove titles (and also cause the layout to avoid the Gnome panel.)
withTitles l = noFrillsDeco shrinkText myTheme (desktopLayoutModifiers l)
noTitles l = desktopLayoutModifiers l
I have semi-dedicated workspaces; one for each of the above activities. To assign a layout to a workspace, I use the PerWorkspace module.
Notice that the "web" workspace has only two available layouts. Meanwhile, the "book" workspace always uses the specialized myBook layout; I don't use that layout elsewhere.
perWS = onWorkspace "logs" (withTitles $ myLogs' dishFirst) $
        onWorkspace "web"  (noTitles   $ (mySplit   myWide)) $
        onWorkspace "chat" (noTitles   $ myChat' gridFirst) $
        onWorkspace "book" (noTitles   $ myBook) $
                           (withTitles $ codeFirst)
Finally, I allow toggling between the currently selected layout and fullscreen mode, and use smartBorders to avoid displaying borders when there is only one window onscreen.
myLayout = smartBorders $ toggleLayouts Full perWS
Xmonad layout optimised for the small screen of a netbook: Done! (For now...)
screenshots screenshots screenshots screenshots screenshots
PS: Thanks to #xmonad regulars for always having the answer I need up their sleeves.

Biella Coleman: Freedom in the Cloud

Eben Moglen, Professor of Law and Legal History at Columbia University,
and founder, Director-Counsel and Chairman of the Software Freedom Law
Center, will speak about Freedom in the Cloud: Software Freedom,
Privacy and Security for Web 2.0 and Cloud Computing on Friday,
February 5, 2010, 7-9 pm. This event will be webcast live. * What: ISOC-NY Public Meeting: Eben Moglen Freedom In The Cloud
* When: Fri. Feb 5 2010 7pm-9pm
* Where: Room 109, Warren Weaver Hall, 251 Mercer Street NYC (SW corner
of West 4th) (See note below)
* Webcast: http://www.livestream.com/isocny * Note: Use the entrance on the west side since construction blocks the
Mercer Street entrance. Must bring ID.

Next.

Previous.