This is a mirror of official site: http://jasper-net.blogspot.com/

Powerful, simple new mass SQL injection attack opens 180K sites

| Thursday, October 27, 2011
October 24, 2011, 4:16 PM — A new, prepackaged set of SQL injection techniques are circling the Internet, injecting malicious JavaScript into sites that run on ASP.NET with code that allows attackers to open a door on the sites and slip in malware or other exploits that they can use to take over or sabotage the site.

According to Alex Rothacker, director of security research for Application Security, Inc.'s Team Shatter, which lists SQL injections with data-base access components the No. 2 security risk.

So far, 180,000 sites have had been penetrated by the new attack, which differs from existing SQL injections like the ones that cracked Sony 17 or 18 times because it attacks not one site at a time, but dozens.

Once they're cracked, the infected sites start serving copies of the malware to their visitors, extending the attack even further.

The attacks started Oct. 9, according to web security provider Armorize, which also found only six of 43 virus detectors can pick up the malicious code.

The attack injects malicious JavaScript code into ASP.NET sites that store HTML content in SQL Server databases – content that acts as a cache to make subsequent visits to that page far quicker because the main page is coming out of a local database rather than through the Internet, according to Rothacker, whose analysis ran in HelpNet Security

When a visitor hits the site, the pages link the browser to a site called jighui.com, which runs a script that infects it with botnet-control code that gives the botnet owner control to run code or make changes on the newly zombified machine.

Read more: ITWorld
QR: powerful-simple-new-mass-sql-injection-attack-opens-180k-sites

Posted via email from Jasper-net

? למה אנחנו צריכים אותו– Observer design pattern

|
בזמן האחרון כל הפיתוח של אתרי ווב מתקדמים עוברים לצד לקוח וככל שזה כך, אנחנו בתור מפתחי ווב נדרשים לרכוש ידע רחב בנושא, מאחר וזה צד לקוח השפה הברורה והיחידה כרגע היא שפת JavaScript.

אני אסביר לצורך מה אנחנו צריכים את ה-Observer Pattern.

מה זה Observer (משקיף)?

זה בעצם מה שזה אומר משקיף על האירועים שאליהם אנו נרשמים , עיקרון זה ממומש בתוך Knockout.JS ועוד פריימוורקים אחרים.

לצורך הבנה מה קורה מאחורי הקלעים של כל הפריימוורקים אני אדגים Template של Observer ואיך הוא עובד ב-JS.

בדוגמא הזו אני מייצר instance אחד של Observer פר Context , אפשר לוותר על זה אם ישנו צורך ביותר ממשקיף אחד על האירועים , אפשר כמובן להשתמש עם הרבה אירועים על משקיף אחד או הרבה משקיפים על אירוע אחד תלוי בצורך שלכם ובמקרה בו אתם מטפלים.

var Observer = {};

 

Observer.init = (function () {

  var observableCollection = [];

  return {
    register: function (fn) {
      console.log("registered");
      observableCollection.push(fn);
    },


Read more: genadysh
QR: observer-design-pattern.aspx

Posted via email from Jasper-net

מה חדש ב Windows 8 למפתחי Device Drivers ולכל מי שמה שקורה מתחת למכסה המנוע של Windows 8 מענין אותו

|
תהליך פיתוח ה Device drivers עובר מהפכה עם ההכרזה על חלונות 8. הכלים עברו שידרוגים, יש סביבת פיתוח חדשה Visual Studio 2011, יש פרוטוקולים חדשים לחיבור Kernel Debugger למערכת ההפעלה, יש הנחיות חדשות לגבי תאימות לתכנית ה Logo, יש כלי Debug ו Testing משופרים, ויש כלי אנליזה ואיתור בעיות חדשים ומשופרים, שמאפשרים לאתר בעיות ותקלות בתחום ה Device Drivers מהר יותר.

החלטתי להרים את הכפפה וביחד עם ג'ון ברייס מכללת הי-טק, אני מרים יום הדרכה שלם, שמוקדש לכל מה שחדש ב Windows 8, מנקודת מבט של תשתית ה Drivers של מערכת ההפעלה. אני יודע שכולם (כולל אני) מתלהבים מממשק המשתמש החדש Metro UI. אבל כל התמיכה של מערכת ההפעלה החדשה ב Sensors וב Touch, מבוססים בסופו של דבר על היכולת של מערכת ההפעלה לתמוך בחמרה שמספקת את המידע הזה. ויש המון חידושים מעניינים בתחום הזה ב Windows 8.

מה יהיה לנו ביום העיון ? מה לא !

Read more: GadiM - Gad J. Meir
QR: 920997.aspx

Posted via email from Jasper-net

mobile.slashdot.org/story/11/10/19/1222218/android-ice-cream-sandwich-sdk-released

| Wednesday, October 26, 2011
   The highly anticipated Android 4.0 (codenamed Ice Cream Sandwich) has been released and finally brings the features of 3.x Honeycomb to smaller devices. Some of the highlights include: a revamped UI, a much faster browser, face unlock, a vastly improved camera app, improved task switching, streaming voice recognition, Wi-Fi Direct, and Bluetooth Health Device Profile. ... The API level is 14, download the new SDK here.

Read more: Slashdot
QR: android-ice-cream-sandwich-sdk-released

Posted via email from Jasper-net

Nautilus Terminal: Embed Linux Terminal To Nautilus File Browser

|
Terminal.png

The Terminal is perhaps one of the most integral parts of any Linux OS, even if a non-GUI-based, Slackware-style operating system seems a thing of the past. This is because, despite the introduction of Ubuntu-based operating system with Software Centers, one often requires using the Terminal for executing system-related commands, adding/removing repositories and downloading application packages. While opening the Terminal can be a bit irritating, particularly if you’re using the classic start menu, it might be quite handy to embed Terminal to the Nautilus file browser. Nautilus Terminal is an extension that adds Terminal to the file browser, following navigation with automatic execution of the “cd” command when you move between folders.

Nautilus terminal fully supports all common functions such as copy/paste (using Ctrl+Shift+C and Ctrl+Shift+V) and drag & drop functionality.

Read more: Addictive tips
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=www.addictivetips.com/ubuntu-linux-tips/nautilus-terminal-embed-linux-terminal-to-nautilus-file-browser/

Posted via email from Jasper-net

Impersonation and Delegation in WCF

|
Impersonation is a technique that WCF Services use to authorize the caller’s identity to access to service resources such as files and database tables. Service resources can be located either on local service machine or remotely hosted. The resources are being accessed by WCF Service’s process identity or specific windows identity.    

Difference between Impersonation and Delegation in WCF?

Impersonation is used to access the resources when the resources are on the same machine as the service. Delegation is used to access the resources that are remotely hosted.

There are two types of Impersonation in WCF

    Imperative Impersonation – Perform programmatically at run time
    Declarative Impersonation – Applied with a static attribute which associated with an operation.

Use Impersonation when

    You want to access windows resources that are protected with access control lists(ACL’s).
    You need to use specific identity or several windows identities to access resources.

Use Delegation when

    You need to access network resources.

Declarative Impersonation

[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string GetData(int value)
{
    return “test”;
}


Read more: Techbubles
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://www.techbubbles.com/webservices/impersonation-and-delegation-in-wcf/

Posted via email from Jasper-net

New Attack Tool Exploits SSL Renegotiation Bug

|
    A group of researchers has released a tool that they say implements a denial-of-service attack against SSL servers by triggering a huge number of SSL renegotiations, eventually consuming all of the server's resources and making it unavailable. The tool exploits a widely known issue with the way that SSL connections work. The attack tool, released by a group called The Hacker's Choice, is meant to exploit the fact that it takes a lot of server resources to handle SSL handshakes at the beginning of a session, and that if a client or series of clients sends enough session requests to a given server, the server will at some point fail. The condition can be worsened when SSL renegotiation is enabled on a server. SSL renegotiation is used in a number of scenarios, but most commonly when there is a need for a client-side certificate. The authors of the tool say that the attack will work on servers without SSL renegotiation enabled, but with some modifications.

Read more: Slashdot
QR: new-attack-tool-exploits-ssl-renegotiation-bug

Posted via email from Jasper-net

QuickSharp

|
A minimalist IDE for Microsoft .NET

quicksharp_11.png

Take control of your development tools...

QuickSharp is a streamlined integrated development environment for Microsoft's .NET platform. It provides a simple, uncluttered development approach that lets you get programming in an instant. QuickSharp doesn't use solutions or projects, programs and libraries are developed as individual files making development a breeze. With QuickSharp you can work closer to the .NET Framework development tools and get to grips with the most advanced development platform for Windows from the ground up.

QuickSharp is not just a development environment, it's also a lightweight application framework which can be easily modified and extended using a simple plugin-based architecture. The QuickSharp IDE is developed entirely using this framework and you can use it to create your own highly customized development environments.

Read more: QuickSharp
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://quicksharp.sourceforge.net/

Posted via email from Jasper-net

לאונרדו דיקפריו משקיע ב-Mobli הישראלית [גיוס]

|
בהודעה ששיחררה לפני דקות אחדות (ג') חברת מובלי (Mobli) הישראלית, הצהירה החברה על השקעתו של השחקן לאונרדו דיקפריו שתצטרף לסבב גיוס ראשון שחותם הסטארטאפ הישראלי יחד עם השקעות פרטיות נוספות על סך כולל של 4 מיליון דולרים. מובלי אחראית לפיתוח פלטפורמה חברתית ויזואלית שמאפשרת למשתמשים לשתף תמונות וקטעי וידאו באופן אינטואיטיבי במיוחד, לפני כחודש השיקה החברה אפליקציות לאנדרואיד ובלקברי שהצטרפו לאפליקציה הותיקה שלה לאייפון.
"גאה להיות חלק ממובלי"

בדברים שמסר דיקפריו מוקדם יותר באשר להשקעה הטרייה טען השחקן: "אני מתרגש מאוד להוות חלק ממובלי, חברה פורצת דרך שנוטלת תפקיד פעיל במהפכה הקשורה לדרך שבה אנשים יוצרים אינטרקציה עם מידע ויזואלי, יוצרים אותו או צורכים אותו. מובלי מאפשרת למשתמשים מכל רחבי העולם לחלוק רגעים".

מובלי היא פלטפורמה חברתית ויזאולית שמבוססת בעיקר על שיתוף באמצעות מכשירי סמארטפון ומאפשרת, כך על פי הסלוגן שלה: "להביט בעולם דרך עיניים של אנשים אחרים". הרעיון של מובלי, אותה ייסד משה חוגג, היא למקסם את חווית השיתוף באמצעות המכשירים הניידים שהפכו זמינים כל כך בשנים האחרונות והופיעו למעשה מעט אחרי שרשתות חברתיות פופולאריות כמו פייסבוק נולדו והחלו לעבור התאמה איטית ומסורבלת לעולם החדש שנוצר. פלטפורמת השיתוף של מובלי מבוססת על חוויה ויזואלית הרבה יותר ומתמקדת בתמונות וקטעי וידאו יחד עם שימוש נרחב בשירותים מבוססי מיקום. כך למשל במידה ואתם בהופעה, במשחק טניס או בכל מקום אחר, תוכלו לאתר ולצפות באינספור זוויות שונות של משתמשים שנמצאים באותו מקום ועושים שימוש באפליקציה, או לחילופין לשבת בבית ולצפות בחוויה של אנשים אחרים שנמצאים במקומות שמסקרנים אתכם.

Read more: newsGeek
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=www.newsgeek.co.il/leonardo-dicaprio-invests-in-mobli/

Posted via email from Jasper-net

Office 2007 Family Service Pack 3 Released

|

The 2007 Microsoft Office Servers Service Pack 3 (SP3), 32-bit Edition

‎Service Pack 3 provides the latest updates to the 32-bit editions of all of the 2007 Microsoft Office System servers.

The 2007 Microsoft Office Servers Service Pack 3 (SP3), 64-Bit Edition

‎Service Pack 3 provides the latest updates to the 64-bit editions of

Service Pack 3 for Windows SharePoint Services 2007 (KB2526305), 86-Bit Edition

‎Service Pack 3 provides the latest updates to Windows SharePoint Services 2007, 86-Bit Edition.

Service Pack 3 for Windows SharePoint Services Language Pack 2007 (KB2526305), 86-Bit Edition

‎Service Pack 3 provides the latest updates to Windows SharePoint Services Language Pack 2007, 86-Bit Edition.

Service Pack for SharePoint Designer Language Pack 2007 (KB2526089)

‎Service Pack 3 provides the latest updates to SharePoint Designer Language Pack 2007.

Service Pack for Windows SharePoint Services Language Pack 2007 (KB2526305), 64-Bit Edition

‎Service Pack 3 provides the latest updates to Windows SharePoint Services Language Pack 2007, 64-Bit Edition.

Service Pack 3 for SharePoint Designer 2007 (KB2526089)

‎Service Pack 3 provides the latest updates to Microsoft SharePoint Designer 2007.

(more...)

Read more: Bink.nu
QR: office-2007-family-service-pack-3-released.aspx

Posted via email from Jasper-net

.Net Framework 4.0.2 Release Information Rollup

| Tuesday, October 25, 2011
Multi-Targeting Pack for Microsoft .NET Framework 4.0.2 (KB2544526)

    This update adds support for designing and developing applications for the Update 4.0.2 for Microsoft .NET Framework 4 by using Microsoft Visual Studio 2010 SP1 or later. The MT Pack adds new reference assemblies, IntelliSense files, and other supporting files. For further details about the contents of this Targeting Pack refer to the Knowledge Base Article KB2544526.

Update 4.0.2 for Microsoft .NET Framework 4 – Design-time Update for Visual Studio 2010 SP1 (KB2544525)

    This package contains updated design-time files for Visual Studio 2010 SP1 corresponding to Update 4.0.2 for Microsoft .NET Framework 4. For further details about the contents of Update 4.0.2 for Microsoft .NET Framework 4 – Design-time Update please refer to the Knowledge Base Article KB2544525.
    This design time package installs the following individual packages:

        Update 4.0.2 for Microsoft .NET Framework 4 – Runtime Update (KB2544514)
        Multi-Targeting Pack for the Microsoft .NET Framework 4.0.2 (KB2544526)
        Visual Studio 2010 SP1 Update for enabling workflow state machine designer (KB2495593)

Update 4.0.2 for Microsoft .NET Framework 4 – Runtime Update (KB2544514)

    Update 4.0.2 for Microsoft .NET Framework 4 package contains updated runtime files. For further details about the contents of this Runtime Update please refer to the Knowledge Base Article KB2544514.

Multi-Targeting Pack for Microsoft .NET Framework 4.0.1 (KB2495638)

    This update adds support for designing and developing applications for the Update 4.0.2 for Microsoft .NET Framework 4 by using Microsoft Visual Studio 2010 SP1 or higher. The MT Pack adds new reference assemblies, IntelliSense files, and other supporting files. For further details about the contents of this Targeting Pack refer to the Knowledge Base Article KB2495638.


Read more: Greg's Cool [Insert Clever Name] of the Day
QR: net-framework-402-release-information.html

Posted via email from Jasper-net

Functions in Python

|
I have just completed to update the functions topic in my Python Fundamentals course. You can find its community version available for free personal usage at www.abelski.org. The slides are available for free download. The professional version is available at www.abelski.com.

You can find below the new video clips I have just completed to create in order to assist learning this topic.

Read more: Life Michael
QR: functions-in-python.aspx

Posted via email from Jasper-net

Debugging NHibernate: Session Management

|
Introduction

NHibernate session is a gateway for all operations that you perform on your datastore. It also plays a role of the first-level cache, minimizing the number of roundtrips between your application and the database server. As NHibernate documentation states, session is "a single-threaded, short-lived object representing a conversation between the application and the persistent store". Pay special attention to the bolded words: single-threaded and short-lived. Single-threaded in web-development world basically means that you should not use the same session instance in two or more concurrent requests. Short-lived on the other hand instructs you not to "overuse" the session instance so it does not become a copy of the database. It's on the developer's shoulders to meet those requirements and implement a correct session management. Fortunately, there are several patterns already created for this purpose: session-per-request, session-per-conversation, session-per-thread, etc. with their implementation exemplars easily accessible in the Internet. But even if you take one of those examples and adapt it to your application needs, it may happen that the session does not behave in a way that you would expect: objects are not persisted, events are not fired or you get LazyLoadException. Those nasty bugs are usually quite tricky to resolve, especially in enterprise-level applications where objects lifetime is controlled by some kind of Inversion of Control container. In this article, I would like to show you how to find the exact moments when the session is created and destroyed (and by whom) and what information can be retrieved from its properties.

The usual approach in investigating NHibernate internals would be to turn on its fine-grained logging and check the log4net appenders output. However it's not the approach that I would like to describe in this post (please make a comment if you wish to read an article about detailed NHibernate logging). Today, we will focus on how to use the Visual Studio debugger to examine the session management. I prepared a sample application on which you may train the debugging process (details of the configuration are provided at the end of the post).


Prepare NHibernate Symbols

To be able to debug the NHibernate source code, the debugger must know how to find it. If you are using the 3.0.0 version of NHibernate, you may use http://www.symbolsource.org configuring Visual Studio to use their symbol store. If your NHibernate version is different, you need to either compile NHibernate on your own and reference the produced binaries in your project or make use of the sourcepack script. Here I will describe the second approach (especially because I'm the author of the sourcepack and I need to advertise it somehow ;)). To use sourcepack, you will need to install Debugging Tools for Windows (you may install them from the WDK image) and powershell v2. The next step is to download NHibernate binaries (you should have them already in your application bin folder) and NHibernate sources from their sourceforge page.


Read more: Codeproject
QR: DebuggingNHibernate.aspx

Posted via email from Jasper-net

Internals of Interface and its Implementation

|
As many of my followers requested me to write few things that I missed out from the Internals Series, I should continue with it. In this post, I will cover the internals of Interface implementation and mostly talk about explicit interface implementation, as most of the developers seems to be in confusion with it. I hope you will like the post.

Beginning from the basics, Interfaces are the most important part of any application. Interfaces are language construct that does not implement anything but declares a few members upfront. Generally we use interfaces to create a contract between the two or more communication agents. Another important thing that everyone would be knowing already, Interfaces are meant to be implemented. That means whenever you are creating a class, all the members that were there in the interface are meant to be implemented completely. .NET (or probable any other standard language) disallows the creation of objects on types that are not fully defined. Hence abstract classes also coming into play here. They are classes that have few members undefined or abstract. Once you don't have concrete implementation, you cannot create an instance of a type. Notably, you can say "Interface is a types that does not belong to the System.Object or implement it when it reside inside an assembly". But ironically you could also says that once the type is implemented, it would probably inherit from System.object by default.

Another important OOPS feature is that you can hold reference of any concrete type to any of its base implementations. By this what I mean, if say class X derived from Y and implements Z (where Z is an interface) you can say either Y y1 = new X() or Z z1 = new X().

Now lets define an interface and start some tweaks some of its behaviors.

public interface IA
{
    void GetX();
}


Let us suppose we have an interface IA which has a method GetX(). Now you should remember, it is not allowed to use access specifier for members of an interface as that mean the implementers of this interface needs to specify access specifiers for its members and it would appear to all implemtors that these members are public.  Now lets see one implementation of it.

public class A : IA
{
    public void GetX()
    {
        Console.WriteLine("Here is X: Normal");
    }
    void IA.GetX()
    {
        Console.WriteLine("Here is X: Explicitely");
    }
}


Read more: Beyond relational
QR: internals-of-interface-and-its-implementation.aspx

Posted via email from Jasper-net

The Noob's Guide to Open XML Dev (If you know how to spell OpenXML but that's about it, this is your Getting Started guide...)

|
    "This blog post introduces the first in a series of screen-casts that are specifically for a developer starting development with Open XML for the first time. It is a project that I've been meaning to work on for some time, and I recently received the mandate that this should get done, so this is the start of it. In this video, I discuss the Open XML standard from a high level, discuss the resources that helped me get started, and point you to places to find additional resources. I've already recorded the second video, in which I discuss the various tools that you will want to be familiar with in order to do Open XML development. In the third video, I'll discuss the various typical development scenarios for Open XML. In the fourth video, I'll discuss platforms, languages, and libraries, and in the fifth, I'm going to discuss my current thoughts on development approaches. (At least, this is my current plan. We'll see how it proceeds.)

    If you are an experienced Open XML developer, this first video in the series is probably not for you. This first video is targeted towards developers who know Open XML is a document format based on XML, and maybe not much more. Experienced developers may get something from subsequent videos, though.

    ..."

There's some things I love about the OpenXML SDK/format and some I hate (mostly how different the SDK API's are from the Office API's) but the like easily overrides the dis-like. Having an open format that's fully documented and easy(er) to spelunk is a night and day difference over trying to work directly with the Office binary formats.

Read more: Greg's Cool [Insert Clever Name] of the Day
Read more: Getting Started with Open XML Development
QR: getting-started-with-open-xml-development.aspx

Posted via email from Jasper-net

Open Kernel Crash Dumps in Visual Studio 11

|
A dream is coming true. A dream where all the debugging you’ll ever do on your developer box is going to be in a single tool – Visual Studio.

In a later post, I will discuss device driver development in Visual Studio 11, which is another dream come true. For now, let’s take a look at how Visual Studio can open kernel crash dumps and perform crash analysis with all the comfy tool windows and UI that we know and love.

To perform kernel crash analysis in Visual Studio 11, you will need to install the Windows Driver Kit (WDK) on top of Visual Studio. Go on, I’ll wait here.

First things first – you go to File | Open Crash Dump, and you’re good to go:

image_thumb_735FD7B2.png

Read more: All Your Base Are Belong To Us
QR: open-kernel-crash-dumps-in-visual-studio-11.aspx

Posted via email from Jasper-net

Hello World in IronPython

|
We can download  a .NET version for Python at IronPyhon.net. Once we download and install it on our PC we can use Visual Studio to develop in Python. The code we write will be compiled into CLR code. The code we write can use the .NET framework.

Read more: Life Michael
QR: hello-world-in-ironpython.aspx

Posted via email from Jasper-net

הכירות עם LocalDB: גירסת SQL Express משופרת למפתחים

|
הוא גירסא חדשה של SQL Server המיועדת למפתחים. זהו DB קל להתקנה ושימוש, שאינו דורש ניהול מורכב אך עדיין מספק את כל יכולות ה- T-SQL שיש לגירסאות ה- MS SQL המלאות להציע וכן תומך באותם Providers של SQL Server. בפוסט הזה נסקור את הרקע לשינוי ואת ההשפעה על המפתחים המשתמשים במסד נתונים ממשפחת SQL Server.

את כלי הפיתוח החדשים ב- SQL Server 2012 כבר הכרתם?
הקדמה

כיום, משתמשים ב- SQL Server Express בשתי דרכים נפוצות:

    כמסד נתונים חינמי עבור אפליקציות קטנות עד בינוניות. אפליקציות רבות מסתפקות ב- SQL Express בתחילת דרכן ומתבססות על כך שהוא זהה מבחינת הקונפיגורציה והניהול לשאר הגירסאות בתשלום של SQL Server. תהליך המעבר מהגרסה החינמית לגירסאות בתשלום הוא עניין של הזנת Product Key בלבד, כשמגיע השלב לעשות זאת.
    כמסד נתונים לצורכי פיתוח. SQL Express הוא קטן יותר להורדה וקל יותר להתקנה מאשר שאר הגירסאות ומפתחים משתמשים בו כדי לצאת לדרך בפיתוח אפליקציות מבוססות נתונים.

עם השנים, בשל הרצון לשמור על אחידות ביכולות של SQL Server Express לעומת הגירסאות המורחבות יותר בתשלום, הוא נהפך לגדול יותר להורדה, מורכב יותר לקונפיגורציה וניהול ההרשאות – מורכב מדי לצרכי פיתוח בלבד.
הכירו את LocalDB

החל מ- SQL Server 2012 (עד לאחרונה הייתה ידועה בשם “Denali”) מצטרף מסד נתונים חדש למפתחים בשם LocalDB המשלב את הפשטות בהתקנה וקונפיגורציה שמפתחים צריכים לצורך פיתוח מצד אחד, ובו זמנית את התאימות לשאר הגירסאות של SQL Server.

Posted via email from Jasper-net

What DX level does my graphics card support? Does it go to 11?

| Monday, October 24, 2011
Recently I run into a situation that I have run into quite a few times. Someone encounters a machine and the question arises: "Is there a DirectX 11 card in this machine?". Typically the reason you are interested in that is because cards with DirectX 11 drivers fully support DirectCompute (and by extension C++ AMP) for GPGPU programming. The driver specifically is WDDM (1.1 on Windows 7 and Windows 8 introduces WDDM 1.2 with cool new capabilities).

There are many ways for figuring out if you have a DirectX11 card, so here are the approaches that you can use, with a bonus right at the end of the post.


Run DxDiag

WindowsKey + R, type DxDiag and hit Enter. That is the DirectX diagnostic tool, which unfortunately, only tells you on the "System" tab what is the highest version of DirectX installed on your machine. So if it reports DirectX 11, that doesn't mean you have a DX11 driver! The "Display" tab has a promising "DDI version" label, but unfortunately that doesn't seem to be accurate on the machines I've tested it with (or I may be misinterpreting its use). Either way, this tool is not the one you want for this purpose, although it is good for telling you the WDDM version among other things.


Use the Microsoft hardware page

There is a Microsoft Windows 7 compatibility center, that lists all hardware (tip: use the advanced search) and you could try and locate your device there… good luck.


Use Wikipedia or the hardware vendor's website

Use the Wikipedia page for the vendor cards, for both nvidia and amd. Often this information will also be in the specifications for the cards on the IHV site, but is is nice that wikipedia has a single page per vendor that you can search etc. There is a column in the tables for API support where you can see the DirectX version.


Read more: The Moth
QR: What-DX-Level-Does-My-Graphics-Card-Support-Does-It-Go-To-11.aspx

Posted via email from Jasper-net

Creating a basic code analysis with Roslyn

|
If you’ve installed the Roslyn CTP, you can go to the installation folder and look inside the Documentation folder, there’s a lot of interesting information here that you can make use of. I’ve got my documentation here:

    C:\Program Files (x86)\Microsoft Codename Roslyn CTP\Documentation

Now there’s one document here that is a bit extra interesting, at least for me, it talks about how we can make basic code analysis with Roslyn ( How to Write a Quick Fix (CSharp).docx ). The basic idea is to identify whenever a variable can be made const. So for those of you that haven’t had the time to download and install Roslyn yet, I’ll show you how to do exactly that with the help of their sample. It’s essentially the same outcome and code as they use in their documentation, but I will try explain a little bit more about each piece and add some extra things as well. But be sure to check out the documentation that comes with Roslyn as well!

However, the sample in the document has an error to it so it doesn’t run out of the box!

First thing is to open up an instance of Visual Studio and create a new Code Issue project, I’ll call it MyFirstCodeIssueFix

roslyn_code_fix_1.png

Read more: Filip Ekberg's blog
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://blog.filipekberg.se/2011/10/23/creating-a-basic-code-analysis-with-roslyn/

Posted via email from Jasper-net

SQL Server Stored Procedure best practices

|
Project Description

 
This SQL Server stored procedure best practice guide contains documentations of best practices and helper tools to enhance further match with the best practices.


This project is for SQL Server 2005 (and above) stored procedures, although I have included some notes to indicate supports for large databases. It also means to sync with the EF supports from many database providers.

Other databases beside SQL Server as interoperability:

    Oracle version 9i
    IBM DB2 (8.2.x or higher)
    MySql 5.1 or higher


Read more: Codeplex
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://sqlsprocbestpractice.codeplex.com/

Posted via email from Jasper-net

Simple Style Definition in Silverlight

|
Instead of specifying separately for each and every element how exactly it should look we can define a style and then apply it on various elements. Using styles promotes code reuse, makes our code shorter and assists with the code maintenance in the long run. Defining a style is about defining a collection of property values we can then apply to any element we select. Using styles is very similar to using CSS. In both cases we reuse a style definition.

The style is a resource. We define it as any other resource. Each style includes a collection of Setter elements .Each Setter element sets a specific property. The property must be a dependency one.

Unlike WPF we cannot apply the same style on different types of elements and we cannot use triggers in order to change the style of a given control when a specific property changes its value.

The following code sample includes the definition of a simple style that targets buttons.

<UserControl x:Class="SilverlightApplication30.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <UserControl.Resources>
        <Style x:Key="CuteButton" TargetType="Button">
            <Setter Property="FontFamily" Value="Arial" />
            <Setter Property="FontSize" Value="18" />
            <Setter Property="Foreground" Value="Blue" />
            <Setter Property="Padding" Value="10" />
        </Style>
    </UserControl.Resources>
    <Canvas x:Name="LayoutRoot" Background="White">
        <Button Name="MyBt" Content="Click Here" Style="{StaticResource CuteButton}" />       
    </Canvas>
</UserControl>


Read more: Life Michael
QR: simple-style-definition-in-silverlight.aspx

Posted via email from Jasper-net

Obtaining Results from Parallel Tasks

|
Task Results

So far in our examination of parallel tasks we have looked at the Task class. This allows an action delegate to be executed with the possibility of parallelism. The delegate can access variables that are outside of its scope in order to communicate with the main thread of execution or with other tasks, allowing you to simulate a return value. However, an alternative Task class is available for more elegant generation of return values.

The Task<T> generic class inherits much of its functionality from its non-generic counterpart. Tasks are created using a delegate, often a lambda expression, started using the Start method and executed in parallel where it is efficient to do so. The key difference is that the lambda expression returns a value of the type defined by the task's type parameter. This return value can be accessed by reading the task's Result property.

The Task<T> class is found in the System.Threading.Tasks namespace so to simplify the examples, add the following using directive:
using System.Threading.Tasks;
Synchronisation

As with other parallel and multi-threaded scenarios, synchronisation is required. In this case, it is necessary to ensure that the result of a parallel task is not read before it has been set. Luckily, the Task Parallel Library takes care of this for you. If you attempt to read the result too early, the current thread is blocked until the task has completed executing. This is the same as calling the Wait method manually before reading the result.

The following sample shows the use of a parallel task with a return value. Here a long calculation is performed and the returned result is extracted from the Result property. You can see that the main thread is blocked until the parallel calculation completes to ensure that the correct value is obtained.

Task<long> taskWithResult = new Task<long>(() =>
{
    long total = 0;
    for (int i = 1; i < 1000000000; i++);    // Adjust this loop according
    {                                        // to your computer's speed
        total += i;
    }
    return total;
});
taskWithResult.Start();

Console.WriteLine("Result = {0}", taskWithResult.Result);

/* OUTPUT

Result = 499999999500000000

*/

Read more: BlackWasp
QR: TaskResult.aspx

Posted via email from Jasper-net

Upcoming Mono Releases: Change in Policies

|
We have historically made stable releases of Mono that get branched and maintained for long periods of time. During these long periods of time, we evolve our master release for some four to five months while we do major work on the branch.

Historically, we have had done some of these large changes since we have rewritten or re-architected large parts of our JIT, or our garbage collector, or our compilers.

There were points in the project history where it took us some 9 months to release: seven months of new development followed by two months of beta testing and fixing regressions. With Mono 2.6 we tried to change this, we tried to close the release time to at most six months, and we were relatively good at doing this with 2.8 and 2.10.

We were on track to do a quick Mono 2.12 release roughly around May, but with the April bump in the road, this derailed our plans.

Since 2.10.0 was released two things happened:

    On Master: plenty of feature work and bug fixing.
    On our 2.10 branch: bug fixes and backporting fixes from master to 2.10

Now that things have settled at Xamarin and that we are getting Mono back into continuous integration builds we are going to release our first public beta of the upcoming Mono, it will be called Mono 2.11.1. We will keep it under QA until we are happy with the results and we will then release Mono 2.12 based on this.

Read more: Personal blog of Miguel de Icaza
QR: Oct-14.html

Posted via email from Jasper-net

Drawbridge: A new form of virtualization for application sandboxing

|
Drawbridge is a research prototype of a new form of virtualization for application sandboxing. Drawbridge combines two core technologies: First, a picoprocess, which is a process-based isolation container with a minimal kernel API surface. Second, a library OS, which is a version of Windows enlightened to run efficiently within a picoprocess. Drawbridge combines two ideas from the literature, the picoprocess and the library OS, to provide a new form of computing, which retains the benefits of secure isolation, persistent compatibility, and execution continuity, but with drastically lower resource overheads.

The Drawbridge library OS is an experimental Windows 7 library OS - a research project and proving ground for a larger concept: application virtualization and sandboxing. Drawbridge is capable of running the latest releases of major Windows applications such as Microsoft Excel, PowerPoint, and Internet Explorer with very little overhead compared to the traditional virtualization techniques. The experiment is going well! Now, what's going on here, exactly?


Read more: Channel9
QR: Drawbridge-An-Experimental-Library-Operating-System

Posted via email from Jasper-net

Google Code-in: Are you in?

|
GCI_2011_logo_URL_blueborder-nowww.jpg

Listen up, future coders of the world: today we’re launching the second annual Google Code-in competition, an open source development contest for 13-17 year old students around the world. The purpose of the Google Code-in competition is to give students everywhere an opportunity to explore the world of open source development. We not only run open source software throughout our business, we also value the way the open source model encourages people to work together on shared goals over the Internet.

Open source development involves much more than just computer programming, and the Google Code-in competition reflects that by having lots of different tasks to choose from. We organize the tasks into eight major categories:

1. Code: Writing or refactoring code
2. Documentation: Creating and editing documents
3. Outreach: Community management and outreach, as well as marketing
4. Quality Assurance: Testing and ensuring code is of high quality
5. Research: Studying a problem and recommending solutions
6. Training: Helping others learn more
7. Translation: Localization (adapting code to your region and language)
8. User interface: User experience research or user interface design and interaction

Read more: Google code blog
QR: google-code-in-are-you-in.html

Posted via email from Jasper-net

Creating Group Policy Reports by using "Rsop.msc” and “Gpresult /h Report.html”

|
Microsoft Operating System provides two powerful built in commands, that allow you to review the client side Group Policy settings.

By using this tools, you can monitor and review the current Group Policy settings. The main advantages of this tools, is supporting Graphical User Interface (GUI).

rsop_thumb_750E7DFC.png

Read more: Yuval Sinay
QR: creating-group-policy-reports-by-using-quot-rsop-msc-and-gpresult-h-report-html.aspx

Posted via email from Jasper-net

5 причин для обновления до Subversion 1.7

|
Apache Software Foundation объявила о выпуске Subversion 1.7, но какие именно из новых возможностей 1.7 полезны пользователю? А почему бы вам не обновиться до версии 1.7? Под катом пять причин перехода на Subversion 1.7.

1) Полностью переписана рабочая система копирования метаданных

В Subversion 1.7 система копирования метаданных была полностью переписана. Для пользователя это означает непосредственное увеличение производительности. Все метаданные для рабочей копии теперь хранятся в одном хранилище в корне, так Subversion больше не придется ходить по всему дереву каталогов, чтобы собрать все необходимые сведения о рабочей копии.
2) Улучшен HTTP протокол

В 1.7 команда Subversion решила отказаться от DeltaV в пользу нового HTTP-протокола «HTTPv2». Это имеет ряд преимуществ для пользователя:

    Уменьшение накладных расходов, связанных с DeltaV (например, дополнительный порт в Apache для записи логов)
    Уменьшение клиент-серверных циклов обработки каждого запроса повышает производительность.
    Уменьшение нагрузки на сервер (за счет меньшего количества запросов к логам и уменьшения обращений к хранилищам.)


3) Получение контроля над кэшем

В версии 1.6 введена система кэширования в памяти, но многие пользователи испытывали проблемы с увеличением количества выделяемой памяти под кэш. Subversion 1,7 дает вам больший контроль над кэшем:

    Управление памятью используемой кэшем, чтобы предотвратить большие объемы памяти, используемые кэшем.
    Новая структура кэширования и новый код, который имеет более лучшие показатели в отношении использования памяти.


4) Настраиваемая степень сжатия

Read more: Habrahabr.ru
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=habrahabr.ru/blogs/development_tools/130623/

Posted via email from Jasper-net

Элементы интерфейса. PSD исходники

|
preview_4_101011.jpg preview_12_101011.jpg

Очередная подборка PSD исходников для дизайна, внедрения в существующие проекты и других разностей. В сегодняшней подборке основной упор сделан на теги, метки, всплывающие подсказки (tooltips) и прочие служебные элементы. 23 различных исходника — думаю, каждый найдет что-то для себя.
В конце — традиционная кнопка «Скачать все», для тех, кто любит всё и сразу


Read more: gb
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://gering111.com/psd-interface/

Posted via email from Jasper-net

C# WebClient Getting Http Headers

|
This video clip shows how we can get the HTTP headers associated with the HTTP response we get when trying to browse a specific URL address using the WebClient object.

Read more: Life Michael
QR: c-webclient-getting-http-headers.aspx

Posted via email from Jasper-net

Use Windows Debuggers for Non-Debugging Tasks

|
Sharing a similar spirit as Emacs, Windows Debuggers are also super good at non-debugging tasks.

Calculator

The builtin expression evaluator of Windows Debuggers can be used as a handy calculator:

0:000> ?? 1+2+3
int 0n6

0:000> .formats 0x00905a4d
Evaluate expression:
  Hex:     00000000`00905a4d
  Decimal: 9460301
  Octal:   0000000000000044055115
  Binary:  00000000 00000000 00000000 00000000 00000000 10010000 01011010 01001101
  Chars:   ......ZM
  Time:    Mon Apr 20 19:51:41 1970
  Float:   low 1.32567e-038 high 0
  Double:  4.67401e-317

Process Manager

I try not to use the term Task Manager, since the name is already occupied by taskmgr.exe, and we have nothing to do with tasks (taskmgr also has nothing to do with tasks).

0:000> .tlist -v windbg*

Shell

0:000> .shell tlist -t

0:000> .shell dir

Binary Editor

The basic idea is to load a portion of file data into the address space of a debuggee, perform some inspection or modification, then write back to the file. WinDBG even has a Memory Window, which makes it a perfect GUI Hex Editor!

To examine the file information such like name, permission and size, use the .shell command.

0:000> .shell dir *.netmodule


Read more: Rubato and Chord
QR: use-windows-debuggers-for-non-debugging-tasks.aspx

Posted via email from Jasper-net

GO 100000 - Learning something every day, today it's the SQL Server/TSQL GO Statement has a parameter...

| Sunday, October 23, 2011
Everyone has their favorite way or running a block of code over and over again. If you have to run an entire batch over and over again there is nothing as quick and easy as using the “GO n” syntax. When you put a number after the GO batch separator SQL Server Management Studio (as well as SQLCMD) will run that entire batch however many times that you have specified.

Recently I needed to create some dummy data in a table, so instead of writing a loop that counted the number of times the loop ran, I simply used code like this.


Read more: Greg's Cool [Insert Clever Name] of the Day
Read more: Quick and dirty way to run a batch over and over
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://itknowledgeexchange.techtarget.com/sql-server/quick-and-dirty-way-to-run-a-batch-over-and-over/

Posted via email from Jasper-net

24-летний студент начал войну против Facebook

|
24-летний студент юридического факультета Венского университета Макс Шремс (Max Schrems) вот уже несколько месяцев ведёт неравный бой с компанией Facebook. Всё началось с того, что Макс отправил несколько грамотно составленных запросов и добился-таки, что из калифорнийского офиса ему прислали CD-диск со всеми персональными данными, собранными за три года активности на сайте.

Каждый гражданин может потребовать у Facebook выдачи ему в течение 40 дней всей собранной на него персональной информации. На сайте есть специальная форма для такого запроса. Вам придёт CD с файлом PDF объёмом несколько сотен мегабайт и более 1000 страниц. Макс Шремс получил PDF из более 1200 страниц, вся информация в файле была разбита на 57 категорий (работа, образование, друзья, политические взгляды, хобби, фотографии и т.д.). Как говорит Макс, даже у КГБ не было такого полного досье на граждан.

Но самое удивительное, что среди всего прочего в присланном файле были удалённые сообщения, чат-сессии, имена бывших друзей и другие данные с пометкой deleted:true. 

Facebook прислал не всю имеющуюся информации. В частности, на CD отсутствуют данные о посещённых пользователем страницах в интернете, на которых установлены кнопки Like. Известно, что куки Facebook отправляют информацию о посещённых страницах, даже если пользователь не нажимал на эту кнопку. 

Read more: Habrahabr.ru
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://habrahabr.ru/blogs/social_networks/130782/

Posted via email from Jasper-net

Walkthroughs: Microsoft "Roslyn" CTP

|
Download all the walkthrough documents for the Roslyn CTP.

Read more: MS Download
QR: details.aspx?id=27745&WT.mc_id=rss_alldownloads_all

Posted via email from Jasper-net

In bed with Roslyn

|
Microsoft have been talking about their “C# compiler as a service” project, aka Roslyn, for a couple of years now, and yesterday the C# team finally released a preview version. Being a bit of a language geek, I was interested to see if I could use Roslyn not only to perform analysis and refactorings but to extend the C# language itself. The reason for wanting to do this is to replace repetitive and error-prone boilerplate code with terser, more expressive code — quicker to write, easier to read and no chance for human error to muck it up.

The motivating example

If you’ve written much WPF or Silverlight code, you’ve undoubtedly written a bunch of dependency properties. Because C# has no built-in support for DPs, this means you have to write a bunch of code spread across several members, something like this:

public static readonly DependencyProperty WidgetudeProperty =
  DependencyProperty.Register("Widgetude", typeof(int), typeof(Widget),
    new FrameworkPropertyMetadata(OnWidgetudeChanged));
 
public int Widgetude
{
  get { return (int)GetValue(WidgetudeProperty); }
  set { SetValue(WidgetudeProperty, value); }
}
 
private static void OnWidgetudeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
  // on-change logic here
}

This is not only boring to write, it is hard to read because the code is cluttered with boilerplate, and it is prone to error. If I had a dollar for everybody who put business logic in the CLR property setter and then wondered why it wasn’t being run when a binding updated… well, I’d have $3.00. And it’s awful to maintain. For example, if I change the property to a double, I have to update the type in three places. If I change the property name, I have to update it in seven!

Read more: MindScape blog
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://www.mindscapehq.com/blog/index.php/2011/10/20/in-bed-with-roslyn/

Posted via email from Jasper-net

Introducing the Microsoft “Roslyn” CTP

|
What is Roslyn?

In the past, our compilers have acted as black boxes – you put source text in and out the other end comes an assembly. All of that rich knowledge and information that the compiler produces is thrown away and unavailable for anyone else to use.

As Soma mentions in his blog, a part of the Visual Studio languages team is working on a project called Roslyn with a goal to rewrite the C# and VB compilers and language services in managed code. With a clean, modern, managed codebase our team can be more productive, innovate faster, and deliver more features sooner and with better quality.

More importantly, we are opening up the C# and Visual Basic compilers and exposing all that rich information and code analysis to be available for your use. We expose a public API surface and provide extension points in the C# and VB language services.

This opens up new opportunities for VS extenders to write powerful refactorings and language analysis tools, as well as allow anyone to incorporate our parsers, semantic engines, code generators and scripting in their own applications.

Download the October 2011 CTP

The CTP and supporting materials can be downloaded from:

The main goal of this early preview is to gather feedback on the API design and to introduce the C# Interactive window (also known as REPL, or Read-Eval-Print-Loop).

QR: introducing-the-microsoft-roslyn-ctp.aspx

Posted via email from Jasper-net

Frames & Pages in Silverlight

|
The Frame is a content control. It contains a single child element and it inherits from ContentControl. The single child it displays can be of the type Page. We can easily use this capability for developing an application that includes pages displayed one at a time within a frame. The following code sample shows how simple it is to do it. This is the MainPage.xaml file. It displays a Frame element together with few buttons the user can use in order to navigate to another page.
<UserControl x:Class="SilverlightApplication23.MainPage"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="500"

    <Grid x:Name="MainContainer" Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition MaxHeight="100"></RowDefinition>
        </Grid.RowDefinitions>
        <sdk:Frame Height="179" Grid.Row="0" HorizontalAlignment="Left"
                   Margin="43,30,0,0" Name="MainFrame" VerticalAlignment="Top" Width="315" />

Read more: Life Michael
QR: frames-amp-pages-in-silverlight.aspx

Posted via email from Jasper-net

Generic Object Storage Helper for WinRT

|
Project Description
ObjectStorageHelper<T> is a Generic class that simplifies storage of data in WinRT applications.

Overview
While exploring WinRT I came up with this, ObjectStorageHelper<T>, a Generic class that wraps (and greatly simplifies) use of the RoamingFolder, TemporaryFolder & LocalFolder storage folders within the ApplicationData class.

With ObjectStorageHelper<T> saving and loading an object to/from disk is now just a simple method call.

Restrictions
Under the covers ObjectStorageHelper<T> uses XML Serialization hence T needs to be an object that can be serialized as XML. There is a useful thread on Stack Overflow Using .Net what limitations (if any) are there in using the XmlSerializer? that talks about those restrictions better than I ever could.

Saving an object
Using ObjectStorageHelper<T> saving an object only takes two lines of code

[TestMethod]
public void SaveObject()
{
  //Instantiate an object that we want to save
  var myPoco = new Poco() { IntProp = 1, StringProp = "one" };
  //new up ObjectStorageHelper specifying that we want to interact with the Local storage folder
  var objectStorageHelper = new ObjectStorageHelper<Poco>(StorageType.Local);
  //Save the object (via XML Serialization) to the specified folder, asynchronously
  objectStorageHelper.SaveASync(myPoco);
}

Read more: Codeplex
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://winrtstoragehelper.codeplex.com/

Posted via email from Jasper-net

Разворачивание образов ОС при помощи FOG

|
В этой статье я постараюсь вас познакомить с бесплатным продуктом FOG, который служит созданию и развертыванию образов ОС. К своему удивлению я не увидел статей на русскоязычных ресурсах, посвященных, безусловно, этому интересному продукту.
Отмечу, что я не ставлю перед собой задачу описать абсолютно все нюансы и расписать всё. Ничего не заменит ваш личный опыт. Я хочу лишь приоткрыть занавес и помочь многим системным администраторам двигаться в нужном направлении, остальное в ваших руках.

FOG является альтернативой платным продуктам Acronis. Не имею ничего против продуктов этой компании, но речь сегодня не о ней. Про RIS/Deployment Services для Windows Server я тоже в курсе, пожалуйcта, не пишите об этом в комментариях.

Если упрощенно, то работает все через связку PXE/TFTP.

Read more: Habrahabr.ru
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://habrahabr.ru/blogs/sysadm/130987/

Posted via email from Jasper-net

Silverlight Pages Navigation Security Issue

|
When the Silverlight application uses pages the URL address is appended with the name of the page resource the user see. This has a security implication as it might allow a malicious user to access pages he is not allows to. The following video clip shows that.

Read more: Life Michael
QR: silverlight-pages-navigation-security-issue.aspx

Posted via email from Jasper-net

Fostering Software Craftsmansip (or How to Build Successful Teams) - Hebrew

|
Last month I presented a short lecture about Fostering Software Craftsmanship (or How to Build Successful Teams) to one of the top notch technological units in IDF.
The lecture is a hybrid of management and engineering skills. It focuses on the dissonance between the needed software engineering skills in the industry and what happens in the reality. The main idea in the talk is that using Software Craftsmanship principles as individuals and as TEAMs makes it possible to create high quality groups that produce great products.

The lecture is in Hebrew and I hope that you will find it interesting...

Read more: Uri Lavi
QR: fostering-software-craftsmansip-or-how-to-build-successful-teams-hebrew.aspx

Posted via email from Jasper-net

Признаки плохого программиста

|
Неспособность рассуждать о коде

«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
«Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
«Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Лечение

Чтобы справиться с этим пороком, программисту следует пользоваться встроенным в IDE debugger'ом как помощником в случае неспособности «шагать» по коду построчно. В Visual Studio, например, можно установить breakpoint в начале «проблемной» зоны и затем шагать, нажимая F11, параллельно следя за значениями переменных, до тех пор пока не станет ясно, что именно код делает. Если в целевом окружении нет такой возможности, следует практиковаться в том, в котором это возможно.

Read more: Habrahabr.ru
QR: https://chart.googleapis.com/chart?chs=80x80&cht=qr&choe=UTF-8&chl=http://habrahabr.ru/blogs/programming/130850/

Posted via email from Jasper-net