Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
Slashdot Deals: Prep for the CompTIA A+ certification exam. Save 95% on the CompTIA IT Certification Bundle ×

Submission + - Book review: Effective Python (59 specific ways to write better Python)

MassDosage writes: If you are familiar with the “Effective” style of books then you probably already know how this book is structured. If not here’s a quick primer: the book consists of a number of small sections each of which focus on a specific problem, issue or idea and these are discussed in a “here’s the best way to do X” manner. These sections are grouped into related chapters but can be read in pretty much any order and generally don’t depend on each other (and when they do this will be called out in the text). The idea is that you can read the book from cover to cover if you want but you can also just dip in and out and read only the sections that are of interest to you. This also means that you can use the book as a reference in future when you inevitably forget the details or want to double check something.

Effective Python stays true to this ethos and delivers 59 (not 60, nope, not 55) but 59 specific ways to write better Python. These are logically grouped into chapters covering broader conceptual topics like “Pythonic thinking”, general technical features like “Concurrency and parallelism” as well as nitty gritty language details like “Meta classes and attributes”. The range of topics is excellent and cover relevant aspects of the language that I’d imagine pretty much any developer will encounter at some point while developing Python programs. Even though there is no required order to reading the various sections if you want to read the book from cover to cover it’s organised in such a way that you can do this. It starts off with getting your head around coding in Python before moving on to specifics of the language and then ending with advice on collaboration and setting up and running Python programs in production environments.

I really enjoyed the author’s approach to each of the topics covered. He explains each item in a very thorough and considered manner with plenty of detail but manages to do this while still being clear and concise. Where relevant he describes multiple ways of achieving a goal while contrasting the pros and cons of various alternative solutions, ending off with what he considers the preferred approach. The reader can then make up their own mind based on the various options which applies best in a given situation instead of just being given one solution. The author clearly understand the internals of the Python language and the philosophy behind some of the design decisions that have resulted in certain features. This means that instead of just offering a solution he also gives you the context and reasoning behind things which I found made it a lot easier to understand. The discussions and reasoning feel balanced and informed by the experience of a developer who has been doing this “in the trenches” for years as opposed to someone in an ivory tower issuing dictats which sound good in theory but don’t actually work in the real world. The vast majority of the topics are illustrated through code samples which are built on and modified at each stage along the way to a final solution. This gives the reader something practical they can take away and use and experiment with and clearly shows how something is done. The code samples are easily comprehensible with just enough code to demonstrate a point but not so much that you get distracted by unnecessary additions.

While most of the topics are Python specific plenty of the best practices and advice apply equally well to other programming languages. For example in one section the author recommends resisting some of the brevity offered by the Python where this can lead to unreadable code that is hard to understand but the same could be said of writing code in many other languages (I’m looking at you, Perl). This also applies to a section related to choosing the best data structure for the problem at hand — if you end up nesting Maps within Maps in your code then you’re probably doing something wrong regardless of the language. Still, the main focus here is Python and the author does not shy away from going deep into technical details so you’ll definitely need some knowledge of the language and ideally some experience using it in order to get the most out of it.

Effective Python is not a book for complete newbies to Python and I think it’s suited more to intermediate users of the language wanting to take their skills to the next level or advanced programmers who might need some fresh takes on the way they do things. The subjects and opinions in this book could either convince you to do something differently or reassure you of the reasons why you’re already doing things a certain way (external affirmation that you’re right is also useful at times!) I’m no Python expert but I found the book drew me in and kept my attention and I certainly learnt a lot which will come in handy the next time I put on my Pythonista hat and do some Python coding. Highly recommended.

Full disclosure: I was given a copy of this book free of charge by the publisher for review purposes. They placed no restrictions on what I could say and left me to be as critical as I wanted so the above review is my own honest opinion.

Comment Re:Ubuntu _is_ primarily a desktop OS... (Score 1) 167

it used to be the desktop os with kernel's CONFIG_HZ set to 100 instead of 250. but since ubuntu 12.04, the server installation CD image carries the 'generic' kernel and not the 'server' one any more. so ubuntu server IS the same as ubuntu desktop.

different options in 'tasksel' during installation does not make it a different OS in any way.

Comment Re:I've had this as a plug-in. (Score 1) 190

i'd have to keep google's cookie for that to work. i have 'self-destructing cookies' in firefox and 'tab cookies' in chromium so every time i close youtube tab, all related cookies get deleted. i do not wish to be tracked by google just so that their damn videos don't autostart

Submission + - German spies cede citizen data in exchange for NSA spyware->

An anonymous reader writes: Germany’s top intelligence agency gave up details related to citizen metadata in return for National Security Agency (NSA) spyware, local reports have claimed [http://www.zeit.de/digital/datenschutz/2015-08/xkeyscore-nsa-domestic-intelligence-agency]. Keen to use a copy of spy software XKeyscore, the NSA’s key surveillance programme revealed by Edward Snowden in 2013, German spies reportedly handed over information collected on their fellow citizens. The German intelligence group still received a lower access level than other non-U.S. countries, including the UK, Canada, Australia and New Zealand who all enjoyed direct access to the main XKeyscore system.
Link to Original Source

Comment Re:oracle db (Score 1) 54

i only administer the underlying servers, not the DB itself, but in the past i witnessed a lot of moves from Oracle to EnterpriseDB (commercial postgresql). I don't think the opensource version of postgresql (at the time) was a suitable replacement for some of the more advanced features oracle offered.

Comment Re:Malaria treatments (Score 1, Troll) 311

i'll get downvoted to hell for this but how would you feed all those extra people? the wise step is to introduce american style healthcare to the entire world. then (2 years later), when we're back to 1 billion people, the earth can support us again without permanent damage. i say: "to hell with medicine. a hooman is not meant to live past 40"

"More software projects have gone awry for lack of calendar time than for all other causes combined." -- Fred Brooks, Jr., _The Mythical Man Month_

Working...