Skip to content

Blogs

Community Update 2014-04-17–#angularjs, #nodejs, #javascript tools and debugging, #bldwin highlights and #elasticsearch

Decaying Code - Maxime Rouiller - Fri, 04/18/2014 - 02:30

 

Must Read

Boring Systems Build Badass Businesses (devopsu.com)

Web Development

How to use CORS requests in Internet Explorer 9 and below. | jgauffin's coding den (blog.gauffin.org)

How I Built WatchMeCode’s Subscription / Streaming Service (derickbailey.com)

Principles of Writing Consistent, Idiomatic JavaScript (github.com)

Saving HTML5 canvas as image | We Work We Play (weworkweplay.com)

A List of Foundational JavaScript Tools (www.codefellows.org)

How I Setup Angular + Node Projects (start.jcolemorrison.com)

Advanced JavaScript Debugging with console.table() – Marius Schulz (blog.mariusschulz.com)

javascript - How do I "think in AngularJS" if I have a jQuery background? - Stack Overflow (stackoverflow.com)

The Special Properties of ngRepeat In AngularJS (odetocode.com)

ASP.NET

Build 2014 Highlights For Web Developers | PoppaString (www.poppastring.com)

BlogMatrix. A Very Simple Blog Engine · Kestrel Blackmore (www.kestrelblackmore.com)

Consensus: Bringing it all together (nickberardi.com)

MvcPages: ASP.NET MVC without routes and controllers - Declarative Programming (maxtoroq.github.io)

Nancy on OWIN – bundling and minification | Goran Obradovic in internet (blog.goranobradovic.com)

Debugging ASP.NET Web API with Route Debugger (blogs.msdn.com)

Search Engines and data metrics

jasonish: Snort, Logstash, Elastic Search and Kibana... (blog.jasonish.org)

Elasticsearch.org Investing In Apache Lucene | Blog | Elasticsearch (www.elasticsearch.org)

Logfile Handling - Are you visualizing your Logfiles? | Blog (blog.amazeelabs.com)

Categories: Blogs

Newbie debut with Sublime Text 2

Decaying Code - Maxime Rouiller - Thu, 04/17/2014 - 23:30

So I’ve started using Sublime Text 2 for some JavaScript fun. I’ve never found the tooling inside Visual Studio that great for JavaScript (TypeScript however is a whole other game) and since I’m going to spend quite some time editing JS files, I decided to give Sublime a go.

The first time I heard from Sublime was at the MVP Summit in February 2013. There was one big proponent of Sublime and one big room that wasn’t that interested. Things moved on but the name was there.

Today, I’m hearing more and more about Sublime and the community around it has grown incredibly.

My pains so far…

First, the shortcut. I’m used to Visual Studio + ReSharper and oh god… the shortcuts are killing me. My brain is hardwired since at least 3-4 years in using ReSharper + VS shortcuts and to be honest… it’s the most horrible experience I have so far. However, I know that shortcut are mainly muscle memory. You think of an operation and your body knows exactly what to press without you even thinking about it. Rename? Boom. My fingers are on CTRL-R before my brain can remember the exact shortcut. This I know is going to be a world of hurt for me until my stupid brain get used to this.

Since we’re talking shortcuts…

Surviving Sublime with some shortcuts

With ReSharper, you can get very far with CTRL-ENTER (fix whatever is where I am) and CTRL-SHIFT-R (refactor).

So I was looking for something similar with Sublime.

Shortcut Action Description CTRL-P Quick-Open files Allows you to type file names with paths to allow you to get anywhere. Supports PascalCasing and partial match. CTRL-SHIFT-R Go to Symbol Gets you to a recognized symbol. Symbols can be created by custom packages (more on that later). Sublime will find symbols in your files. CTRL-SHIFT-P Command prompt This one is the power tool you are going to use once you get used to Sublime. It allows you to access commands from packages. For a more complete list of shortcuts, I recommend going here. Sublime and its packages

If like me you are coming from a Visual Studio environment, you should know NuGet. Well, Sublime has its equivalent but for the editor itself.

Click here for the instructions on getting Sublime ready to install packages. It will give you instructions on getting it ready.

So what can packages do? They can add supports for new languages, help the IDE find new Symbols, add snippets per languages, add commands, etc. A package can potentially do anything inside your project.

Some plugins like LiveReload will automatically refresh your browser when you save a file. The Git plugin will add git commands to the CTRL-SHIFT-P interface so that you don’t even have to leave your editor to git commit. You like the TODO list in Visual Studio? TodoReview generates a list of all todos in your project in any languages.

If there is something you want to do… there’s probably a Sublime Package for it.

Head here to browse more packages

Sublime Commands

Okay those are completely crazy once you start using them but is still quite a relatively simple concept.

First, the commands are contextual to your file. So there won’t be any snippet for C# files if you are in JavaScript file. Then, some commands (like Package Control) are global and accessible wherever you are. The same “PascalCase” partial matching algorithm here is used for commands.

As an example, I installed a JSLint package and suddenly, I have a JSLint command available that I can run on any files.

Conclusion

Okay so I’m still not “production ready” yet but if you have recommendation on which packages I should install (I’m a C#, ASP.NET, developer that does Javascript, Durandal, Angular, Knockout, etc.), please let me know in the comments!

Categories: Blogs

Refusing to do bad work…

I talked at TestBash about context-driven testing in agile. I my talk I said that I refuse to do bad work. Adam Knight wrote a great blog post “Knuckling Down” about this: “One of the messages that came up in more than one of the talks during the day, most strongly in Huib Schoots talk on Context Driven in Agile, was the need to stick to the principle of refusing to do bad work. The consequential suggestion was that a tester should leave any position where you are asked to compromise this principle.

Adam also writes: “What was missing for me in the sentiments presented at TestBash was any suggestion that testers should attempt to tackle the challenges faced on a poor or misguided project before leaving. In the examples I noted from the day there was no suggestion of any effort to resolve the situation, or alter the approach being taken. There was no implication of leaving only ‘if all else fails’. I’d like to see an attitude more around attempting to tackle a bad situation head on rather than looking at moving on as the only option. Of course we should consider moving if a situation in untenable, but I’d like to think that this decision be made only after knuckling down and putting your best effort in to make the best of a bad lot.

Interesting because I think I said exactly that: “if anything else fails, leave!” But maybe I only thought that and forgot to speak it out loud, I am not sure. Let’s wait for the video that will give us the answer. But in the meanwhile: of course Adam is right and I am happy that he wrote his blog post. Because if I was too firm or too distinct, he gave me a chance to explain. Because looking back, I have done many projects where, if I hadn’t tried to change stuff, I would have left many of them in the first couple of days. There is a lot of bad testing around. So what did I try to say?

Ethics again.

This topic touches very closely to ethics in your work! Refusing to do bad work is an ethical statement. Ethics are very important for me and I hope more testers will recognize that only being ethical will change our craft. Ethics help us decide what is right and what is wrong. Have a look at the ethics James Bach summed up in this blog post “Thoughts Toward The Ethics of Testing“. Nathalie pointed to an article she wrote on ethics in a reply to my last post.

Ethics and integrity go hand in hand. Ethics are the external “rules and laws” and integrity is your internal system of principles that guides your behaviour. Integrity is a choice rather than an obligation and will help you do what is right even if no one is watching.

I refuse to do bad work!

Bad work is any work that is deliberately bad. I think along the lines of restrictions in a context, demands placed on them that they don’t know how to handle. Or even worse: intentionally doing stuff you know can be done better, but it is faster, easier or because others ask you to do it like that. Of course there are novices in the field and they do work that can be done better. I do not call that bad work since they are still learning. Still there is a limit to that as well. If you have been tester for several years and you still do not know how to do more than 3 test techniques without having to look them up, I will call that bad work as well. I expect continuing professional development from everybody in the field. Simply because working in IT (but in any profession) we need to develop ourselves to become better.

Lying is always bad work. And I have seen many people lie in their work. Lying to managers to get off the hook, making messages sound just a little better by leaving out essential stuff. Also telling people what they what to hear to make them happy is bad work. What do you do when your project manager asks you to change your test report because it will harm his reputation? Or what do you tell the hiring manager in a job interview when he asks you if you are willing to learn? Many people tell that they are very willing to learn, but are they really?

Bad work is claiming things you can’t accomplish: like assuring quality or testing everything. It is also bad work when you do not admit your mistakes and hide them from your colleagues. Bad work is accepting an assignment when you know you do not have the right skills or the right knowledge. In secondment assignments this is an issue sometimes. I have taken on a project once where the customer wanted something I couldn’t deliver but because my boss wanted me on the position I accepted. That was wrong and the assignment didn’t work out. I felt very bad about it: not because I failed, but because I knew upfront I would fail! I won’t do that again, ever.

So how do I handle this?

I push back! Of course I do not run away from a project when I see or smell bad work. I do try to tackle the challenges I am faced with. I use three important ways trying to change the situation: my courage, asking questions and my ethics. Some examples: when a managers start telling me what I should do and explicitly tell me how I should do that, I often ask how much testing experience the manager has. When given the answer I friendly tell him that I am very willing to help him achieve his goals, but that I think I am the expert and I will decide on how I do my work. Surely there is more to it and I need to be able to explain why I want it to be done differently.

I also ask a lot of questions that start with “why”. Why do you want me to write test cases? What problem will that solve? I found out that often people ask for things like test cases or metrics because it is “common practice” or folklore not because it will serve a certain purpose. Also when I know the reasons behind the requests, it makes it easier to discuss them and to push back. A great example of this is the last blog post “Variable Testers” by James Bach.

Adam talks about changing peoples minds: “One of the most difficult skills I’ve found to learn as a tester is the ability to justify your approach and your reasons for taking it, and being able to argue your case to someone else who has a misguided perspective on what testing does or should involve. Having these discussions, and changing peoples minds, is a big part of what good testing is.

I fully agree. In my last on blog post “heuristics for recognizing professional testers” my first heuristic was: “They have a paradigm of what testing is and they can explain their approach in any given situation. Professional testers can explain what testing is, what value they add and how they would test in a specific situation.” To become better as testers and to advance our craft, we should train the skills Adam mentions: justify approach and being able to argue our case.

It will make you better and happier!

Jerry Weinberg listed his set of principles in a blog post “A Code of Work Rules for Consultants“. In this blog post he says: “Over the years, I’ve found that people who ask these questions and set those conditions don’t wind up in jobs that make them miserable. Sometimes, when they ask them honestly they leave their present position for something else that makes them happier, even at a lower fee scale. Sometimes, a client manager is outraged at one of these conditions, which is a sure indication of trouble later, if not sooner.

It will make you a happier person when you know what your limits are and you are able to clearly remind people you work with. It will prevent you from getting into situations that make you miserable. “That’s the way things are” doesn’t exist in my professional vocabulary. There is always something you can do about it. And if the situation you end up in, after you tried the best you can, isn’t satisfying to you: leave! Believe me, it will make you feel good. I have got the t-shirt! And… being clear about your values also will make you better in your work. Maybe not directly, but indirectly it will.

Daniel Pink speaks about the self-determination theory in his book “Drive“. The three keywords in his book are: Autonomy, Mastery and purpose: “human beings have an innate drive to be autonomous, self-determined and connected to one another, and that when that drive is liberated, people achieve more and live richer lives” (source: http://checkside.wordpress.com)

But but but….

Of course I know there is the mortgage and the family to support. Maybe it is easy for me to refuse bad work. Maybe I am lucky to be in the position I am. But think again… Are you really sure you can’t change anything? And if your ethics are violated every day do you resign yourself? Your ethics will act as heuristics signalling you that there is a problem and you need to do something. I didn’t say you have to leave immediately and if you are more patient than I am, maybe you do not have to leave at all… But remember: for people who are good in what they do, who are confident in what they will and will not do and speak up for themselves, there will always be a place to work.

Now you!

Have you even thought about integrity? What are your guiding principles, values or ethics? What would you call bad work? And what will you do next time when somebody asks you something that conflicts with your ethics?

 

 

While reading stuff online about (refusing) bad work I ran into this blog post by Cal Newport about being bad at work: “Knowledge Workers are Bad at Working (and Here’s What to Do About It…)“Interesting enough Cal Newport wrote a book called “So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love” about the passion hypothesis in which he questions the validity of the hypothesis that occupational happiness has to match per-existing passion. In several recent talks and blog posts I did I talk about passion. Also in the talk discussed in this blog post I claim that passion is very important and I show a fragment of the Stanford 2005 commencement speech by Steve Jobs. Exactly the passage I showed in my talk, Cal uses in the first chapter of his book. “You’ve got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don’t settle.” Anyway. Interesting stuff to be researched. I bought the book and started reading it. To be continued…

 

 

 

Categories: Blogs

Are “Ready For” Columns on Kanban Boards The Enemy of God?

James Betteley's Release Management Blog - Thu, 04/17/2014 - 17:57

This is going to be a quick rant post, hopefully. Today I saw another Kanban board which had a “Read for test” column on it, here’s the screenshot:

Not 1 but 2 "Ready for" columns!

Not 1 but 2 “Ready for” columns!

 

I Think “Ready For” Columns Are Baaaaad

With most Kanban boards you mark a card as done when it’s ready to be pulled into another column. If that means it has to be deployed before a card is ready for test then so be it. The last thing we want is cards just sitting around waiting – this is baaaaaad. “Ready for Test” usually means it’s either deployed (and yet to be tested) or waiting to be deployed. Either way, not much is happening to the work sitting in this column. Basically it’s waste (or “muda” as the Lean Kanban aficionados might call it), and remember, waste is baaaaad.

 

Seriously, I Think They’re Baaaaad

A result of using these “Ready For x” columns is that they tend to slightly move us away from the “stop the line” practice that good Lean/Kanban systems employ. Basically whenever there’s a problem, or a bottleneck is appearing, we want to stop the production line and address the issue. So, if we keep all these “Ready for QA” cards in our In Dev or Code Review Column (basically whatever column comes before your Ready for QA column) then we’ll very quickly reach our WIP (Work In Progress) limit and the line will be stopped. That’s a good thing! We want to catch that bottleneck as soon as we can, we don’t want to hide it by pushing our cards into another “buffer” column.

 

Did I Mention That I Think “Ready For” Columns in Kanban Are Baaaaaad?

Yet another problem with “Ready for x” columns is that they quite often tend to be push rather than pull columns. You can’t really pull into a Ready for QA column as it isn’t an actual “workflow” state, it’s a “wasteflow” state (see what I did there?). I mean, who’s going to pull stuff into that column anyway? I’ve yet to meet a “ready for test” team who just sit around pulling cards into their column before marking them as “ready” (presumably once they’ve verified that they are indeed ready for test). Ok, you might have a deployment team who are responsible for deploying stuff to your test environments and so forth. In this case, your workflow state still isn’t “Ready for test” it’s “In Deployment”.

 

Conclusion

“Ready for x” columns make baby Jesus cry.


Categories: Blogs

Very Short Blog Posts (16): Usability Problems Are Probably Testability Problems Too

DevelopSense Blog - Wed, 04/16/2014 - 21:04
Want to add ooomph to your reports of usability problems in your product? Consider that usability problems also tend to be testability problems. The design of the product may make it frustrating, inconsistent, slow, or difficult to learn. Poor affordances may conceal useful features and shortcuts. Missing help files could fail to address confusion; self-contradictory […]
Categories: Blogs

Improving Software Quality with SonarQube

Testing TV - Wed, 04/16/2014 - 18:22
Software quality is about a lot more than slinging good code. As a developer you use numerous tools, techniques, processes and frameworks as you write, organize, build, test, refactor, and continuously improve your applications. SonarQube (formerly Sonar) is an open source quality management platform, dedicated to continuously analyze and measure source code quality. It makes […]
Categories: Blogs

Collective Noun for Testers?

The Social Tester - Wed, 04/16/2014 - 17:57
The other day I tweeted a picture of our test team testing together as a group (for the first time) in our new test lab. I asked “What do you call a collection of...
Categories: Blogs

AutoMapper 3.2.0 released

Jimmy Bogard - Tue, 04/15/2014 - 15:28

Full release notes on the GitHub site

Big features/improvements:

  • LINQ queryable extensions greatly improved
    • ICollection supported
    • MaxDepth supported
    • Custom MapFrom expressions supported (including aggregations)
    • Inherited mapping configuration applied
    • Windows Universal Apps supported
  • Fixed NuGet package to not have DLL in project
  • iOS confirmed to work
  • ReverseMap ignores both directions (only one Ignore() or IgnoreMap attribute needed)
  • Pre conditions on member mappings (called before resolving anything)
  • Exposing ResolutionContext everywhere, including current mapping engine instance

A lot of small improvements, too. I’ve ensured that every new extension to the public API includes code documentation. The toughest part of this release was coming up with a good solution to the multi-platform support and MSBuild’s refusal to copy indirect references to all projects.

As always, if you find any issues with this release, please report over on GitHub.

Enjoy!

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

Categories: Blogs

Testing on the Toilet: Test Behaviors, Not Methods

Google Testing Blog - Mon, 04/14/2014 - 23:25
by Erik Kuefler

This article was adapted from a Google Testing on the Toilet (TotT) episode. You can download a printer-friendly version of this TotT episode and post it in your office.

After writing a method, it's easy to write just one test that verifies everything the method does. But it can be harmful to think that tests and public methods should have a 1:1 relationship. What we really want to test are behaviors, where a single method can exhibit many behaviors, and a single behavior sometimes spans across multiple methods.

Let's take a look at a bad test that verifies an entire method:

@Test public void testProcessTransaction() {
User user = newUserWithBalance(LOW_BALANCE_THRESHOLD.plus(dollars(2));
transactionProcessor.processTransaction(
user,
new Transaction("Pile of Beanie Babies", dollars(3)));
assertContains("You bought a Pile of Beanie Babies", ui.getText());
assertEquals(1, user.getEmails().size());
assertEquals("Your balance is low", user.getEmails().get(0).getSubject());
}

Displaying the name of the purchased item and sending an email about the balance being low are two separate behaviors, but this test looks at both of those behaviors together just because they happen to be triggered by the same method. Tests like this very often become massive and difficult to maintain over time as additional behaviors keep getting added in—eventually it will be very hard to tell which parts of the input are responsible for which assertions. The fact that the test's name is a direct mirror of the method's name is a bad sign.

It's a much better idea to use separate tests to verify separate behaviors:

@Test public void testProcessTransaction_displaysNotification() {
transactionProcessor.processTransaction(
new User(), new Transaction("Pile of Beanie Babies"));
assertContains("You bought a Pile of Beanie Babies", ui.getText());
}
@Test public void testProcessTransaction_sendsEmailWhenBalanceIsLow() {
User user = newUserWithBalance(LOW_BALANCE_THRESHOLD.plus(dollars(2));
transactionProcessor.processTransaction(
user,
new Transaction(dollars(3)));
assertEquals(1, user.getEmails().size());
assertEquals("Your balance is low", user.getEmails().get(0).getSubject());
}

Now, when someone adds a new behavior, they will write a new test for that behavior. Each test will remain focused and easy to understand, no matter how many behaviors are added. This will make your tests more resilient since adding new behaviors is unlikely to break the existing tests, and clearer since each test contains code to exercise only one behavior.

Categories: Blogs

Selenium For Pythonistas

Testing TV - Mon, 04/14/2014 - 22:01
If you’re a full-stack Python developer who wants to incorporate functional tests into your toolkit, this presentation is aimed at helping you understand the why and when of Selenium. Learn about writing robust and maintainable tests for your web apps that can be run in any continuous integration setup. Video producer: https://thenewcircle.com
Categories: Blogs

Agile Lagging to Leading Metric Path

Even in an Agile environment there is a benefit to applying measures to understand progress.  It can be tempting to apply the same iron triangle metrics (based on cost, schedule, and scope) that may have been used in a more traditional mindset to Agile projects and initiatives.  Instead, I suggest removing all of those metrics and start with a clean slate.  On the clean slate, consider your outcomes.

An Agile mindset asks that you consider outcome instead of output as a measure of success.  This means we should first start with understanding our desired outcomes for an initiative or project.  Within a business context of building products, one measure of success an increase in revenue. Having a customer revenue metric helps you understand whether the products being built are increasing revenue upon release. While capturing revenue is a good starting point, it is a “lagging” indicator meaning you don’t recognize the evidence of revenue movement until after the release is in production and has been in the marketplace for a period of time.
To supplement lagging measures, you need corresponding leading measures and indicators that provide you with visibility during development to gauge if you are moving the product into a position of increased revenue. I call this framework the Lagging to Leading Metric Path.  This visibility is important because it provides input for making decisions as you move forward. Making the right decision leads to improved results. As you consider measures, think about how they help you gain visibility and information for decisions in building a product that helps you lead toward an increase in revenue.
For a hopeful increase in customer revenue, what leading metrics can we put in place to ensure we are moving in the right direction?  Let’s say in this case that increased revenue is the hopeful lagging metric based on expected customer sales.  Examples of leading measures or indicators to achieve an outcome of this lagging metric for increased customer revenue include:
  • Customers attending Sprint Review: a leading metric where you capture how many customers are actually attending the sprint review and how much feedback they give. This indicates engagement and interest. 
  • Customer satisfaction from Sprint Review: a leading metric is capturing customer satisfaction from the functionality they viewed within the sprint review.  This indicates levels of satisfaction with the functionality as the product is being built. 
  • Customer satisfaction of product usage: an indicator of the most recent release highlighting a level of satisfaction on the usage of the current product including commentary.   

When applying Agile to product development, the outcome that matters most are often represented by lagging metrics.  Therefore you will need leading indicators to ensure you are moving in the right direction, to provide visibility, and to help you with decision-making.   Within your own context, consider constructing a lagging to leading metric path so that you know you are moving in the right direction during your Agile journey.

                    ------------------------------------------------------------------------
Note: the lagging to leading metric path really isn't specific to Agile and I would suggest applying this to an initiative or project aligning with any mindset, process, method, or practice of delivering value.

To read more about establishing an Agile Lagging to Leading Metric Path and Agile Measures of Success, consider reading Chapter 14 of Being Agile
Categories: Blogs

Variable Testers

James Bach's Blog - Sun, 04/13/2014 - 23:55

I once heard a vice president of software engineering tell his people that they needed to formalize their work. That day, I was an unpaid consultant in the building to give a free seminar, so I had even less restraint than normal about arguing with the guy. I raised my hand, “I don’t think you can mean that, sir. Formality is about sameness. Are you really concerned that your people are working in different ways? It seems to me that what you ought to be concerned about is effectiveness. In other words, get the job done. If the work is done a different way every time, but each time done well, would you really have a problem with that? For that matter, do you actually know how your folks work?”

This was years ago. I’m wracking my brain, but I can’t remember specifically how the executive responded. All I remember is that he didn’t reply with anything very specific and did not seem pleased to be corrected by some stranger who came to give a talk.

Oh well, it had to be done.

I have occasionally heard the concern by managers that testers are variable in their work; that some testers are better than others; and that this variability is a problem. But variability is not a problem in and of itself. When you drive a car, there are different cars on the road each day, and you have to make different patterns of turning the wheel and pushing the brake. So what?

The weird thing is how utterly obvious this is. Think about managers, designers, programmers, product owners… think about ANYONE in engineering. We are all variable. Complaining about testers being variable– as if that were a special case– seems bizarre to me… unless…

I suppose there are two things that come to mind which might explain it:

1) Maybe they mean “testers vary between satisfying me and not satisfying me, unlike other people, who always satisfy me.” To examine this we would discover what their expectations are. Maybe they are reasonable or maybe they are not. Maybe a better system for training and leading testers is needed.

2) Maybe they mean “testing is a strictly formal process that by its nature should not vary.” This is a typical belief by people who know nothing about testing. What they need is to have testing explained or demonstrated to them by someone who knows what he’s doing.

 

 

 

 

 

Categories: Blogs

Exploratory Tumbling

Hiccupps - James Thomas - Sat, 04/12/2014 - 07:43
A short questionnaire:

1. Do you ever find yourself navigating unfamiliar territory in search of areas that return some value?
2. Are you a bacterium?

If your answers were (no, no) or (yes, yes) feel free to stop reading now.

I was listening to a podcast, The Biology of Freedom, from the BBC's Discovery programme this week. Towards the end they talk about how cells move around seeking food using a kind of targeted random walk.

It's called chemotaxis:[a bacterium's] movement will look like ... relatively straight swims interrupted by random tumbles that reorient [it] ... By repeatedly evaluating their course ... bacteria can direct their motion to find favorable locations with high concentrations of attractantsA short questionnaire:

1. Would you be interested in a heuristic that might help guide your exploration?
2. Are you a tester?

If your answers are (yes, yes) there might be the germ of an idea for you here.Image: https://flic.kr/p/5oeqni
Categories: Blogs

Community Update 2014-04-11–#webdev, #aspnet, #dotnet, #python for #visualstudio, #azure #webjobs

Decaying Code - Maxime Rouiller - Fri, 04/11/2014 - 23:08

 

Must Read/Watch

Roslyn (.NET Compiler Platform) As Open Source - Leaning Into Windows (msmvps.com)

Banking Example Again | Greg Young's Blog on WordPress.com (goodenoughsoftware.net)

The story behind the wallpaper we'll never forget (www.youtube.com) – The history behind the Windows XP wallpaper.

Web Development

How to make an Object inherit from a Class in JavaScript – Max Schmitt (maximilianschmitt.me)

How to follow the Google webmaster guidelines (www.feedthebot.com)

Coherent Labs » Announcing Unreal Engine 4 and CRYENGINE integration (coherent-labs.com) – Unreal engine with HTML5 and JavaScript

Implementing Private and Protected Members in JavaScript — Philip Walton (philipwalton.com)

ColorBrewer: Color Advice for Maps (colorbrewer2.org)

Debugging Asynchronous JavaScript with Chrome DevTools - HTML5 Rocks (www.html5rocks.com)

jQuery Conf Video: Understanding Scope in JavaScript - Quick Left Boulder Colorado (quickleft.com)

Improve your JavaScript with Web Essentials and JSHint (blogs.msdn.com)

Offline.js – Handle your users losing their internet connection like a pro (github.hubspot.com)

Python

Python Tools for Visual Studio 2.1 Beta (blogs.msdn.com)

.NET

Prototype Members vs Static Members vs Instance Members (and Dependency Injection) (derickbailey.com)

Micro-JSON - a JSON parser for the .Net Micro Framework (channel9.msdn.com)

Async Processing in EF6 and the Microsoft .NET Framework 4.5 -- Visual Studio Magazine (visualstudiomagazine.com)

A new search experience on the Gallery (blog.nuget.org)

ASP.NET

Intellisense for JSON Schema in the JSON Editor (blogs.msdn.com)

Windows Azure

Azure WebJobs 104 - Hosting and testing WebJobs in .NET with the WebJobs SDK with Pranav Rastogi (channel9.msdn.com)

Categories: Blogs

Community Update 2014-04-09 – #thinktecture new preview, #angularjs, #heartbleed, #javascript, #nancyfx and more

Decaying Code - Maxime Rouiller - Thu, 04/10/2014 - 04:00

So for those who are wondering, there’s this big thing about “heartbleed”. The “too long didn’t read version” is that it only impact OpenSSL and therefor, IIS is not affected.

The bad thing is, it put a dent in the trust we had over open source code. What about the rest of the projects we rely on? Questions, questions…

Enjoy the reading!

Must Read

Heartbleed Hotel: The biggest Internet fuckup of all time | Brad's Blog (lostechies.com)

Bedrock | Infrequently Noted (infrequently.org) – Very nicely written article about JavaScript.

Thinktecture Special

Announcing Thinktecture IdentityServer v3 – Preview 1 | leastprivilege.com on WordPress.com (leastprivilege.com)

Introducing Thinktecture IdentityManager | brockallen on WordPress.com (brockallen.com)

.NET

EF Code First Migrations Deployment to an Azure Cloud Service (blogs.msdn.com)

NuGet Package of the Week: Humanizer makes .NET data types more human - Scott Hanselman (www.hanselman.com)

Image Resizer for Windows Explorer Shell Extension (channel9.msdn.com)

xUnit – dynamically skipping tests for different test-environments | danielwertheim on WordPress.com (danielwertheim.se)

ASP.NET

Visual Studio extensions for web developers (madskristensen.net)

Nadeem Afana's blog · ASP.NET MVC 5 Internationalization · Date and Time (afana.me)

Opt in and opt out from ASP.NET Web API Help Page - StrathWeb (www.strathweb.com)

Bootstrapping AngularJS Applications with Server-Side Data from ASP.NET MVC & Razor – Marius Schulz (blog.mariusschulz.com)

Token Authentication · NancyFx/Nancy Wiki · GitHub (github.com)

Windows Azure

Introducing the Microsoft Azure Management Libraries - Jeff Wilcox (www.jeff.wilcox.name)

Categories: Blogs

Announcing IdentityServer v3 and IdentityManager v1 – From @BrockLAllen

Decaying Code - Maxime Rouiller - Wed, 04/09/2014 - 17:35

So Brock Allen just announced that the Preview for its famous identity servers are hitting another milestone. Of course it’s only preview 1 but it’s worth it.

IdentityServer is the best free OAuth/OpenId there is right now. The v3 is bringing us full OWIN support with smaller deployable endpoints, default login screen for any logins and more. This also means, deployable out of IIS.

As for IdentityManager, it’s a reboot of the ASP.NET Configuration found in Visual Studio since forever. Better interface and 100% compatible with the latest ASP.NET Identity bits.

So if you are looking for an OAuth server, checkout IdentityServer v2 (while waiting for v3 to go full release) and secure your endpoints.

Here are some links that were given by Brock:

IdentityServer v3

Blog post: http://leastprivilege.com/2014/04/09/announcing-thinktecture-identityserver-v3-preview-1/

Introduction video: https://vimeo.com/91397084

Samples video: https://vimeo.com/91405115

Extending IdentityServer v3 video: https://vimeo.com/91520314 IdentityManager v1 – Identity/User Management for MembershipReboot and ASP.NET Identity

Blog post: http://brockallen.com/2014/04/09/introducing-thinktecture-identitymanager/

Introduction video: https://vimeo.com/91470580

Categories: Blogs