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

Python beginner's mistakes

| Thursday, January 20, 2011
Every Python programmer had to learn the language at one time, and started out as a beginner. Beginners make mistakes. This article highlights a few common mistakes, including some I made myself.

Beginner's mistakes are not Python's fault, nor the beginner's. They're merely a result of misunderstanding the language. However, there is a difference between misunderstanding (often subtle) language features, vs misunderstanding the language as a whole, and what can (and cannot) be done with it. The pitfalls article focused on the former; this article deals with the latter.

To put it another way, the mistakes in this article are often cases of "the wrong tool for the job", rather than coding errors or sneaky language traps.

Mistake 1: trying to do low-level operations

Python is sometimes described as a VHLL, a Very High-Level Language. As such, it is naturally suited for high-level tasks, like generating or parsing HTML pages, scripting a game engine, or writing web frameworks, to name a few examples. It is not so suitable for tasks typically done by low-level languages, like writing device drivers, or tasks where performance is critical, like rendering of 3D graphics, or serious number-crunching.

This doesn't mean that it isn't possible to do these things with Python; but it's probably just not the right language for these jobs. One way to work around this is to write the low-level code in C, then have Python call it.


Mistake 2: writing "language X" code in Python

This is a mistake that is almost unavoidable. You come from, say, Pascal, and try your hand at Python. The first code you write will probably look like Pascal with a Python syntax. You are writing Pascal code in Python.

Some notorious symptoms of "language X" code, and the languages that may cause them:

  • You're really paranoid about data hiding (some would call this "encapsulation"), and/or write getters and setters for all object attributes, no matter whether they add special rules or not. (Java, C++, Delphi)
  • You overuse properties (one of the shiny new features in Python 2.2). (Java, Delphi, maybe Visual Basic, C++?)

Read more: Python beginner's mistakes

Posted via email from Jasper-net

Thinking in C++ 2nd Edition by Bruce Eckel

|
CPPV2cover.jpg

Comments from readers

Back to Contents
I'd like to congratulate you on your great book "Thinking in C++" 2/e. I first saw it at my campus library and loaned it thinking it was just another C++ book, what a big mistake, it is a great book. When the loan period was over I got the electronic version from your site and finnally after completly zapping through it, I decided to order it and today I finnally have my own copy!! It was a great idea to make it available in your site! I'm looking forward to read your other books. Keep up the good work. Cristiano Lopes, Signal Processing Laboratory - University of Algarve,Portugal

'Thinking in C++' is the best C++ book I've ever read, especially regarding details and ease of learning!!! Gunnar André Dalsnes, Part time developer / student, Norway

Thanks for writing such a good book with such useful examples. Gideon Anthony, Computer Officer, History of Parliament

Thinking in C++ is a Godsend to an Electronic engineer converting to programming! John Williams, BEng, Electronic Design Engineer

I have been a big fan of programming since I was 10 (I'm now 21) and I would just like to say that I have both your Thinking in Java and C++ on my Palm Pilot. Everytime I'm just hangin' out, I read on through the endless scroll. Thanks. The info is great and I constantly learn new things. Marko Rodriguez, Human Computer Interaction - UCSD and Computer Science - UCSC

I was so delighted when I downloaded Thinking in C++ (yesteday), that today I went out and bought the book. Thank you for helping to clarify many things. Neill Edwards, Core Technical Group, Affiniti Inc.

I have read Volume 1 and Volume 2 of Thinking in C++ and I just wanted to tell you that they are the most comprehensive books that I have ever read on C++. Thank you for your quality material! Paul Wendt, Professional Programmer

Read more: Thinking in C++ 2nd Edition by Bruce Eckel

Posted via email from Jasper-net

Optimizing C and C++ Code

|
Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity. In this article we will explore the following optimization techniques for C and C++ code developed for Real-time and Embedded Systems.

  • Adjust structure sizes to power of two
  • Place case labels in narrow range
  • Place frequent case labels first
  • Break big switch statements into nested switches
  • Minimize local variables
  • Declare local variables in the inner most scope
  • Reduce the number of parameters
  • Use references for parameter passing and return value for types bigger than 4 bytes
  • Don't define a return value if not used
  • Consider locality of reference for code and data
  • Prefer int over char and short
  • Define lightweight constructors
  • Prefer initialization over assignment
  • Use constructor initialization lists
  • Do not declare "just in case" virtual functions
  • In-line 1 to 3 line functions

Adjust structure sizes to power of two

When arrays of structures are involved, the compiler performs a multiply by the structure size to perform the array indexing. If the structure size is a power of 2, an expensive multiply operation will be replaced by an inexpensive shift operation. Thus keeping structure sizes aligned to a power of 2 will improve performance in array indexing.

Place case labels in narrow range

If the case labels are in a narrow range, the compiler does not generate a if-else-if cascade for the switch statement. Instead, it generates a jump table of case labels along with manipulating the value of the switch to index the table. This code generated is faster than if-else-if cascade code that is generated in cases where the case labels are far apart. Also, performance of a jump table based switch statement is independent of the number of case entries in switch statement.

Read more: EventHelix

Posted via email from Jasper-net

The Top 10 Ways to get screwed by the "C" programming language

|
To get on this list, a bug has to be able to cause at least half a day of futile head scratching, and has to be aggravated by the poor design of the "C" language.  In the interests of equal time, and to see how the world has progressed in the 20-odd years since "C" escaped from its spawning ground, see my Top 10 Ways to be Screwed by the Java programming language, and for more general ways to waste a lot of time due to bad software, try my Adventures in Hell page.
A better language would allow fallible programmers to be more productive. Infallible programmers, of the type unix' and "C" designers anticipated, need read no further.  In fairness, I have to admit that the writers of compilers have improved on the situation in recent years, by detecting and warning about potentially bad code in many cases.

Non-terminated comment, "accidentally" terminated by some subsequent comment, with the code in between swallowed.
       a=b; /* this is a bug
       c=d; /* c=d will never happen */


Accidental assignment/Accidental Booleans
       if(a=b) c;      /* a always equals b, but c will be executed if b!=0 */
Depending on your viewpoint, the bug in the language is that the assignment operator is too easy to confuse with the equality operator; or maybe the bug is that C doesn't much care what constitutes a boolean expression: (a=b) is not a boolean expression! (but C doesn't care).

Closely related to this lack of rigor in booleans, consider this construction:
       if( 0 < a < 5) c;      /* this "boolean" is always true! */
Always true because (0<a) generates either 0 or 1 depending on if (0<a), then compares the result to 5, which is always true, of course.  C doesn't really have boolean expressions, it only pretends to.

Or consider this:

       if( a =! b) c;      /* this is compiled as (a = !b), an assignment, rather than (a != b) or (a == !b) */

Unhygienic macros

       #define assign(a,b) a=(char)b
       assign(x,y>>8)
becomes
              x=(char)y>>8    /* probably not what you want */

Mismatched header files

Read more: The Top 10 Ways to get screwed by the "C" programming language

Posted via email from Jasper-net

Programmer’s Notepad

|
FreeDownload.png

Programmer’s Notepad 2.2 Released

I’m happy to announce Programmer’s Notepad 2.2, a new stable release!

Headline Changes in 2.2:

There have been too many improvements since 2.0.10 to recount them all here, but these are the headline changes in 2.2 over 2.0.10:

Complete Unicode conversion, files, searching, projects, UI, clips…
Complete redesign of text clips, with editing built in to new UI view and code templates and text clips consolidated
Multiple concurrent selections (ctrl+select)
Type into multiple selections and block selections
Virtual space
Translations – PN in your language
Flexible split views
Converting between ANSI/Unicode properly converts current file contents
Vastly improved file encoding options and defaults

Read more: Programmer’s Notepad

Posted via email from Jasper-net

Game Programming Wiki

|
Welcome to The Game Programming Wiki! Here you will find game programming tutorials and source code for a variety of languages and platforms. Also, because this is a wiki, you are encouraged to contribute your knowledge and help the repository grow! If you're lost or confused, please try the help page, or else drop on by the forums and ask for clarification there.

Read more: Game Programming Wiki

Posted via email from Jasper-net

Fast API search

|
Search engine in hundreds languages and API defenitions

Read more: Fast API search

Posted via email from Jasper-net

Upside-Down-Ternet

|
shot1.png

My neighbours are stealing my wireless internet access. I could encrypt it or alternately I could have fun.

Split the network

I'm starting here by splitting the network into two parts, the trusted half and the untrusted half. The trusted half has one netblock, the untrusted a different netblock. We use the DHCP server to identify mac addresses to give out the relevant addresses.

/etc/dhcpd.conf

ddns-updates off;
ddns-update-style interim;
authoritative;

shared-network local {

       subnet *.*.*.* netmask 255.255.255.0 {
               range *.*.*.* *.*.*.*;
               option routers *.*.*.*;
               option subnet-mask 255.255.255.0;
               option domain-name "XXXXX";
               option domain-name-servers *.*.*.*;
               deny unknown-clients;

               host trusted1 {
                       hardware ethernet *:*:*:*:*:*;
                       fixed-address *.*.*.*;
               }
}

       subnet 192.168.0.0 netmask 255.255.255.0 {
               range 192.168.0.2 192.168.0.10;
               option routers 192.168.0.1;
               option subnet-mask 255.255.255.0;
               option domain-name-servers 192.168.0.1;
               allow unknown-clients;

       }
}

IPtables is Fun!

Suddenly everything is kittens! It's kitten net.

/sbin/iptables -A PREROUTING -s 192.168.0.0/255.255.255.0 -p tcp -j DNAT --to-destination 64.111.96.38


For the uninitiated, this redirects all traffic to kittenwar.

For more fun, we set iptables to forward everything to a transparent squid proxy running on port 80 on the machine.

/sbin/iptables -A PREROUTING -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1

That machine runs squid with a trivial redirector that downloads images, uses mogrify to turn them upside down and serves them out of its local webserver.

Read more: Upside-Down-Ternet

Posted via email from Jasper-net

App Inventor for Android

|
Create apps for your phone!

Creating an App Inventor app begins in your browser, where you design how the app will look. Then, like fitting together puzzle pieces, you set your app's behavior. All the while, through a live connection between your computer and your phone, your app appears on your phone. Read more...

App Inventor is a part of Google Labs, a playground for Google Engineers and adventurous Google users. Send us your suggestions and ideas, but remember to wear your safety glasses while building your apps.

Read more: App Inventor

Posted via email from Jasper-net

50 Kick-Ass Websites You Need to Know About

|
It's time to update the entries in your browser's links toolbar. But with recent estimates putting the size of the internet at well more than 100 million distinct websites, it's getting harder and harder to get a handle on all the great stuff that's out there. That's why we've compiled this list. And unlike some lists you may have seen, which try to name the very "best" websites, but end up just telling you a lot of stuff you already know, we've chosen instead to highlight 50 of our favorite sites that fly under most people's radar. Think of it as the Maximum PC blog roll (remember those?). These sites represent great alternatives to popular web destinations like YouTube and Hulu, and include useful references, powerful web apps, and the unknown blogs you must absolutely bookmark.

Demoscene.tv
See What Can Be Done with 4 Kilobytes

lite.Facebook.com
Clutter-Free Social Networking

Letsplayarchive.com
Let other people play games for you

Read more: MaximumPC

Posted via email from Jasper-net

WTF Code

|
tumblr_kpu8502s7I1qa3ti5o1_400.jpg

"Programming is like sex: one mistake and you’re providing support for a lifetime." - Michael Sinz

Read more: WTFCode.com

Posted via email from Jasper-net

Random Key Generator

|
Here you will find a variety of random keys that can be used for passwords, encryption keys, etc. - all randomly generated, just for you! Simply refresh this page for a completly new set of keys.

Read more: Random Key Generator

Posted via email from Jasper-net

50 UNIX / Linux Sysadmin Tutorials

|
To wrap this year, I’ve collected 50 UNIX / Linux sysadmin related tutorials that we’ve posted so far. This is lot of reading. Bookmark this article for your future reference and read it whenever you get free time.

  1. Disk to disk backup using dd command: dd is a powerful UNIX utility, which is used by the Linux kernel makefiles to make boot images. It can also be used to copy data. This article explains how to backup entire hard disk and create an image of a hard disk using dd command.
  2. 15 rsync command examples: Every sysadmin should master the usage of rsync. rsync utility is used to synchronize the files and directories from one location to another. First time, rsync replicates the whole content between the source and destination directories. Next time, rsync transfers only the changed blocks or bytes to the destination location, which makes the transfer really fast.
  3. Three sysadmin rules: If you are a sysadmin, you can’t (and shouldn’t) break these three sysadmin rules.
  4. User and group disk quota: This article explains how to setup user and group quote with soft limit, hard limit and grace period. For example, if you specify 2GB as hard limit, user will not be able to create new files after 2GB.
  5. Troubleshoot using dmesg: Using dmesg you can view boot up messages that displays information about the hardware devices that the kernel detects during boot process. This can be helpful during troubleshooting process.
  6. RPM package management examples: 15 examples provided in this article explains everything you need to know about managing RPM packages on redhat based system (including CentOS).
  7. 10 netstat examples: Netstat command displays various network related information such as network connections, routing tables, interface statistics, masquerade connections, multicast memberships etc.,
  8. Manage packages using apt-* commands: These 13 practical examples explains how to manage packages using apt-get, apt-cache, apt-file and dpkg commands.
  9. Modprobe command examples: modprobe utility is used to add loadable modules to the Linux kernel. You can also view and remove modules using modprobe command.
  10. Ethtool examples: Ethtool utility is used to view and change the ethernet device parameters. These examples will explain how you can manipulate your ethernet NIC card using ethtool.
  11. NFS mount using exportfs: This is a linux beginners guide to NFS mount using exportfs. This explains how to export a file system to a remote machine and mount it both temporarily and permanently.
  12. Change timezone: Depending on your Linux distribution, use one of the methods explained in this article to change the timezone on your system.
  13. Install phpMyAdmin: phpMyAdmin is a web-based tool written in PHP to manage the MySQL database. Apart from viewing the tables (and other db objects), you can perform lot of DBA functions through the web based interface. You can also execute any SQL query from the UI.
  14. Setup squid to control internet access: Squid is a proxy caching server. You can use squid to control internet access at work. This guide will give a jump-start on how to setup squid on Linux to restrict internet access in an network.

Read more: The Geek Stuff

Posted via email from Jasper-net

51 Free Tools to Stay Informed and Invisible on the Internet

|
Without a Trace

If you want to use the Internet without anyone knowing who you are or leave an untraceable phone number or email address, then these tools are for you.

  1. Big String. Big String offers self-destructing IMs and emails for those who don’t want any evidence of their online communications. Use with many popular IM clients.
  2. Mozilla Firefox, Portable Edition. This free web browser leaves no personal information on your computer. Not only can you use this anywhere, but no one will know you were there.
  3. x Paranoia mod. This Firefox extension is great for those who want to leave nothing behind on the computer. With a couple of clicks you can clear all your Internet history, passwords, cookies, and cache.
  4. Bugmenot.com. If you’ve ever had to register with a site just to read an article or watch a video, then you will want this tool. Find login information for many websites that require registration and never have to give your information again.
  5. 10 Minute Mail. Use this tool to get an email address that is good for 10 minutes, then expires. This is a great way to register with sites that require an email validation or just to cover your tracks.
  6. inumbr. Get a disposable phone number that you can use to forward calls to any other phone in the U.S. No one will be able to trace you with this number.
  7. GrandCentral. Here’s another phone option when you don’t want to be traced by your number. Consolidate all your phones into one with this tool that gives you one voice mailbox and one number for all your phones.
(more...)

Read more: The Survival Station

Posted via email from Jasper-net

Spritely

|
bird_180x180.png

Spritely is a simple plugin with only two key methods, sprite() and pan() both of which simply animate the background-image css property of an element. The difference between the two is that a 'sprite' image contains two or more 'frames' of animation, whereas a 'pan' image contains a continuous image which pans left or right and then repeats. Typically, in either case, you would use a png file (with or without transparency) for this. You might wish to use a transparent gif for Internet Explorer 6, though it probably won't look as good. Your html elements must already be the correct size you want the sprite to appear, but the background image will typically be larger than the html element, and the spritely methods reposition the background image within the html element.

Read more: Spritely.net

Posted via email from Jasper-net

SIW

|
siw-48x48.png

SIW is an advanced System Information for Windows tool that gathers detailed information about your system properties and settings and displays it in an extremely comprehensible manner.

SIW can create a report file (CSV, HTML, TXT or XML), and is able to run in batch mode (for Computer Software and Hardware Inventory, Asset Inventory Tracking, Audit Software Licenses, Software License Compliance).

The system information is divided into few major categories:

Software Inventory: Operating System, Installed Software and Hotfixes, Processes, Services, Users, Open Files, System Uptime, Installed Codecs, Software Licenses (Product Keys / Serial Numbers / CD Key), Passwords Recovery.
Hardware Inventory: Motherboard, CPU, Sensors, BIOS, chipset, PCI/AGP, USB and ISA/PnP Devices, Memory, Video Card, Monitor, Disk Drives, CD/DVD Devices, SCSI Devices, S.M.A.R.T., Ports, Printers.
Network Information: Network Cards, Network Shares, currently active Network Connections, Open Ports.
Network Tools: MAC Address Changer, Neighborhood Scan, Ping, Trace, Statistics
Miscellaneous Tools: Eureka! (Reveal lost passwords hidden behind asterisks), Monitor Test, Shutdown / Restart.
Real-time monitors: CPU, Memory, Page File usage and Network Traffic.

Read more: SIW - System Information for Windows

Posted via email from Jasper-net

Default Passwords

|
437 vendors, 1842 passwords

1.  Linksys - ADSL Router
Version 2700v
User ID (none)
Password epicrouter
Level Administrator

2.  Linksys - BEFW11S4
User ID (none)
Password admin
Level Administrator

3.  Linksys - DSL
Method Telnet
Password admin
Level Admin

4.  Linksys - PSUS4
User ID admin
Password admin
Level Administrator
Notes Print Server for USB with 4-Port Switch

5.  Linksys - SRW224
User ID admin
Password (blank)
Level Administrator
Notes Default management URL: http://192.168.1.254

6.  Linksys - WAG54G
User ID admin
Password admin
Level Administrator

7.  Linksys - WAP Router

Read more: CIRT.net suspicion breeds confidence

Posted via email from Jasper-net

Kakewalk

|
apple.png

Install 'Snow leopard' on a PC. Almost as easy as in Mac.

Read more: Kakewalk

Posted via email from Jasper-net

What is ophcrack?

|
Ophcrack is a free Windows password cracker based on rainbow tables. It is a very efficient implementation of rainbow tables done by the inventors of the method. It comes with a Graphical User Interface and runs on multiple platforms.

Features:

» Runs on Windows, Linux/Unix, Mac OS X, ...
» Cracks LM and NTLM hashes.
» Free tables available for Windows XP and Vista.
» Brute-force module for simple passwords.
» Audit mode and CSV export.
» Real-time graphs to analyze the passwords.
» LiveCD available to simplify the cracking.
» Loads hashes from encrypted SAM recovered from a Windows partition, Vista included.
» Free and open source software (GPL).

Read more: ophcrack

Posted via email from Jasper-net

Password Chart

|
Convert any phrase to password letters/number substitution

Read more: Password Chart

Posted via email from Jasper-net

Magic SysRq key

|
The magic SysRq key is a key combination understood by the Linux kernel, which allows the user to perform various low level commands regardless of the system's state. It is often used to recover from freezes, or to reboot a computer without corrupting the filesystem.

To be able to use this functionality the CONFIG_MAGIC_SYSRQ option has to be enabled at kernel compile time.

220px-KeyboardWithPrintScreenRinged.svg.png

Purpose

Much like Sun Microsystems's Open Firmware (OpenBoot), this key combination provides access to powerful tools for software development and disaster recovery. In this sense, it can be considered a form of escape sequence. Principal among the offered commands are means to forcibly unmount file systems, kill processes, recover keyboard state, and write unwritten data to disk. With respect to these tasks, this feature serves as a tool of last resort.

Magic commands

The key combination consists of Alt, SysRq and another key, which controls the command issued (as shown in the table below). Users with a keyboard layout other than QWERTY have to remember that their layout becomes QWERTY when they use one of these combinations. For example, on a Dvorak keyboard, the key below '9' and '0' counts as an 'o', not as an 'r', so it shuts the system down instead of switching the keyboard to raw mode. Furthermore, some keyboards may not provide a separate SysRq key. In this case, a separate "Print" key should be present. Under graphical environments (such as Gnome or KDE) 'Alt'+'PrintScrn/SysRq'+key combination generally only leads to a screenshot being dumped. To avoid this Print Screen feature the magic SysRq combination should include the Ctrl, becoming 'Ctrl'+'Alt'+'SysRq'+key. For the same purposes the AltGr key, if present, can be used in place of the Alt key. The magic SysRq can also be accessed from the serial console.

Read more: Wikipedia

Posted via email from Jasper-net

HOWTO bypass Internet Censorship

|
A tutorial on how to bypass Internet Censorship using Proxies, Shells, JAP e.t.c. Different ways to beat the filtering in schools, countries or companies (blocked ports e.t.c). This is the original and so newer than the translations because I'm still working on it.

1. Introduction

1.1 About Internet censorship
1.2 My reasons for writing this
1.3 How to get this file
1.4 License
2. Possible weaknesses

3. Different kinds of censorship
3.1 Blocked URL's via the DNS-server
3.2 Forced proxy server / transparent proxy
3.3 Keyword filter
3.4 Blocked ports
3.5 Software on the client (child protection e.t.c)
3.5.1 NetNanny
3.5.2 CyberSitter
3.5.3 AOL Parental Control
3.5.4 CyberPatrol
3.5.5. SurfWatch / SurfControl
3.6 Censorware on the server (inside of networks)
3.6.1 Bess/N2H2
3.6.2 DansGuardian
3.6.3 WebSense
3.6.4 WebWasher
3.6.5 SmartFilter
3.6.6 squidGuard
3.7 Whitelist
3.8 IP blocking on the routers

4. Different ways to bypass censorship
4.1 Using a different ISP
4.2 Using a not censoring DNS-server
4.3 Using a non censoring proxy server
4.3.1 Standard proxy
4.3.2 Uncommon port proxy
4.3.3 Socks proxy
4.3.4 Set up an own proxy server
4.3.5 Special proxy / tunnel tools
4.3.5.1 JAP
4.3.5.2 Httport
4.3.5.3 Localproxy
4.3.5.4 HttpTunnel
4.3.5.5 Hopster
4.3.6 Wingates
4.3.7 Using a Shell
4.4 Using a Web-2-phone service
4.5 Using a webproxy
4.5.1 Standard cgiproxies
4.5.2 Cgiproxies with encrypted URL's
4.5.3 Cgiproxies on a secure SSL-connection
4.5.4 Standard CECID proxies
4.5.5 CECID proxies on a secure SSL-connection
4.5.6 Translators, warpers, e.t.c that can be used as a proxy
4.6 Get Webpages via eMail
4.7 Using steganography

Read more: HOWTO bypass Internet Censorship
Read more: HOWTO bypass Internet Censorship Wiki

Posted via email from Jasper-net

11 Killer Open Source Projects I Found with NuGet

|
So maybe I'm late to the party, but I recently started playing with NuGet. It's a killer new way to find, install, maintain, and manage references to open source libraries in Visual Studio 2010. Plenty of people have written about it (Phil Haack and Scott Hanselman for example). Let's just say you should learn about NuGet if you don't know it already.

What I want to talk about is all the cool open source projects I found just by flipping through the pages of the NuGet directory in the Visual Studio "Add Library Package Reference" dialog.

1. RazorEngine at http://razorengine.codeplex.com/

RazorEngine is templating engine built upon Microsoft's Razor parsing technology. The Razor Templating Engine allows you to use Razor syntax to build robust templates. No need to learn a custom clunky API for generating things like HTML and emails and so on. Just use the hot new @Razor syntax from ASP.NET MVC 3.

2. YUI Compressor for .Net at http://yuicompressor.codeplex.com/

YUI Compressor for .Net is is a .NET port of the Yahoo! UI Library's YUI Compressor Java project. Do you have a bunch of CSS and JavaScript files and you want your page to load faster. This is a great way to do it from ASP.NET.

3. 51degrees.mobi at http://51degrees.codeplex.com/

Want to build an ASP.NET MVC website that has both a desktop and mobile version from the same project? 51degrees.mobi Foundation is an ASP.NET open source module which detects mobile devices and browsers, enhancing the information available to ASP.NET. Mobile handsets can optionally be redirected to a home page designed for mobile phones. Smart phone and feature phones are all supported.

4. Lucene.Net at http://lucene.apache.org/lucene.net/

Lucene.Net is a source code, class-per-class, API-per-API and algorithmatic port of the Java Lucene search engine to the C# and .NET platform utilizing Microsoft .NET Framework. Want indexed full-text search from .NET? Here you go.

5. MvcMailer at http://www.codeproject.com/KB/aspnet/MvcMailerNuGet.aspx

Send a professional looking HTML email from your ASP.NET MVC simply by pointing at a particular view.

Read more: Michael C. Kennedy's Weblog

Posted via email from Jasper-net

Open Source More Expensive Says MS Report

|
Much conventional wisdom about programs written by volunteers is wrong. The authors took money for research from Microsoft, long the arch- enemy of the open-source movement— although they assure readers that the funds came with no strings attached) Free programs are not always cheaper. To be sure, the upfront cost of proprietary software is higher (although open-source programs are not always free). But companies that use such programs spend more on such things as learning to use them and making them work with other software

Read more: Slashdot

Posted via email from Jasper-net

How to Pick Your Next Android Phone: The Specs That Matter (and the Ones That Don't)

|
Manufacturers are constantly popping out new Android phones, and it can all be a bit overwhelming when it comes time to buy a new phone. Here's how to avoid getting overwhelmed and narrow down your buying decisions.

The sheer number of Android phones dropping at any given time is both a blessing and a curse. On one hand, you have a large number of phones to choose from; on the other, it's easy to get overwhelmed. The hype machine makes it especially difficult, since everyone always seems to be touting one phone as "the best Android on the market". The fact of the matter, however, is that it isn't about getting the newest and best phone. It's about finding the best phone for you. Furthermore, manufacturers try to market long and powerful spec lists as the ideal phone, which isn't true either. Here are the things you actually want to look at when buying a new phone.

When Should I Upgrade?
This is a pretty open question, and varies a lot from person to person, but there are a few pieces of advice that we'd give to those thinking about upgrading.

Beware of gadget envy: Because Android is spread across multiple carriers and manufacturers, there are new phones coming out all the time. It can be pretty hard to see cool phones being released left and right and not want one, even if they don't necessarily provide a huge upgrade over your current phone. If you're currently rocking a G1 (the first phone to run Android ever), you probably deserve to upgrade to a faster phone, but users of the original Motorola Droid might find themselves a bit more on the fence. Sure, your phone is a bit older and slower than the current Android lineup, but that doesn't mean you need a new phone. You could always speed it up yourself, after all.

Know what's coming in the near future: On the other side of the coin, a lot of people are constantly worried about upgrading when a newer, better phone is probably just around the corner. However, it's usually only worth waiting if something really big is coming in the near future—like, say, the new 4G networks that are springing up everywhere. Similarly, if December rolls around and you're thinking about a new phone, maybe wait until January to see if Google announces another Nexus phone. Generally, if a new feature is worth waiting for, you'll know about it ahead of time—so keep those things in mind and don't stress about getting the "newest" phone on the market. There will always be another "newest" phone.

Wait until a line of phones come out before considering them: There's only so much you can learn about a phone from spec lists and first-look videos. You can get a pretty good idea of the phones you want to look at, but there's no substitute for actually trying out a phone. Furthermore, you don't want to just buy a phone blindly—if you wait for a few reviews to surface on the net, see if your favorite ROM developers are going to support a phone (if you're the rooting type), and so on, you'll make a much more informed decision.

Evaluating Specs Based on What's Most Important to You
The most talked about features aren't always the most important ones when it comes to making a smartphone buying decision. Here are the things you'll definitely want to look at as you narrow down your list of possible phones, as well as a few we'd consider less important.

Read more: Lifehacker

Posted via email from Jasper-net

CHART OF THE DAY: Here's Who Owns Facebook

|
Below is a colorful illustration of all the people who will cash in on Facebook stock from LearnVest.

chart-of-the-day-who-owns-facebook-jan-2011.jpg

Read more: Business Insider

Posted via email from Jasper-net

How to Install Non-Market Apps on Your Android Device

|
Although the Android Market offers thousands upon thousands of applications to choose from, sometimes you’ll want to break free and install applications that aren’t available on the Market. Read on to learn how.


Android’s Default Defenses
Your Android phone is, by default, set to disallow any applications that aren’t from the Android Market. It’s a wise move as the majority of users are more likely to be exposed to a rogue application than they are to go searching for apps outside of the Market. None the less there are times where you might want to install third-party apps that aren’t sourced through the Market.

For example, earlier today we highlighted Kongregate’s new Android application Kongregate Arcade. Google pulled their app from the Marketplace because it violated one of the Market policies (an application should not install other applications). In the case of Kongregate’s app it isn’t at all malicious (you get the application because you want more games after all) but it does fall afoul of the rules.

Disabling Application Blocking
If you attempt to load an APK file (the Android version of the Windows Mobile CAB or the iOS IPA file) you’ll get an error message like this:

2011-01-19_132008.jpg

Read more: How-to-geek

Posted via email from Jasper-net

Internet Explorer 9 to bolster security with ActiveX content filter

|
ie9-acx.jpg

Sure, you can wade through Internet Explorer 8's security settings and flip a number of radio buttons to change ActiveX permissions in its many zones, but it's kind of a pain in the butt. It's also not also flexible a system as it could be -- but Microsoft appears ready to change all that in Internet Explorer 9.

Read more: DownloadSquad

Posted via email from Jasper-net

Hackers Respond To Help Wanted Ads With Malware

|
The FBI issued a warning Wednesday about a new twist on a long-running computer fraud technique, known as Automated Clearing House fraud. With ACH fraud, criminals install malware on a small business' computer and use it to log into the company's online bank account. In this latest twist on the scam, the criminals are apparently looking for companies that are hiring online and then sending malicious software programs that are doctored to look like job applications. One unnamed company recently lost $150,000 in this way, according to the FBI's Internet Crime Complaint Center. 'The malware was embedded in an e-mail response to a job posting the business placed on an employment website,' the FBI said in a press release. The malware, a variant of the Bredolab Trojan, 'allowed the attacker to obtain the online banking credentials of the person who was authorized to conduct financial transactions within the company

Read more: Slashdot

Posted via email from Jasper-net

VirtualBox 4.0.2 is released ! PPA Ubuntu & Debian

|
Virtualbox 4.0.2 is released, this is an update release that comes with some bug fix and improvements.

What`s New in this release:

· GUI: don’t crash if a removable host drive referenced from the VM settings vanished
· GUI: fixed a crash when using the KDE4 Oxygen theme and clicked on the settings button (4.0 regression; bug #7875)
· GUI: properly warn if the machine folder cannot be created (bug #8031)
· GUI: several fixes for multimonitor X11 guests
· ExtPack: don’t make the installer helper application suid root Linux .deb/.rpm packages only)
· ExtPack: improved user experience on Vista / Windows 7 when installing an extension pack
· ExtPack: fixed issue with non-ascii characters in the path name during installing an extension pack (bug #9717)
· ExtPack: fixed SELinux issues on 32-bit Linux hosts
· VBoxManage: Host-only interface creation and removal is now supported for all platforms except Solaris (bug #7741)
· VBoxManage: fixed segmentation fault when removing non-existent host-only interface
· Storage: fixed possible crashes with VMDK/VHD images with snapshots and async I/O (4.0 regression)

Read more: Unixmen

Posted via email from Jasper-net

Web Performance Tuning Tips Solutions for Drupal Sites

|
[] MySQL Innodb storage engine.

[] ZFS file system - ZFS is a combined file system and logical volume manager designed by Sun Microsystems. The features of ZFS include data integrity (protection against bit rot, etc), support for high storage capacities, integration of the concepts of filesystem and volume management, snapshots and copy-on-write clones, continuous integrity checking and automatic repair, RAID-Z and native NFSv4 ACLs.

[] NFS (Network File System) - is a network file system protocol originally developed by Sun Microsystems in 1984,[1] allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. The Network File System is an open standard defined in RFCs, allowing anyone to implement the protocol.

[] Apache MPM Worker (instead of pre-fork, prefork) + fcgid + APC + memcached
Go for a threaded server, and PHP as an fcgid.

There is an article on 2bits.com for that.
http://groups.drupal.org/node/27174
http://2bits.com/articles/apache-fcgid-acceptable-performance-and-better-resource-utilization.html

[] Nginx - is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started development of Nginx in 2002, with the first public release in 2004. Nginx now hosts nearly 6.55% (13.5M) of all domains worldwide.

Nginx is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption.

[] php-fpm (FastCGI Process Manager) - is an alternative PHP FastCGI implementation with some additional features useful for sites of any size.

[] Nginx + php-fpm + apc = Awesome

[] Disable the Apache modules that you don't need.

[] APC (Alternative PHP Cache) - Alternative PHP Cache (APC) is a free, open source framework that optimizes PHP intermediate code and caches data and compiled code (opcode code) from the PHP bytecode compiler in shared memory. APC is quickly becoming the de-facto standard PHP caching mechanism as it will be included built-in to the core of PHP starting with PHP 6.

[] Memcached - Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Read more: THERE IS NO PLACE LIKE 127.0.0.1

Posted via email from Jasper-net

Common performance issues on ASP.NET web sites

|
I spend a lot of my time analysing the performance of web sites and tuning the applications to make the sites run more efficiently and scale better. Over time I’ve pulled together a checklist of some of the more common performance issues that I see and how to resolve them, and I thought it was about time I shared them here.

Most of the issues I’ve identified are straightforward to fix (many are just configuration changes) and can give significant improvements to the scalability and the responsiveness of your web site. Some of them you may well already be aware of and I’m still amazed how many of the more obvious ones don’t get implemented as a matter of course, but then it keeps me in a job!

This post is broken down into three sections; the first is cold start improvements, or “why does my web site take so long to start up?”. This involves looking at what the IIS worker processes (w3wp.exe) are doing during initialisation, prior to completing the initial client request that caused them to launch.

The second section, which is generally more important, looks at the efficiency of processing requests once the server has “warmed up”, and is hopefully the state that the web site will spend most of its time in!

Finally the third section provides a general discussion around accessing SQL Server and web services from within web applications. These aren’t necessarily quick wins and may involve some changes to interfaces (or even the solutions architecture) to successfully implement, Finally, I’ll reveal the three golden rules for producing fast, scalable applications that I’ve derived from my investigations.

For each issue, I've included a brief description and references to where more information on the issue can be obtained and how to resolve it.

Cold start

  • If the application deserializes anything from XML (and that includes web services…) make sure SGEN is run against all binaries involved in deseriaization and place the resulting DLLs in the Global Assembly Cache (GAC). This precompiles all the serialization objects used by the assemblies SGEN was run against and caches them in the resulting DLL. This can give huge time savings on the first deserialization (loading) of config files from disk and initial calls to web services.
http://msdn.microsoft.com/en-us/library/bk3w6240(VS.80).aspx

Read more: MCS UK Solution Development Team

Posted via email from Jasper-net

Automatically convert your PSD into HTML!

|
Our service is for those who are involved in web development industry. We strive for reducing time and cost of site creation. We help to speed up one of the site development phases, namely, creation of HTML markup from a graphic design. Through our service you can automatically convert your PSD design into a valid cross browser XHTML 1.0 Strict/CSS 2.1 markup in a minute! All you need is to prepare you PSD file according to simple rules. And as yet – completely free (however we encourage you to leave your feedback). We recommend you to download and get familiar with our examples of well-prepared PSD files.

Do you like our PSD to HTML conversion service? Support us, tell your friends about it, let they like the service too. Share a link via "I like" button or tweet us. Thank you!

Read more: PSD 2 HTML Converter

Posted via email from Jasper-net

Sql Agent Quick Tip- Deleting History

|
This is the first in several posts that will discuss quick tips and tricks for managing Sql Agent history.  Today, I'm going to discuss one of the history management options which will let you delete history.  There is an easy way to do this, but it has some limitations to be aware of, which I will point out below.

The first thing to do is to find the Sql Server Agent node in Management Studio, and right click on it to open the Properties.  Select History from the right hand "Select a page" section. This opens up the dialog shown below.  Note the checkbox below to "Remove agent history".  You can specify the time period for deletion, as shown below.

When you click OK to dismiss the dialog, the history data which is older than the specified time period will be deleted.  However, this is not a recurring behavior.  It is a one time only operation- and that has caused some customer confusion. The next time you revisit the dialog, the checkbox is gone.    One way to get recurring behavior is to write a scheduled job.  This is ultimately more flexible than using the quick history delete feature below.  This is also pretty easy to do- you can get started by simply clicking the Script button (see dialog below) and select "script to job".  Now you have a job that will delete history older than a certain date.  All you need to do now is create a schedule for the job to run.

Read more: SQL Server Agent Team Blog

Posted via email from Jasper-net

Announcing Portable Library Tools CTP [Justin Van Patten]

|
Today we're announcing the CTP release of a new add-in for Visual Studio 2010 that makes it easy to create C# and Visual Basic libraries that run on a variety of .NET platforms without recompilation.

Download the Portable Library Tools CTP today (install VS 2010 SP1 Beta first).

Creating Portable Libraries
The Portable Library Tools CTP adds a new "Portable Class Library" project template to Visual Studio that can be used to create class libraries in C# and VB that run on the various .NET platforms without recompiling.

5224.plibproject.png

Read more: BCL Team Blog

Posted via email from Jasper-net

Attack Surface Analyzer

|
My team here at Microsoft Security Engineering Center just released our latest tool for the SDL, Attack Surface Analyzer.  Dave has already blogged about the tool: http://blogs.msdn.com/b/sdl/archive/2011/01/17/announcing-attack-surface-analyzer.aspx.

Read more: Discoveries at Microsoft

Posted via email from Jasper-net

SQL Database Mail -- Cleanup of Logging Records

|
Similar to SQL Agent logging history, Database Mail has own logging history.  When the logging history is grown too big, you can run T-SQL sysmail_delete_log_sp to clean the logging records.  Several examples of using this stored procedure are provided here.

The article here is assumed that a SQL Database Mail profile "MailProfile1' has been created.  The MailProfile1 tells Database Mail what account it should use to send emails.  For how to create a Database Mail profile, you can refer to the previous post SQL Database Mail - Send Emails from SQL Server.

To delete all records that are generated before 2:37pm, January 17, 2011, run sysmail_delete_log_sp as follows.

-- Start T-SQL
   USE msdb
   EXEC sysmail_delete_log_sp @logged_before='2011-01-17 14:37:00'
-- End T-SQL --

Below is the comparison of log history show before and after deletion.

Read more: SQL Server Agent Team Blog

Posted via email from Jasper-net

מה הפואנטה של MVVM ?

|
למה אני צריך את זה בכלל?!

השאלה איך לממש MVVM זו בפירוש לא השאלה הראשונה שאנו צריכים לשאול את עצמינו לפני שאנו נגשים למימוש של ארכיטקטורה או Design Pattern חדש. השאלה היא למה.

התיעוד של פריזם מספקת דוגמא מאוד טובה לבעייתיות שאליה אני מתכוון... - רוב רובו של התיעוד בנוי כך - בשביל לממש A יש לבצע B, בשביל לממש C יש לבצע D.. בהרבה מאוד מקומות שמתמשים בפריזם נופלים ללא מעט טעויות בגלל שאת השאלה הבסיסית, למה, שוכחים טיפה לשאול. (וזה חבל היות וסה"כ פריזם היא לא פריימוורק רע.. פשוט משתמשים בו מאוד רע ברוב המקרים)

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

מה MVVM נותן לי?

MVVM דומה מאוד לMVC, רק שהוא טוב ממנו בכל פרמטר (MVVM זה לא רק MVC לWPF, זה שדרוג מאוד משמעותי של MVC). MVVM נותן לי כל מה שMVC נותן לי, רק יותר טוב.

טוב, אז מה MVC נותן לי? (או: תשמעו שאלה מטופשת)

אז מה באמת MVC נותן לי? אם התשובה שנתת לעצמך בראש היא "הפרדה של שכבות" או משהו דומה, אני רוצה להציע את השאלה המעניית הבאה:

עקרונית, בMVC אנו נפריד את הקוד שלי לשלוש שכבות נפרדות - Model, View, Controller.

המודל זה המידע והשירותים השונים באפליקציה (כדוגמא, DAL מעל מסד נתונים, והאובייקטים שהDAL מחזיר לנו)

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

אז... לכאורה לממש MVC זה כבר בילט אין בWPF!

הXAML זה הView.

הCodeBehind זה הקונטרולר,

והDAL יהיה המודל!

השאלה לא כל כך טריוויאלית כמו שהיא נראית, למרות שהיא בפירוש שגויה.

אז כמובן שזו טעות. זה בפירוש לא MVC. אבל.. למה?

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

Read more: LEGO FOR GROWNUPS

Posted via email from Jasper-net

משרות פתוחות בחברת טווינגו

|
Hi

We are looking for:

SQL Server DBA (application)
At least 2 years of experience. Must know how to write queries and procedures. Optimizing indexes is also needed.
Advantage: C# / BI tools / Infrastructure DBA experience

BI Developers
At least 2 years of experience with any tool, not only MS BI. Reports, ETL and DW.
Advantage: OLAP, Microstrategy

Junior DBA

Read more: ItayBraun

Posted via email from Jasper-net

Announcing Native Extensions 1.0 for Microsoft Silverlight

|
Native Extensions 1.0 for Microsoft Silverlight (NESL) is a new toolkit that contains a set of Silverlight libraries that enable Silverlight 4 out-of-browser applications to interact with cool Windows 7 features:

· Take advantage of sensors like accelerometers, light sensors, compasses, GPS etc.
· Access content from connected portable devices like music players and digital cameras.
· Capture and create video from webcams and screen output
· Use speech recognition and text to speech capabilities.
· Integrate with the Windows 7 taskbar (Jump Lists, Icon Overlays, Taskbar Progress etc.)

Read more: Silverlight Team Blog

Posted via email from Jasper-net

Help us test Mono 2.10

|
Andrew has just released the packages for our first preview of Mono 2.10, we published sources and packages for SLES, OpenSUSE, RHEL, Windows and MacOS X here:

http://mono.ximian.com/monobuild/preview/download-preview

From our draft release notes, here are some of the highlights in this release:

  • SGen Precise Stack Scanning and many performance improvements.
  • New Profiler engine
  • Google Native Client Support
  • Faster socket stack
  • Improved Parallel Framework
  • Cecil/Light
  • New C# Compiler backend (can now use any custom mscorlib)
  • VB Compiler can now compile to both 2.0 and 4.0 profiles.
As well as containing a pile of bug fixes.

As I mentioned last year, we are moving to a faster release schedule to get important features out for our users faster. For instance, our SGen garbage collector has been vastly improved and should perform better under load, and our ParallelFX got some real-life testing which helped us improve it significantly.

Read more: Personal blog of Miguel de Icaza

Posted via email from Jasper-net

אינטל תגייס ב- 2011 למעלה מ- 1000 עובדים בהכנות לאתגרים של טכנולוגיית 22 ננומטר בפיתוח ובייצור.

|
אינטל ישראל צופה גיוס של למעלה מ- 1000 עובדים חדשים שישתלבו בשנת 2011 בהכנות לפיתוח וייצור של טכנולוגיית 22 ננומטר.

אינטל ישראל ייצאה בשנת 2010  בהיקף כספי של 2.7 מיליארד דולר.  אינטל ישראל הנה היצואן הפרטי הגדול בישראל.

אינטל הנה המעסיק הגדול בישראל במגזר הפרטי. בשנת 2010 עמד מספר המועסקים באינטל ישראל על 7,057 עובדים, וההשפעה העקיפה על התעסוקה בישראל נאמדת בכ-20,000 מועסקים. 

Read more: itCrew.co.il

Posted via email from Jasper-net

Microsoft Re-Adds 'Boot to Disc' on Xbox 360

|
Xbox LIVE Dashboard update:
On Wednesday, January 19th we will issue a mandatory dashboard update that (re) enables the ‘Boot to Disc’ option in the Xbox 360 dashboard. After you accept the update, you’ll be able to set the option to boot to the Xbox 360 dashboard OR directly to the game you have in the tray when you power up your console. This option can be found in the System Settings.

Xbox.com update:
Additionally, on Thursday January 20th the Xbox.com team will ship an update that contains a small update to the Gamercards. We’ve updated the Gamercard look and feel a bit and removed gamerzone from the card. Other than that, the same amount of information is on the card.

Read more: GameGuru mania

Posted via email from Jasper-net

SQLSteps

|
sqlsteps_logo.jpg

SQLSteps was started by a group of professional SQL Server Instructors who could not find a decent and affordable online training solution for their own students.

Armed with a deep understanding of the process of rapid Step-by-Step skill development, we have developed courses that will engage and challenge you; ultimately giving you the skills you need to move forward with your SQL projects and careers.
Usability, Practicality, Experience and Success; these are words that we take seriously. Every decision we make is based around them.

Read more: SQLSteps

Posted via email from Jasper-net

Secure Programming for Linux and Unix HOWTO

|
David A. Wheeler

Copyright © 1999, 2000, 2001, 2002, 2003 by David A. Wheeler

v3.010, 3 March 2003

This book provides a set of design and implementation guidelines for writing secure programs for Linux and Unix systems. Such programs include application programs used as viewers of remote data, web applications (including CGI scripts), network servers, and setuid/setgid programs. Specific guidelines for C, C++, Java, Perl, PHP, Python, Tcl, and Ada95 are included. For a current version of the book, see http://www.dwheeler.com/secure-programs

This book is Copyright (C) 1999-2003 David A. Wheeler. Permission is granted to copy, distribute and/or modify this book under the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any later version published by the Free Software Foundation; with the invariant sections being ``About the Author'', with no Front-Cover Texts, and no Back-Cover texts. A copy of the license is included in the section entitled "GNU Free Documentation License". This book is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Table of Contents


1. Introduction
2. Background
2.1. History of Unix, Linux, and Open Source / Free Software
2.1.1. Unix
2.1.2. Free Software Foundation
2.1.3. Linux
2.1.4. Open Source / Free Software
2.1.5. Comparing Linux and Unix
2.2. Security Principles
2.3. Why do Programmers Write Insecure Code?
2.4. Is Open Source Good for Security?
2.4.1. View of Various Experts
2.4.2. Why Closing the Source Doesn't Halt Attacks
2.4.3. Why Keeping Vulnerabilities Secret Doesn't Make Them Go Away
2.4.4. How OSS/FS Counters Trojan Horses
2.4.5. Other Advantages
2.4.6. Bottom Line
2.5. Types of Secure Programs
2.6. Paranoia is a Virtue
2.7. Why Did I Write This Document?
2.8. Sources of Design and Implementation Guidelines
2.9. Other Sources of Security Information
2.10. Document Conventions
3. Summary of Linux and Unix Security Features
3.1. Processes
3.1.1. Process Attributes
3.1.2. POSIX Capabilities

(more...)

Read more: David A. Wheeler

Posted via email from Jasper-net

Sikuli

| Wednesday, January 19, 2011
What's SIKULI?

Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API's support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.

Read more: Sikuli

Posted via email from Jasper-net

An A-Z Index of the Bash command line for Linux.

|
adduser  Add a user to the system
 addgroup Add a group to the system
 alias    Create an alias •
 apropos  Search Help manual pages (man -k)
 apt-get  Search for and install software packages (Debian/Ubuntu)
 aptitude Search for and install software packages (Debian/Ubuntu)
 aspell   Spell Checker
 awk      Find and Replace text, database sort/validate/index
b
 basename Strip directory and suffix from filenames
 bash     GNU Bourne-Again SHell
 bc       Arbitrary precision calculator language
 bg       Send to background
 break    Exit from a loop •
 builtin  Run a shell builtin
 bzip2    Compress or decompress named file(s)
c
 cal      Display a calendar
 case     Conditionally perform a command
 cat      Display the contents of a file
 cd       Change Directory
 cfdisk   Partition table manipulator for Linux
 chgrp    Change group ownership
 chmod    Change access permissions
 chown    Change file owner and group
 chroot   Run a command with a different root directory
 chkconfig System services (runlevel)
 cksum    Print CRC checksum and byte counts
 clear    Clear terminal screen
 cmp      Compare two files
 comm     Compare two sorted files line by line

Read more: An A-Z Index of the Bash command line for Linux.

Posted via email from Jasper-net

10 Must-Play Video Games for 2011

|
Assembled here are the 10 games that really have me gripped as the ones to watch over the course of the next 12 months. There remains a whole host of other titles that weren’t covered in the list but still represent genuinely exciting or at least interesting prospects. They’re listed at the bottom as honorable mentions.

NB: I would have had Diablo 3 right at the top of the list as that is the one game for which the wait is agonizing. However, I know Blizzard’s habits well enough to not anticipate a release until they give a final date.

Gears of War 3
L.A. Noire
Portal 2
Shogun Total War 2

Read more: GNews

Posted via email from Jasper-net

A New Web for .NET

|
A number of things have been happening these last few years in the .NET community in relation to the Web. Specifically, OpenRasta and FubuMvc demonstrated 1) new approaches to web development in a static-typed world and 2) that other developers were growing tired of the existing options. Since then a host of new micro-frameworks, generally inspired by the Ruby dynamic duo of Rack and Sinatra, have popped up on github. In addition, several new server options have begun cropping up, most notably Kayak and Manos de Mono, both of which use an event loop a la node.js and primarily targeting Mono.

Microsoft has not be sitting idly by either. The WCF team is working on a new Web API to provide WCF developers simpler, more direct control over HTTP services. This is no slouch effort either. In fact, aside from OpenRasta, it may be the most thorough HTTP implementation available.

While exciting on their own, the best news, imho, is the .NET HTTP Abstractions group, started by Scott Koon. This group has been working on a standard, currently called Open Web Interface for .NET (OWIN). It’s intent is to define a common interface by which any application can talk to any server. The idea comes from the Web Server Gateway Interface (Python) and Rack. The primary difference in this and other similar specs is the inclusion of asynchronous network I/O as a primary concern. Discussions are still underway and include nearly all of the developers of the aforementioned projects, as well as some members of the ASP.NET team.

Read more: Wizards of Smart

Posted via email from Jasper-net

GNOME 3 website now live, tries a bit too hard to be cool, looks like Unity

|
gnome-3.jpg

New, clean-and-simple HTML5 websites are obviously in this week: GNOME, one of the most popular desktop environments for Linux, has just released a new website to celebrate the features of version 3, which will be released in April.

With phrases like "SIMPLY BEAUTIFUL" and "DISTRACTION-FREE COMPUTING" plastered all over the site it's obvious that GNOME not only likes capital letters, but that it's also trying to capitalize on the recent movement towards simpler, less-shiny interfaces. GNOME 3 now has a slogan, too -- "made of easy" -- which, to be honest, feels like it's trying a bit too hard to be cool.

Read more: DownloadSquad

Posted via email from Jasper-net

EQATEC Profiler

|
Optimize speed, not memory usage
The EQATEC Profiler is a code profiler, not a memory profiler. So it's all about making your app run faster, not about tracking objects and memory. The report will tell you exactly how many times each method was called and how long it took. You can then speedup your application by optimizing just the most expensive methods.

Easy to use
We have focused much on making the profiler and viewer both very easy to use:
You can profile any .NET application with just a few clicks. No source code changes are needed.
The viewer has been designed to make it easy to drill quickly into what really matters: the most expensive methods and their context.
So don't let the simple look fool you - we take pride in not adding tons of useless options, but instead make tools that simply does "the right thing" by itself.

Very fast
On a 3GHz P4 PC the profiling step typically takes 1 second per 2000 methods, so that's pretty quick.

Read more: EQATEC

Posted via email from Jasper-net

Xte Profiler

|
fp_ss_1.png

.NET Profiler
Xte Profiler is a trace and memory profiler for .NET.

Supports .NET CLR v2 and v4 (.NET Frameworks 2.0, 3.0, 3.5 and 4.0)
Supports profiling of Azure webroles, IIS Express, Windows executables, ASP.NET Development server applications, IIS applications, Windows services and Silverlight 4 applications.
Supports trace and memory profile modes.
and more...

Read more: Xte Profiler

Posted via email from Jasper-net

Wrappers Unwrapped

|
When you use a COM object in .NET the .NET framework creates a Runtime Callable Wrapper (RCW) which shows up in the debugger as __ComObject. This allows interoperation between managed .NET and native COM code. One of the major differences between C++ COM and .NET is that in C++ you have deterministic destruction while in .NET objects are finalized at the garbage collector’s leisure. Which mode of operation is preferable is a matter of taste and not the topic of this post (I’ll just say that you can take my deterministic destruction when my cold dead hand goes out of scope) however mixing the two modes can cause problems.

The SOP is that the RCW calls AddRef[1] on the COM object it is holding so that it won’t disappear while it’s being used and then, when the RCW is collected by the GC, it will release this reference in its finalizer. This works if you don’t care exactly when the COM object is released and .NET exposes Marshal.ReleaseComObject for cases in which you want to manually control the object’s lifetime.

We recently re-implemented a few interfaces (that were previously native COM) in .NET and stuff stopped working. A bit of debugging later I find that we’re calling ReleaseComObject on an object that is now implemented in .NET, this causes an ArgumentException to be thrown. A cow-orker pointed me at a post titled Marshal.ReleaseComObject Considered Dangerous (well at least it’s not harmful), this post describes the problem we were facing and the solution I already put in place (check with Marshal.IsComObject before calling ReleaseComObject) but goes on saying that this isn’t enough since once you call ReleaseComObject the RCW is disconnected from the COM object and can’t be used (and that this can be a problem if the RCW is cached). I thought that this is a theoretical problem (I know we aren’t caching the RCWs) and kept trying to figure out why our code still wasn’t working.

It turns out that as in everything in programming it’s all about adding another level.  We had three levels, a .NET class (which we’ll call A) a native class (C) and class B which was native in a previous incarnation but is now .NET, A holds a reference to B which hands it a C (via a method or property), but why is this a problem?

For that we’ll need to dive a bit deeper into how RCWs work.

In order to preserve COM’s identity semantics whenever a COM object is passed into the CLR the .NET framework first checks if there is an active RCW for this object, if so it returns the existing object. You can see this by debugging your native object, after an object is returned from a native COM method (or property) it is followed by a QueryInterface for IUnknown and then by two calls to Release (one for the reference gained in the original function and one for the reference gained in QueryInterface). Additionally the RCW maintains a count of the times it has been reused, MSDN refers to this as a reference count but I’ll refer to it as marshal count in order to emphasise the difference between this number and the native COM object’s reference count. If an RCW is reused at the identity checking phase the marshal count is incremented. When ReleaseComObject is called on an RCW the marshal count is decremented. If the marshal count reaches zero the RCW releases its references to the native COM object and marks itself as invalid, any subsequent calls to the wrapped object will throw an InvalidComObjectException with the message “COM object that has been separated from its underlying RCW cannot be used”. If an RCW is collected by the GC while it is still in a valid state it will also release it’s wrapped object (regardless to its marshal count).

Now consider the situation we had when B was a native COM object. Whenever A got a C from B said C had crossed the CLR boundary and a new RCW was created (or at least the marshal count was incremented). Then when A was done with C it called ReleaseComObject and all was fine and dandy.

Read more:  I will not buy this blog, it is scratched!

Posted via email from Jasper-net

Nemerle

|
Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system.

Features that come from the functional land are variants, pattern matching, type inference and parameter polymorphism (aka generics). The meta-programming system allows great compiler extensibility, embedding domain specific languages, partial evaluation and aspect-oriented programming.

Read more: Google code

Posted via email from Jasper-net

Mole For Visual Studio - With Editing - Visualize All Project Types

|
mole41opencompressed.jpg

Introduction

Mole was authored by Karl Shifflett, Josh Smith and Andrew Smith who make up Team Mole. The core development process took the team several weeks. Most of the additional enhancements were implemented by Andrew and Karl, with a lot of testing and feedback provided by Josh. You can visit Team Mole's Home Page here. This article was written by Karl.

Mole has been tested on WPF, WCF, WF, WinForms and ASP.NET projects on Vista, XP Pro, x32, x64, VS2005 and VS2008, C# and VB.NET. We sincerely hope all .NET developers like and use Mole. Currently Mole does not support Silverlight but we will consider writing a visualizer, or similar tool, shortly after Silverlight 2.0 is released to the public.

This article makes no assumptions about your prior exposure to the Mole project, or visualizers in general.

What is Mole?

Mole is a Visual Studio visualizer. Visualizers have been part of Visual Studio since version 2005. During debugging sessions, visualizers allow developers to view objects and data using a customized interface. Visual Studio ships with several simple but useful visualizers. Many developers have posted visualizers for .NET classes.

Mole was designed to not only allow the developer to view objects or data, but to also allow the developer to drill into properties of those objects and then edit them. Mole allows unlimited drilling into objects and sub-objects. When Mole finds an IEnumerable object, the data can be viewed in a DataGridView or in the properties grid. Mole easily handles collections that contain multiple types of data. Mole also allows the developer to view non-public fields of all these same objects. You can learn a lot about the .NET Framework by drilling around your application's data.

Depending on the type of object you are visualizing you can view properties, fields, IEnumerable collection data, an image of the data/control, and run-time XAML.

Mole v4 allows editing of properties. Please see the Editing section below for full details.

Quick History

When a great friend and co-author Josh Smith wrote Woodstock for WPF on 13 Nov 2007, I got pretty excited about how Visual Studio visualizers that target WPF can really assist developers. I started making a list of features I wanted and began working on Mole.

Mole was my first visualizer and first real WinForms program I've created with .NET 2.0. I spend most of my time with WPF, WCF, ASP.NET, SQL Server and Windows Services. So starting from scratch would prove to be challenging at times.

Read more: Codeproject

Posted via email from Jasper-net

C# VB .NET

|

How do you configure Google Chrome to use TOR?

|
1. Download Vidalia from http://www.torproject.org/easy-download.html.en
2. Install Vidalia - a TOR client with GUI.
3. Wait until Vidalia tells you that Tor is working.
4. Start Google Chrome.
5. Using the Tools menus (it looks like a wrench), choose options, "Under the hood". Scroll down to "Network" and click the "Change Proxy Setting" button.
6. Under the "Connections" tab, choose "LAN Setting" - Select Use Proxy server and enter "Localhost" and port 8118.
7. Save your work and return to the Chrome web browser. Check that you are using TOR by going to http://check.torproject.org/
A Green message will indicate that TOR is operating correctly. A Red message will indicate that TOR is not set up correctly.
8. Continue to surf using TOR

Read more: Answers.com

Posted via email from Jasper-net

Why doesn’t this cause an Exception ?

|
I was trying to run the below code snippet in Visual Studio 2010 .

int Number1 = 320000;
int Number2 = 320000;
int Number3 = Number1  * Number2 ;
MessageBox.Show(Number3.ToString());

The code resulted in the value – 797966336 without being showing the error or the correct value .

Just found that If you want an exception to be raised on this occassion , then use the following 2 options as below .

Read more: Ginktage

Posted via email from Jasper-net

Wiki in 80 lines of Javascript

|
I want to share this hack I wrote over the weekend - an 80-line web app as a demo for my Pageforest JavaScript-based web app service. Click on edit above to see the markup for this document and edit it. Your changes will be reflected in real-time in the preview section, below. You can save a copy of your edits by clicking Sign In and then Save, above (you'll need to create a (FREE) Pageforest account along the way). You can also try editing this publicly editable document.

How it Works

Read more: Hello, Hacker News!

Posted via email from Jasper-net

Script to attach a USB device to a virtual machine [VPC]

|
A couple of people have asked me how to automate attaching a USB device to a Windows Virtual PC virtual machine, so here is a PowerShell script to do just that:

# Connect to Virtual PC
$vpc = new-object -com VirtualPC.Application

# Get VM name
$vmName = Read-host "Specify the name of the virtual machine that you want to use"

# List available USB devices
write-host "The following USB devices are available:"
$vpc.USBDeviceCollection | select -ExpandProperty DeviceString

# Get the USB device name
$usb = Read-host "Enter the name of the USB device that you want to connect to the virtual machine"

Read more: Virtual PC Guy's Blog

Posted via email from Jasper-net

Running an ASP.NET MVC 3 app on a web server that doesn’t have ASP.NET MVC 3 installed

|
Last week we released several new web products – including ASP.NET MVC 3.  We’ve had a bunch of great feedback and a ton of downloads since then.

One question a few people have asked me recently is: “My web hosting provider doesn’t yet support ASP.NET MVC 3 - any idea when they will install it?”

The good news is that you don’t need to wait for them to install anything on their web-servers.  As long as your web hosting provider supports .NET 4, then you can build and deploy ASP.NET MVC 3 applications on it today – without the hosting provider having to do anything to enable it.  The below post describes how you can enable this.

Some Background

We support two ways for you to install and use the assemblies that implement ASP.NET MVC 3 on a machine:

Have the ASP.NET MVC 3 assemblies installed in a central place on a machine, and have web projects reference/use the assemblies from there
Copy the ASP.NET MVC 3 assemblies into the \bin folder of your web project, and have your web project reference/use the assemblies from there
The first approach is the default approach we use with Visual Studio, and has the benefit of enabling us to easily service the ASP.NET MVC 3 assemblies using Windows Update (in the event of a bad bug).

The second approach is also fully supported, and has the benefit of not requiring ASP.NET MVC 3 to be explicitly installed on a machine in order for it to be used.  Instead you can just copy/ftp your web application onto a server (with the ASP.NET MVC assemblies contained within the \bin directory of the application) and it will just work.  You should use this second approach if your web hosting provider hasn’t explicitly installed ASP.NET MVC 3 yet on their servers.

Approach 1: GAC Based Referencing of ASP.NET MVC Assemblies

When you install ASP.NET MVC 3 on a machine, a number of assemblies are automatically registered in the GAC (global assembly cache) as part of the installation process.  The GAC provides a central place that .NET assemblies can be installed and serviced (via Windows Update).  Because it provides an easy way for us to update/service assemblies, ASP.NET MVC projects - by default - reference the assemblies that implement ASP.NET MVC 3 from it.

Read more: ScottGu's Blog

Posted via email from Jasper-net