Clint Adams: Syfy
I have just been informed that syfy is the new SMS
abbreviation for syphilis .
I have just been informed that syfy is the new SMS
abbreviation for syphilis .
Various people were wondering how much power the SheevaPlug consumes
exactly. Laurent Guerby, who runs the GCC Compile Farm, posted some
data today. According to his measurements with an Energy Monitor 3000,
the SheevaPlug uses:
| 3.1W | just on, Linux booted |
| 3.3W | serial |
| 4.3W | serial + Ethernet |
| 5.4W | serial + Ethernet + 100% CPU |
| 6.0W | serial + Ethernet + USB disk |
| 7.0W | serial + Ethernet + USB disk + 100% CPU |
I'm reading the d-i IRC team meeting logfile at the moment, and I must say, I'm impressed by the clear communication and seeing people openly discussing problems (while not forgetting the good stuff) and how to solve them. I think that all those real life meetings we had in the last years really help. Personalities are visible and respected, problems are mentioned but the focus is on solutions. This meeting was mostly about release management and debian-installer team issues, the next meeting is planned to happen in two weeks and should focus on the technical details. Feels good to be watching this :-)
The book Expert Python Programming comes with subtitle Best practices for
designing, coding, and distributing your Python software. Well this seems to
be quite broad area to be covered by a single book, but the book really tries
to cover all topics at least in some form of overview and pointing user to
other documentation sources.
In first chapter you can find information about installing Python on various
platforms. As the book seems to be targeted to more experienced users, this
chapter seems to be a bit useless, but author decided to give a chance also to
users, who do not know the basics.
Next chapters describe best practices for writing Python code, which was the
most interesting part for me. I use Python several years, but I never really
found time time to properly look at using decorators, generators and other
"recently" introduced language features. Second chapter nicely covers these
and I really appreciated that I got idea for what decorators can be used.
Third chapter into class level and describes how to use metaclasses,
attributes, constructors and other things you can face on class level. Fourth
moves the topic to even more abstract way and in short summarises PEP 8 best
coding practices.
Here we leave solid ground of writing code and we move to more abstract areas
of managing projects, testing, documenting and distributing software. It
begins with description of distutils and setuptools in chapters five and six,
where you will find basic information about distributing your software.
Seventh chapter covers zc.buildout, which can help you with setting up and
deploying applications in way Zope and Plone do.
Next chapter is not really related to Python, it just describes advantages of
version control. The most Python related part is using Mercurial VCS, which is
written in Python, but you can of course use it for managing any project.
Next tree chapters are devoted to project development in general, describing
management of the project, generating documentation for project using Sphinx
(what actually made me into starting documentation for python-gammu in it) and
test-driven development practices.
Now comes again two more interesting chapters describing optimization of
Python code, giving the best advice not to optimize unless you are sure it is
needed ;-). But it also goes more deeper and describes benchmarking
procedures, how to debug memory usage and some basic tips for general things
which might improve performance.
Last chapter is some kind of extra in the book and to me it looks it was added
just to use buzzwords design patters, but well it is there and it covers few
design patterns which might be useful in Python like singleton or more
advanced version of it called borg.
In general this book covers quite wide range of topics, what can be seen as
biggest advantage and disadvantage. You will get basic overview of creating
Python project using modern methods (test driven development, design patters,
best practices for Python code), but you can not expect it will go into much
deep details.
The book can extend your knowledge of development in Python, but you
should carefully check examples with errata, because otherwise several of them
will fail. I'm not that good at spotting problems in written English (as you
can probably see in this post), but I spotted several errors in code and I
think more careful editor work on the book would improve my feelings a bit.
Also I personally would prefer much deeper look into some topics and skipping
the others, but one book can not fit all ;-).
A successful close does not guarantee that the data has been successfully saved to disk, as the kernel defers writes. It is not common for a file system to flush the buffers when the stream is closed. If you need to be sure that the data is physically stored use fsync(2).Why don t application programmers follow these sage words? These three reasons are most often given as excuses:
The problem is that I don t, really, want to turn off fsync s, because I like my data. What I want to do is to spin up the drive as little as possible while maintaining data consistency. Really what I want is a knob that says I m willing to lose up to minutes of work, but no more . We even have that knob (laptop mode and all that), but it only works in simple cases.This is a reasonable concern, and the way to fix this is to enhance laptop_mode in the Linux kernel. Bart Samwel, the author and maintainer of laptop_mode, actually discussed this idea with me last month at FOSDEM. Laptop_mode already adjusts /proc/sys/vm/dirty_expire_centisecs and /proc/sys/vm/dirty_writeback_centisecs based on the configuration parameter MAX_LOST_WORK_SECONDS, and it also adjusts the file system commit time (for ext3; it needs to be taught to do the same thing for ext4, which is a simple patch) to MAX_LOST_WORK_SECONDS as well. All that is necessary is a kernel patch to allow laptop_mode to disable fsync() calls, since the kernel knows that it is in laptop_mode, and it notices that the disk has spun up, it will sync out everything to disk, since once the energy has been spent to spin up the hard drive, we might as well write everything in memory that needs to be written out right away. Hence, a patch which allows fsync() calls to be disabled while in laptop_mode should do pretty much everything Nate has asked. I need to check to see if laptop_mode does this already, but if it doesn t force a file system commit when it detects that the hard drive has been spun up, it should obviously do this as well. (In addition to having a way to globally disable fsync() s, it may also be useful to have a way to selectively disable fsync() s on a per-process basis, or on the flip side, exempt some process from a global fsync-disable flag. This may be useful if there are some system daemons that really do want to wake up the hard drive and once the hard drive is spinning, naturally everything else that needs to pushed out to stable store should be immediately written.) With this relatively minor change to the kernel s support of laptop_mode, it should be possible to achieve the result that Nate desires, without needing force applications to worry about this issue; applications should be able to just simply use fsync() without fear. Summary As we ve seen, the reasons most people think fsync() should be avoided really don t hold water. The fsync() call really is your friend, and it s really not the villain that some have made it out to be. If used intelligently, it can provide your application with a portable way of assuring that your data has been safely written to stable store, without causing a user-visible latency in your application. The problem is getting people to not fear fsync(), understand fsync(), and then learning the techniques to use fsync() optimally. So just as there has been a Don t fear the penguin campaign, maybe we also need to have a Don t fear the fsync() campaign. All we need is a friendly mascot and logo for a Don t fear the fsync() campaign. Anybody want to propose an image? We can make some T-shirts, mugs, bumper stickers Related posts (automatically generated):
There is a particular issue about which I am incapable of expressing my opinion. I do have an opinion about it, and I have developed it quite a bit in my own head over the years. However, if I try to voice it, something in me tells me not to.
There is another issue about which I am capable of expressing my opinion, but I choose not to. It is a highly controversial topic, and it is very likely that if I expressed my opinion about it, it would be interpreted as being another opinion, which I do not hold.
I do not know whether to call that Wittgenstein s curse or not.
DO NOT send your query for more information only to nnn@bugs.debian.org. That address (almost) never reaches the submitter. (The correct address is nnn-submitter@bugs.debian.org or you can CC the submitter directly.)
DO NOT close a bug just because your query can you still reproduce it has not been promptly answered.
And, actually:
DO NOT close a bug if you do not have the maintainer s permission to do so. You may, if you wish, state in the bug logs that you think the bug should be closed.
This ends today s public service announcement. Thank you for your attention.
If you are lucky/strong enough to survive with your humanity intact after growing up in a Mumbai slum, then the luck required to win a TV show is nothing in comparison.
Edited to add: Sorry, it turns out that ext4 does now have a heuristic to deal with this case. However, it seems that btrfs doesn't. My point remains, though - designing a filesystem in such a way that a useful behaviour is impossible is unhelpful for the vast majority of application writers, even if it does improve performance in some other use cases.
Riddle:
Totus illae has venio pro , quod is mos totus venio iterum
Answer:
All they /h s/ I come for , because he custom all I come again
For some time ago I ve been pondering about this question. As long as GSoC 2009 is about to start and people are looking for project ideas, I m posting here a very preliminar draft of my findings and an idea for a posible software project. It s pretty written on-the-fly while I ve managed to have some minutes between work and uni. Rigurous wording isn t P1.
Debian s social contract 4th item states:
Our priorities are our users and free software We will be guided by the needs of our users and the free software community. We will place their interests first in our priorities.When we make decisions, either technical, legal and others regarding the operating system we deliver, this is one of the most referred argument. Altough that s seen as high priority often we don t have ways to properly know what our users want. While working on translations on the Spanish team we ve faced this situation. Do our users find them useful? they are able to understand them? they find that a much familiar wording would be bette than high technical details? We didn t know. Then, the question still exists. Altough Debian has ways for users to provide feedback (BTS, mailing lists, IRC, popcon, etc) none of them is designed to offer a way for the user to provide feedback on features, development roadmap and other non-bug aspects that developers and the project can tally and use for prioritize on releases. It s rather amusing to note that one of the most valuable assets free software community has is user involvement and contribution. But before we enter in details let s start on the basics. For using this information we first need to know who our users are? do we? From my findings and interaction with the community I ve identified two kinds of Debian users who can be clearly named. 1) The derivatives or pure blends, who use the Debian base and framework to build niche distributions. 2) The lead users (using E. Von Hippel s definition), who are the developers, contributors and a group of users. Debian is, if not the only, one of the projects who is best for fostering lead users. Most of them at some point involve themselves in the development process and some, later become developers. There is a more diverse group who are end-users but it s unclear to me how we can group them. Despite that they probably represent the biggest part of the pie. So, how we do please everyone? can we? In my opinion we can, at some degree. By implementing tools for first: gather user feedback, make statistical data, tally, we later can take informed decisions. In Debian decisions are voted and the set of people who votes are only developers with their own constraints. I think this would ease the constant that release-decisions-regarding-foo-tech-legal-issue represented on each release iteration, saving time, health and bits. It could be useful for knowing more about who are the ones we develop things for. I m thinking of some sort of Dell s IdeaStorm.com for software. What do you think? I m willing to co-mentor this if someone finds that is an interesting project for GSoC. Let me know!.
Just a quick update to let you know how the Debian bid for the Google Summer of Code is going.
We re doing great right now. Our application is sent out, you can consult the public part here.
This year, we re committed to doing a great Summer of Code performance, starting first by improving communication with the Debian community.
We opened a Twitter feed for you Twitter freaks: http://twitter.com/DebianGSoC. It will be updated with live information relevant to students and devs alike during the whole summer.
UPDATE: We re now also on identi.ca : http://identi.ca/debiangsoc
I've been on Twitter for over a year and a half now. If I had to
explain why I like it, and why it's so popular now, I would use an
analogy:
Twitter : IRC :: Blogs : Usenet(This applies equally to other "micro-blogging" services, but I am about to explain why I believe that's not the right metaphor. You may also substitute mailing lists for Usenet.) With the older media, you have a place -- a newsgroup, or a channel, that people went to, with a distinct culture, and that (mostly) weren't "owned" by anyone, but rather by the community. With the new ones, we are all sole proprietors of our own streams, and we "tune in" to the subset of people we find interesting, rather than topics we invest in. So, instead of bumping into the same person in a couple different groups, or never reading their words at all, you might find that your feeds overlap a bit more than they do with most people. This is how I find people to "follow" and blogs to read, in fact -- as my network expands, more people become loosely joined to it, and as I notice ones worth reading I add them. Is one model better than the other? Probably not. I could make an analogy to music. In theory, I'd rather read what my favorite critics have to say about a wide variety of new releases -- some of which I'd never know about otherwise -- than keep up with the discussion of bands and genres I really like, even if most people writing about them are terrible (remember, 90% of everything is crap). But I also lose that sense of community of being a "fan" of something; I no longer have a deep connection to what's going on in the fandom or the scene, which I also would never know about otherwise (some of it is just too obscure for my favorite writers to cover). In practice, it seems the new approach has been more popular, but maybe that's because more people are on the net now, and both kinds of communication are/were shaped by the technology available at the time (destinations make much more sense with limited/centralized computing resources, and aggregation makes much more sense with powerful clients and a wider, less specialized user base). Anyway. This post is not actually about social media theory or whatever you want to call it; it's about some software I have packaged. Because of all the above, I have always wished that I could use Twitter from something more like my IRC client. Like, say, my IRC client. One could abuse the concepts of IRC to make an "on the fly" channel of whoever happens to be in my feed. (I once read a blog comment somewhere complaining that Twitter could easily be implemented on any existing IRC server using one +m channel for everyone and some client-side direction of messages from all such channels to a single window. +1 for cleverness, but they did sort of miss the point of why normal people sign up for web sites rather than installing and configuring clients for obscure chat protocols.) So, I had grand plans to write a Twitter client which was an IRC server, with some clever mapping of IRC concepts and commands to their equivalents over there. I never got around to it, as I barely have enough time for anything I do now. But last month I noticed that someone else had implemented such a thing: tircd. I had seen Twitter/IRC services before, but like the official Twiter XMPP service, they were all implemented as bots, which I detest for this sort of application. Bitlbee, for example, translates various IM protocols to IRC, but only halfway -- for anything else you have to use a bot as a sort of poor man's command line. If I want a command line for Twitter, I already have several; IRC can do better. And tircd really does! It's great. You're not required to edit the config file, and there's no extra layer on top of IRC for things like logging in or adding people. I've finally packaged the latest release, which is waiting in NEW currently. I got a request for sneak preview packages, so if you want to install some unapproved .debs check this repository. I may still pick my own project back up, as Twitter itself, being a centralized service, feels like a stopgap solution on the way to to a more generalized 140-character equivalent of the, er, blogosphere as envisioned by open-source projects like Identi.ca. In the future, perhaps, when we use a certain micro-blogging "service" we might be randomly connected to one of any number of servers run by different individuals but all mirroring messages back and forth to each other. Which, now that I think of it, sounds vaguely like some obscure, obsolete chat and news-posting protocols I know.
Nearly a month has elapsed since Debian released Lenny. The interesting thing for me about this release was that I failed to get to the point where running etch was causing me pain. This became even more evident when Katherine commented on my Lenny T-Shirt - I'd forgotten to mention our release to her! Previously there have been a bunch of features coming that I really wanted, sometimes to the point of using backports. It's probably something to do with the way I run Debian; I use stable for remote machines and while in the past this would have meant quite a few work boxes these days it's just a box at my parents' and my colo.
Where I felt the pain during this release cycle was on the boxes where I run unstable (my home desktop) or testing (my work box and my laptops). Development on new shininess slows down significantly while we're preparing for release (not unsurprisingly). And there are things coming up I quite like the look of, largely aimed at the desktop arena. I've been running Network Manager 0.7 from experimental on my EEE, for example - I need the HSO 3G support to avoid unnecessary faff on a daily basis. I've got ATI cards in my work and home desktops, so I'm watching the Mesa developments with interest - roll on OpenGL 2.0 support hopefully. The Intel KMS support that doesn't seem to be quite there yet but RSN, no, really, will be nice for my laptops. Experimental VDRs are looking interesting and perhaps worth upgrading my PVR to.
Next.