|
In his presentation, André starts with the foundations of Objective-C, how things are stored in memory and then goes on to look at the philosophy of programming. Although the tools, the operating systems and the devices may all have changed since this talk, the principles that he considers are still important: André talks about Small Talk, Lambda calculas, why assignment is bad, uniformity, functional programming and Haskell and the lessons we can learn for programming in Objective-C. André Pang's presentation on Objective-C from the very first NSConference.
|
|
|
|
|
I’ve found writing unit tests in F# very productive, with it’s terse syntax and powerful type inference. I write F# tests against C# and F# implementations. Writing tests in F# can be a good introduction to the language and this is something we do on our team. To get up to speed quickly you’ll typically want a familiar unit testing framework and mocking library syntax. F# code works with all the popular open source .Net unit testing frameworks... Here are examples using many of the most popular testing frameworks.
|
|
|
|
|
This is the first post in the Real World Problems with Windows Azure Web Sites blog series, as it intends to answer one of the most common questions I receive when I’m doing presentations about Windows Azure Web Sites. This situation demonstrates a typical setup, wherein a site owner has multiple environments to which they push their web site. This setup is extremely valuable for staging site releases and for delivering solid web applications or for doing A-B testing of a site’s changes. Code, Commit, Deploy... to the Cloud!
|
|
|
|
|
Windows Azure now offers customers a cloud platform that can cost effectively and reliably meet the needs of Big Compute. With a massively powerful and scalable infrastructure, new instance configurations, and a new HPC Pack 2012, Windows Azure is designed to be the best platform for your Big Compute applications. In fact, we tested and validated the power of Windows Azure for Big Compute applications by running the LINPACK benchmark. The network performance was so impressive... that we submitted the results and have been certified as one of the Top 500 of the world’s largest supercomputers. 151.3 TFlops on 8,064 cores with 90.2 percent efficiency.
|
|
|
|
|
A newly discovered form of malware that targets Linux servers acting as Web servers allows an attacker to directly inject code into any page on infected servers—including error pages. The rootkit, which was first publicly discussed on the Full Disclosure security e-mail list on November 13, appears to be crafted for servers running the 64-bit version of Debian Squeeze and NGINX. Iframe annoyances.
|
|
|
|
|
As more and more software distribution are going through so-called App Stores, the question about the compatibility of their terms and conditions with the open source licenses, notably the GPL, often arise.... So far, the Android store is open source friendly, and Apple one is not yet open source friendly. But there is a new one in town, so I will look at the new Windows Store, that will ship WinRT Metro and Windows Phone 8 applications. Is it safe to publish a FOSS application on the Windows Store? Read on to find out.
|
|
|
|
|
It is commonly thought by instigators of research in big data that most companies seek to use big data to understand customers/consumers better, and most have misunderstood the stark difference between personal data and non-personal data. Data that is generated from activities and events taking place are different from personal information that we may willingly or unwittingly share. Either way, the basic fact is that the most accurate personal data is the most valuable, and (here's the key) that data happens to be the most private. Are you in the game of exploiting information regardless of morality?
|
|
|
|
|
Recently I’ve undertaken a personal project (computoser) that is a bit strange. I tried to write software that generates music at random. Good music, that is, because “random” usually generates noise. The idea, of course, is not at all new – there has been research on the topic and there is software that attempts to generate music. It's got a good beat, and I can dance to it.
|
|
|
|
|
The human brain is an extraordinary computing machine. Nobody understands exactly how it works its magic but part of the trick is the ability to store and process information at the same time. That's entirely unlike conventional computers which store information in random access memory or on hard disc and shuttle it back and forth as required to a central processing unit. The time and energy all this takes is the thing that ultimately limits conventional computing performance, the so-called von Neumann bottleneck. Essentially, it is this that prevents conventional computers from approaching the performance of biological ones. All that may be about to change. The more contact I have with humans, the more I learn...
|
|
|
|
|
I now know one of the reasons why so few people... do Test Driven Development, or perform even basic testing methodologies. The topic was too academic! Yes, you might be able to list 4 different types of black box test approaches vs. white box test approaches and describe the characteristics of Smoke Tests, but never during the course did we see an example of an actual test or how it might be implemented! In fact, if I did not have personal experience of applying testing in actual projects, I wouldn’t even know what a unit test looked like. Teaching the ideal of programming has a long way to catch up with the reality of programming.
|
|
|
|
|
The Jed Toolkit is a collection of interoperable tools to help facilitate the full process of internationalizing applications in JavaScript. These tools have a wide range of utility, from small modules to help format messages, dates, and numbers to services that facilitate translation, and code integration. The goal of the project is to bring the experience and quality of internationalizing JavaScript applications up to par with the rest of the current state of JavaScript tooling. What tools are you using for internationalization?
|
|
|
|
|
Every developer knows you should have a one, exact, coding standard in your company. Every developer also knows you have to fight to get your rules into the company standard. Every developer secretly despairs when starting a new job, afraid of the crazy coding standard some power-mad architect has dictated. It’s better to throw coding standards out and allow free expression. The small win you get from increased conformity does not move the needle. I expect everyone to write good clean code. You decide what that means.
|
|
|
|
|
Coding standards are pointless . They simply massage the ego of whoever writes them . Write the tests first , pass the tests , then re factor . Coding standards are irrelevant.
|
|
|
|
|
Totally disagree.
There are different levels of coding standards.
1. How files and projects are organised and named
2. How namespaces, classes and all objects and variables are named
3. How code is organised within files (eg Adhering to StyleCop, how different sections are laid out)
4. How you code within a method (eg do you always ensure input params are checked? Output is checked?
5. How you format code. Braces on new or the same line? Wrap at 100 chars? Braces around all code blocks even if they are 1 line?
6. How you comment code.
7. How you handle error conditions. Do you throw exceptions or rely on passing around state?
8. How you handle return values - do you allow nulls, or do you always return an object, for example?
and on it can go.
These aren't nice to haves. These standards massively reduce the effort needed to scan large projects. Once someone understands the conventions in place in one part, they can move to any other part and understand how things are laid out and what to expect.
Standards such as how errors are handled ensure consistency in the code, and standards such as commenting ensure sufficient comments are placed where they are needed, and no more.
Coding Standards are like building or wiring standards. They reduce mistakes.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
10!
I'd much rather work at a place with a standard than one without.
|
|
|
|
|
Much of what you are talking about I would term good design practices - no problem with those . To me only 3 and 5 are coding standards . And in the case of these I would much rather that time was spent on designing , and testing than these . If having or not having a curly brace on a single line block is your biggest issue then you are very lucky .
I have yet to see a project yet where 3 and 5 have been a significant issue. However I have been involved with hundreds of arguments with developers as to what the style should be . And invariably it boils down to 'my style is best' . I have lost count of the number of times we ended up with ' I think X' ' ' No I think Y' arguments . When in reality the time would have been better spent thinking about the design , process or testing .
|
|
|
|
|
There's a difference between coding style and coding standards.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Tabs or spaces? Which do you prefer? What about your colleagues? Are they all the same?
If any one of you prefers a different indentation type, then good luck with your code check ins and merges - not all repositories are forgiving of whitespace changes.
|
|
|
|
|
I was also a big advocate of strict coding stadards. I was nit-picking on every single curly brace and intendation and totally missing the big picture. Then I got into same realization as the blog's writer that the most important thing is to be consistent and get something delivered to the customer!
Now I'm much happier without having to worry about the semicolon placements and all. I know that my teammates will do a good job
|
|
|
|
|
How can you be consistent if there is no standard? Consistency is achieved through standards. Even if those standards are then unwritten standards, they are still standards.
|
|
|
|
|
I meant that it's quite impossible to have a single coding standard that everyone sticks to. So it's everyone's responsibility to write code that's predictable in their own way. I think that's the message the OP's article wants to tell.
For example in C# naming member variables is usually done by prefixing them with an underscore. If you don't like that then fine, but don't mix different prefixes around in different places of your program.
|
|
|
|
|
Extremist programming (no relation to extreme programming) is the act of taking some principle, elevating it above everything else and applying it everywhere. After the dust settles, people often look at this extremism and think, “Well, that was kind of interesting, but using X in Y was clearly inappropriate. You need to use the right tool for the job!” Here’s the catch: sometimes you should use the wrong tool for the job—because it might be the right tool, and you just don’t know it yet. Too much is never enough.
|
|
|
|
|
Word!
Especially when it comes to whitespace.
|
|
|
|
|
But is it news?
Director of Content Development, The Code Project
|
|
|
|
|
Not to anyone who reads my code.
|
|
|
|