IBM developerWorks: Practical threaded programming with Python
Tag Archives: Python
Eight web development and programming links for today
Ted Dziuba – I’m Going To Scale My Foot Up Your Ass (via Comcaster Mr. Mat Schaffer): “If You Haven’t Discussed Capacity Planning, You Can’t Discuss Scalability” (Bingo!)
High Scalability: Flickr Architecture
Gustavo Duarte – Lucky to be a Programmer: “This analytical side is what most people associate with programming. It does make it interesting, like a complex strategy game. But in most software the primary challenge is communication: with fellow programmers via code and with users via interfaces. By and large, writing code is more essay than puzzle. It is shaping your ideas and schemes into a coherent body; it is seeking clarity, simplicity and conciseness. Both code and interfaces abound with the simple joy of creation.”
TechCrunchIT: : “Geeks and enthusiasts wearing WordPress t-shirts, using laptops covered in Data Portability, Microformats and RSS stickers lined up enthusiastically on Friday to purchase a device that is completely proprietary, controlled and wrapped in DRM.”
Shelley Powers: Painting the Web now DRM Free and on Kindle (Congrats!)
Spartan Programming: SendAnEmail case study (print it out!)
Official Google Blog: Our Googley advice to students: Major in learning
BitWorking: Python isn’t just Java without the compile
Google releases internal development software open source
Protocol Buffers are “a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats”. This will start some interesting conversations around work, as it should. XML doesn’t need to always be the choice when building server to server side data interchange.
For JavaScript developers, note that Google has not released a library, as this appears to be used, within Google, for server to server side, not server to client. In fact, according to Kenton Varda in the Google Group discussion shares that some internal projects serialize or parse Protocol Buffer messages in JSON format.
Google Open Source Blog: Google’s Data Interchange Format
Matt Cutts: Cool: Google Releases Protocol Buffers Into the Wild: To understand the other nice thing about Protocol Buffers, bear in mind that in the Google cluster architecture, there are many different types of servers that talk to each other. Question: how do you upgrade servers when you need to pass new information between them? It’s a fool’s game to try to upgrade both servers at the same time. So you need a communication protocol that is not only backward compatible (a new server can speak the old protocol) but also forward compatible (an old server can speak the new protocol). Protocol Buffers provide that because new additions to the protocol can be ignored by the old server.
Joe Gregorio: Protocol Buffers: They’re one of the first things you learn about when you start at Google and they’re used everywhere.
And a related Hacker News discussion.
ratproxy is “a semi-automated, largely passive web application security audit tool, optimized for an accurate and sensitive detection, and automatic annotation, of potential problems and security-relevant design patterns based on the observation of existing, user-initiated traffic in complex web 2.0 environments.”
It can be very difficult auditing XSS security issues and it is always good to find a tool that is well used and trusted.
Google Online Security Blog: Meet ratproxy, our passive web security assessment tool: We decided to make this tool freely available as open source because we feel it will be a valuable contribution to the information security community, helping advance the community’s understanding of security challenges associated with contemporary web technologies.
Writing a simple proxy in Python: Some related links
Programming and Development links for today
PIBlog: Building a Python Web Application, Part 1
A Student’s Guide to Software Engineering Projects – Free eBook for Students
Raible Designs: Building high-content web applications (I wonder what we can share from work? I need to ask…)
Raible Designs: Spring MVC vs. WebWork Smackdown at OSCON (likewise, I need to check what we can share from work).
IBM developerWorks: An introduction to Model Driven Architecture
The single most important skill for a software engineer
“How to Think Like a Computer Scientist: Learning with Python”:
The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natu- ral science. Like mathematicians, computer scientists use formal languages to denote ideas (speciï¬cally computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills.
Beyond the Browser
Arpit Mathur, our Flash wiz at CIM, has posted a nifty summary of different approaches being taken to extend the browser’s capabilities to the desktop.
To the list, let me add a few more desktop development platforms, that are network leveraging:
Firefox, irregardless of Prism, is already a capable sometimes-connected desktop application environment (witness Songbird – an open source project I might dig into, because I am just unhappy with the state of current mp3 players). However, Prism sure does seem interesting and worth keeping an eye on.
And while Arpit did cover the Flash side of things (Air), I love contemplating Flex+Python or Flex+Java approaches. Bruce Eckel’s article in Artima on the subject maps to the way I think. There is a lot of re-use and maintenance problems you solve when you layer an application that way.
An earlier project I worked on was a communications application that utilized a Flash UI hosted in a C# application. It worked intriguingly well.
Java Application Servers Without J2EE
infoq: SpringSource Launches New Application Server without Java EE
SpringSource Team Blog: Introducing the SpringSource Application Platform
SpringSource: http://www.springsource.com/web/guest/products/suite/applicationplatform”>SpringSource Application Platform
Not directly related at all, but has everything to do with it:
The Daily Profeth: Google App Engine & eclipse (PyDev) – a nice getting started guide.
Interesting Programming Reads
Blog at trepca.si: Java, Python and defaults – Sure is true enough.
Code To Joy: Open-Source group announces jJavaM – It was an April fools, but a good one for the sarcasm.
Python-by-example – Will come in handy.
Better Programming With Java EE: A Conversation With Java Champion Adam Bien – Dispels some myths.
An Army of Solipsists: Blog Archive: Using Spring MVC Controllers in Grails – Might come in handy if I ever get around to experimenting with Grails.
Anil Dash: Atom Wins: The Unified Cloud Database API: “I want every program that thinks of itself today as a “blogging client” to reimagine their market as being a front-end to a database in the cloud. I want all the apps built on smart database abstractions to think about this new unified cloud API as an option they must support. And most of all, I want geeks to make something cool with this that we couldn’t do before.”
Hosting Java Web Applications: Why Is It Still So Hard? | Javalobby
Yahoo! launches a Python developer center
Yahoo! Developer Network – Python Developer Center. More at Slashdot.