Pwn Plug Standard
The first-to-market commercial pentesting drop box.
:: Maintains a covert, encrypted, firewall-busting backdoor into your target network [Details]
:: Includes "Plug UI" for simple web-based setup
:: Tunnels through application-aware firewalls & IPS
:: Sends an SMS message when SSH tunnel is activated
:: Preloaded with Ubuntu, Metasploit, SET, Fasttrack, SSLstrip, nmap, dsniff, netcat, nikto, nbtscan, scapy, ettercap, JTR, medusa, & more!
:: Unpingable and no listening ports in stealth mode
Manuals: [Documentation]
Pwn Plug Overview: [External Link]
Action Shots
Pwn Plugs deployed with our stealthy printer PSU and air freshener decals, available here
Read more: Pwnie Express
QR:
Plug computer
Posted by
jasper22
at
18:30
|
A plug computer is a small form factor server, intended to provide network-based services within the home. Built on a Marvell system-on-chip, the Marvell plug computer enables high-performance, always-on, always-connected, and environmentally-friendly computing that is readily available for developers. Unlike other embedded devices in the home it contains a gigahertz- class processor designed to offer PC-class performance.
The plug computer is suitable for file sharing, running a media server, back-up services, and remote access functions. It can be used as a bridge between home computing devices and Internet-based services. Plug computing is quickly expanding—delivering new devices, services, value-added applications, and advanced network connectivity to users.
Software
The plug ships with Linux, the most popular open-source operating system. However, any operating system that is compatible with ARM CPUs—such as FreeBSD, NetBSD, Windows CE, etc.—may potentially run on the platform.
Applications
The range of applications is bounded only by the imagination of the developer.
Examples of typical use cases:
Compact, high-performance file server for home computers.
Multimedia server for DLNA-enabled players, such as the Sony PS3.
Web proxy, enabling fast, cached access to Web sites.
Storage of home video surveillance streams.
Automation of downloads and uploads to Web sites.
Read more: PlugComputer.com
QR:
How to Setup Rsync Backups on Linux the Easy Way
Most people these days use some type of online backup like Dropbox, but what if you just want the same feature, but backing up to an external hard drive instead? Here’s how to do it the easy way.In the past, we showed you how to synchronize files and folders with SyncToy, however, SyncToy only works for Windows. On the other hand, Rsync is an open source tool that works on any computing platform. Whether you are on Windows, Linux, or Mac, Rsync backups files and folder on any of these platforms. Rsync comes as a command line utility, and the secret to make it work, lies in how skilled you are with command line switches. If you loathe the command line, Grsync gives a nice user interface for Rsync, and it is also available for Windows and Mac.
Getting Started with GrsyncInstall Grsync with your package manager.
Prepare a folder, ideally somewhere outside your PC – an external hard disk, or a network storage drive, for your backups. Once you have done that, open Grsync, and create a new session.Read more: How-to geek
QR:
Getting Started with GrsyncInstall Grsync with your package manager.
QR:
Twitter for Android gets push notifications, multiple account support
Posted by
jasper22
at
16:05
|
QR:
PDF Masher – Convert PDF Into HTML, Optimize For eBook Readers
Posted by
jasper22
at
15:44
|
PDF Masher has been developed to remove clutter, like, bloated headers and footers, irrelevant pages from PDF documents to make them ready for your eBook reader. Since many eBook readers don’t have options to optimize the PDF document viewing, it becomes frustratingly hard to first zoom out the page and then start reading the text off the e-book reader screen, which is in some cases, doesn’t appear clear on the screen. PDF Masher not only transforms PDF document into HTML format but allows changing the way you read documents on your eBook reader. It provides convenient options to remove and adjust headers and footers text, remove selected text elements from the pages, change text state to title, footnote and header, etc. The columns headers let you sort the PDF document by page, rows, columns, font size, text length, state, and document text. Read more: Addictive tips
QR:
Detecting and Changing a File’s Internet Zone in .NET: Alternate Data Streams
Posted by
jasper22
at
14:03
|
I spent most of yesterday investigating some weird behaviour in MEF, which I’ll discuss in another post. I was saved by Twitter in the guise of @Grumpydev, @jordanterrell and @SQLChap who came to the rescue and led me down a very interesting rabbit hole, to a world of URL Zones and Alternate Data Streams. Thanks chaps! If you download a file from the internet on Windows 2003 or later, right click, and select properties, you’ll see something like this:
The file is ‘blocked’ which means that you will get various dialogues if you try to say, run an executable with this flag set.Any file on NTFS can have a ‘Zone’ as the flag is called. The values are described in this enumeration: typedef enum tagURLZONE {
URLZONE_INVALID = -1,
URLZONE_PREDEFINED_MIN = 0,
URLZONE_LOCAL_MACHINE = 0,
URLZONE_INTRANET,
URLZONE_TRUSTED,
URLZONE_INTERNET,
URLZONE_UNTRUSTED,
URLZONE_PREDEFINED_MAX = 999,
URLZONE_USER_MIN = 1000,
URLZONE_USER_MAX = 10000
} URLZONE;
The Zone is not standard security information stored in the file’s ACL. Instead it uses a little known feature of NTFS, ‘Alternate Data Streams’ (ADS). Sysinternals provide a command line utility streams.exe that you can use to inspect and remove ADSs, including the Zone flag, on a file or a whole directory tree of files.
Read more: Code rant
QR:
URLZONE_INVALID = -1,
URLZONE_PREDEFINED_MIN = 0,
URLZONE_LOCAL_MACHINE = 0,
URLZONE_INTRANET,
URLZONE_TRUSTED,
URLZONE_INTERNET,
URLZONE_UNTRUSTED,
URLZONE_PREDEFINED_MAX = 999,
URLZONE_USER_MIN = 1000,
URLZONE_USER_MAX = 10000
} URLZONE;
The Zone is not standard security information stored in the file’s ACL. Instead it uses a little known feature of NTFS, ‘Alternate Data Streams’ (ADS). Sysinternals provide a command line utility streams.exe that you can use to inspect and remove ADSs, including the Zone flag, on a file or a whole directory tree of files.
Read more: Code rant
QR:
WCF on intranet with windows authentication: Kerberos or NTLM (Part 1)
Posted by
jasper22
at
13:42
|
The issueWhen we build enterprise level SOA system on top of windows servers, if the environment is with Active Directory, using windows authentication is probably the most appropriate authentication mechanism which is secure, straight forward to build and easy to maintain. Underneath WCF's windows authentication implementation, two SSP are used: Kerberos and NTLM. You might encounter the same issues like I did, here I want to share some of the experience come from my trouble shooting. If we use domain user to host a WCF service, and call this service from another machine, very likely we will have this error: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The target principal name is incorrect There are quite a lot articles (1, 2, 3, 4) discussing this issue, basically their solution is to: use setspn.exe to create an SPN for the domain account
configure at client side, set spn as client identity However, the odd thing is actually we can skip step 1, and set a dummy string in step 2, it also works. Why? I am not the first one who has this question, these 2 posts (1, 2) has the exact same question against this. So, I decided to dig deeper and find the root cause.
Read more: Tianxiang Chen's Tech Blog
QR:
configure at client side, set spn as client identity However, the odd thing is actually we can skip step 1, and set a dummy string in step 2, it also works. Why? I am not the first one who has this question, these 2 posts (1, 2) has the exact same question against this. So, I decided to dig deeper and find the root cause.
Read more: Tianxiang Chen's Tech Blog
QR:
Top 9 Google-A-Licious Extensions for Your G+ Profile
Posted by
jasper22
at
12:28
|
Developers have not wasted any time in seizing the opportunity to create and come up with some pretty nifty extensions for their preferred network. They’ve been working diligently down in the Google labs and they’ve already emerged with some pretty good features and several extensions for Google Chrome which make the use of Google+ not only more user friendly but also fun to spend time on utilizing its many features. STG has gone on a G+ Quest and has discovered some unique extensions for users of Google+ which will make your G+ Social networking experience even more enjoyable !1. Google+ Css tricks
2. Google+ Everywhere
3. Google+ Facebook
Read more: SkyTechGeek
QR:
How to Decrease the Pain in Building Distributed Systems
Posted by
jasper22
at
11:50
|
This video is a collection of scalability principles, anecdotes and practices from experts (and personal experience) from engineering, operations, and business perspectives. Building distributed systems is painful. Many organizations are approaching the point where their data and application infrastructures are being run on many servers (in the cloud or datacenter). Our software practices don’t reflect that, often with disastrous results. Read more: Software Development Videos and Tutorials Directory
QR:
QR:
How Google+ is built
Posted by
jasper22
at
11:48
|
If you’re curious about all things Google+, you’re in luck. The project’s technical lead, Google engineer Joseph Smarr, is currently hosting an online question and answer session about the service — and he has already shared a number of details about Google+’s development, technology, and plans for the future. On Monday, Smarr opened himself up for questions on Q&A website AnyAsq.com, a Y-Combinator-backed site reminiscent of Formspring.me where users can invite others to “ask me anything.” People sign in to post questions on AnyAsq through their Twitter accounts, but a host’s responses can be longer than 140 characters. Smarr has already answered 270 queries, and as of press time, his AnyAsq page is still open for questions. Here’s some of what he has revealed so far: Google+ fast tracked its development from the start
“We put extra emphasis on engineering speed/agility–we try to release code updates on a daily basis while still keeping quality/stability/latency as high as you’d expect from Google.” New features are absolutely on the way
“…Personally I’m eager for many of the features other Google+ users have asked for recently: smarter ranking/collapsing/filtering in the stream and notifications… integration with more Google products… and an API so I can start hacking on cool uses of circles, etc.” Hashtags are on Google+’s radar
In response to a question about adding hashtags to help filter Google+ posts, Smarr responded: “Personally, I want this too.”
Read more: GigaOM
QR:
“We put extra emphasis on engineering speed/agility–we try to release code updates on a daily basis while still keeping quality/stability/latency as high as you’d expect from Google.” New features are absolutely on the way
“…Personally I’m eager for many of the features other Google+ users have asked for recently: smarter ranking/collapsing/filtering in the stream and notifications… integration with more Google products… and an API so I can start hacking on cool uses of circles, etc.” Hashtags are on Google+’s radar
In response to a question about adding hashtags to help filter Google+ posts, Smarr responded: “Personally, I want this too.”
Read more: GigaOM
QR:
I want my installer to do this (or something like it)...
Posted by
jasper22
at
11:48
|
Read more: Greg's Cool [Insert Clever Name] of the Day
QR:
Barrelfish - Microsoft's other OS
Posted by
jasper22
at
11:30
|
QR:
Adobe Released 64-bit Flash For Linux
Posted by
jasper22
at
11:28
|
Adobe has been taking quite a bashing from Linux supporters of late. First, there was the issue of them dropping AIR for Linux and then came the bashing because of the lack of updates on the experimental 64-bit Flash for Linux. Well, guess what! They have just released Flash 11 and it includes native 64-bit support for Linux as well. When they discontinued their experimental 64-bit Flash earlier this year, Adobe promised to release a 64-bit version of Flash for Linux when they release the next major version. They have kept that promise. Read more: Slashdot
QR:
QR:
July 2011 Security Release ISO Image
Posted by
jasper22
at
11:27
|
OverviewThis DVD5 ISO image file contains the security updates for Windows released on Windows Update on July 12, 2011. The image does not contain security updates for other Microsoft products. This DVD5 ISO image is intended for administrators that need to download multiple individual language versions of each security update and that do not use an automated solution such as Windows Server Update Services (WSUS). You can use this ISO image to download multiple updates in all languages at the same time. Important: Be sure to check the individual security bulletins at http://www.microsoft.com/technet/security prior to deployment of these updates to ensure that the files have not been updated at a later date. Read more: MS Download
QR:
QR:
Kinect as a Baby Monitor–I set it up in an hour
Posted by
jasper22
at
08:36
|
It has taken far longer to write this post than it was to actually install Kinect as a baby monitor.In less than an hour I was watching my little boy in infrared while he slept in his bedroom. It wasn’t that hard to setup as I relied on one Kinect device and two generic laptops, capable of 40 FPS. In this post I will take about the architecture and how you can setup Kinect quickly and easily. Even in complete darkness you can see the outline of your child asleep in bed. And if anyone walks in the room they are immediately visible, thanks to the depth sensor which consists of an infrared laser projector combined with a monochrome CMOS sensor, which captures video data in 3D under any ambient light conditions.
What I built Simple Design
The first room is the baby’s room where I have one laptop and one Kinect device.It took me about an hour to get all this done. But it was mostly making sure the “Free” software was installed. The laptops already had Windows Installed and my Kinect device was like $130. I need to baby proof this setup, obviously. He’s still crawling but as you read this I will find a safer location. As you can see from the diagram above the Kinect device is obviously in the baby room connected to a laptop. Preparing the laptop and the Kinect in the baby room was easy.Before doing any of these eight steps, make sure that you have two laptops with a proper version of Windows installed, and make sure you have connectivity to a Wireless Network . Also make sure, from a hardware point of view, that you have your Kinect device. My Kinect device came with one wire that allowed me to connect both to the electrical outlet and to the USB port to laptop 1 in the baby’s room. Read more: Bruno Terkaly - Developer Evangelist -
QR:
What I built Simple Design
The first room is the baby’s room where I have one laptop and one Kinect device.It took me about an hour to get all this done. But it was mostly making sure the “Free” software was installed. The laptops already had Windows Installed and my Kinect device was like $130. I need to baby proof this setup, obviously. He’s still crawling but as you read this I will find a safer location. As you can see from the diagram above the Kinect device is obviously in the baby room connected to a laptop. Preparing the laptop and the Kinect in the baby room was easy.Before doing any of these eight steps, make sure that you have two laptops with a proper version of Windows installed, and make sure you have connectivity to a Wireless Network . Also make sure, from a hardware point of view, that you have your Kinect device. My Kinect device came with one wire that allowed me to connect both to the electrical outlet and to the USB port to laptop 1 in the baby’s room. Read more: Bruno Terkaly - Developer Evangelist -
QR:
גוגל פלוס יותאם לשפת הסימנים
גוגל פלוס, הרשת החברתית החדשה של גוגל, מקדמת אפשרויות תוכנה שיתאימו את אחת מהפונקציות הפופולאריות שלה, ה-Hangouts, גם לשפת הסימנים. בפרסומים שונים ברשת, מתארים המפתחים את הרצון שלהם לוודא שאוכלוסיית החרשים וכבדי השמיעה לא נשארת מאחור, בכל הקשור לשיחות הוידאו מרובות המשתתפים שמאפשרת גוגל פלוס לקיים.
אתגר תוכנהמבחינת גוגל, מדובר בעיקר באתגר תוכנתי. על פי טענת המפתחים, כיום המערכת שמנהלת את Hangouts יודעת לזהות את הדובר ומאפשרת להדגיש את החלונית שלו, כדי שיתר משתתפי השיחה יוכלו לדעת בקלות מי מדבר באותו הרגע. כאשר כל משתתפי השיחה מדברים ביניהם בשפת הסימנים, אין שום אודיו שמגיע מהמיקרופונים אל שרתי גוגל, והתוכנה של גוגל היום לא תדע מי מהם מדבר. לכן, בגוגל יצטרכו לבצע התאמה, אשר תדע לאבחן מי הדובר באותו הרגע. האתגר של גוגל, בר פתרון באמצעות עדכוני תוכנה; היות ושפת הסימנים מבוססת על תנועות ידיים וקו ראיה ישיר בין משתתף אחד לשני, הרי שבגוגל יצטרכו להכניס מנגנון שעם הפעלתו יסרוק את הוידאו של כל משתתף ב-Hangout, וישים לב מי מהם מזיז את ידיו על המסך. אותו אדם, באותו רגע, הוא הדובר. סריקות שכאלה לא אמורות להיות גם מסובכות לענקית כמו גוגל, וגוגל מסוגלת להוציא להרצה גרסה ראשונית של אלגוריתם כזה תוך זמן קצר.
לא משאירים אף אחד מאחורעל אף שהיא עדיין בבטא, הרשת החברתית של גוגל, גוגל פלוס, צוברת תאוצה ונבחנת על-ידי אנשים רבים בתור האלטרנטיבה שלהם לפייסבוק. עם השקתה, נוצר סחף של כמויות אדירות של אנשים שרוצים לנסות את השירות החדש, ולראות האם הוא באמת יכול לשרת אותם כאלטרנטיבה טובה יותר מפייסבוק.
אתגר תוכנהמבחינת גוגל, מדובר בעיקר באתגר תוכנתי. על פי טענת המפתחים, כיום המערכת שמנהלת את Hangouts יודעת לזהות את הדובר ומאפשרת להדגיש את החלונית שלו, כדי שיתר משתתפי השיחה יוכלו לדעת בקלות מי מדבר באותו הרגע. כאשר כל משתתפי השיחה מדברים ביניהם בשפת הסימנים, אין שום אודיו שמגיע מהמיקרופונים אל שרתי גוגל, והתוכנה של גוגל היום לא תדע מי מהם מדבר. לכן, בגוגל יצטרכו לבצע התאמה, אשר תדע לאבחן מי הדובר באותו הרגע. האתגר של גוגל, בר פתרון באמצעות עדכוני תוכנה; היות ושפת הסימנים מבוססת על תנועות ידיים וקו ראיה ישיר בין משתתף אחד לשני, הרי שבגוגל יצטרכו להכניס מנגנון שעם הפעלתו יסרוק את הוידאו של כל משתתף ב-Hangout, וישים לב מי מהם מזיז את ידיו על המסך. אותו אדם, באותו רגע, הוא הדובר. סריקות שכאלה לא אמורות להיות גם מסובכות לענקית כמו גוגל, וגוגל מסוגלת להוציא להרצה גרסה ראשונית של אלגוריתם כזה תוך זמן קצר.
לא משאירים אף אחד מאחורעל אף שהיא עדיין בבטא, הרשת החברתית של גוגל, גוגל פלוס, צוברת תאוצה ונבחנת על-ידי אנשים רבים בתור האלטרנטיבה שלהם לפייסבוק. עם השקתה, נוצר סחף של כמויות אדירות של אנשים שרוצים לנסות את השירות החדש, ולראות האם הוא באמת יכול לשרת אותם כאלטרנטיבה טובה יותר מפייסבוק.
20 Best Free HTML5 Website Templates Of Year 2011
Posted by
jasper22
at
11:34
|
...Few days ago, we had shared some design related articles- Best Free Resources for Designers and Free Fonts for Designers. Thanks a lot to our readers for appreciate these post of ZoomZum. I hope designers and developers will appreciate these best HTML5 templates also and learn something advanced from these useful stuff. You can share your views in our comment section below. 1. Free Website Template Slider Typography
2. Free Communication HTML5 wesite template
Read more: ZoomZum
QR:
2. Free Communication HTML5 wesite template
QR:
My biggest recommendation for people learning T-SQL
Posted by
jasper22
at
10:11
|
It’s not quite a Best Practice, but it’s something that I see as very important. It makes the difference between someone who might be quite good at T-SQL, and someone who can go past the rest and become one of those people who get asked to solve other people’s T-SQL problems.
TSQL2sDay150x150It’s easy – you read the plans.You see, the plans explain to you what you’re actually doing, instead of just following the standard formula to get it done.It’s the same in many parts of life. If you’re going to be a mechanic, it helps to understand how an engine works. If you’re a pilot, you should understand the principles of flight. And so it is with T-SQL. We write a query, and the Query Optimizer pulls it apart and translates it into an execution plan. It’s this plan that runs, not our query. Unfortunately, the nuances of this translation demonstrate all of us ignorant. There may be people who understand it better than most, such as some of them people who work on the Query Optimizer at Microsoft. Read more: SQLblog.com
QR:
TSQL2sDay150x150It’s easy – you read the plans.You see, the plans explain to you what you’re actually doing, instead of just following the standard formula to get it done.It’s the same in many parts of life. If you’re going to be a mechanic, it helps to understand how an engine works. If you’re a pilot, you should understand the principles of flight. And so it is with T-SQL. We write a query, and the Query Optimizer pulls it apart and translates it into an execution plan. It’s this plan that runs, not our query. Unfortunately, the nuances of this translation demonstrate all of us ignorant. There may be people who understand it better than most, such as some of them people who work on the Query Optimizer at Microsoft. Read more: SQLblog.com
QR:
SSH tunnel and a half
Posted by
jasper22
at
10:09
|
As you all might know ssh is a very popular protocol used to connect to remote shells. I mostly use OpenSSH as a client (I think most of you to). SSH has a lot of cool options but in this post i’m going to write about how to use it to create a secure tunnel. What is a tunnel?A tunnel specifies a given port on the local (client) host that is to be forwarded to the given host and port on the remote side. How it works? This works by allocating a socket to listen to a port on the local side, optionally bound to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and a connection is made to the port from the remote machine. Making the tunnelBefore type the command line to create the ssh tunnel I’m assuming the following topology
If I would like to connect to 192.168.0.2 db server and the database is a postgresql, then the default port is 5432 and the tunnel command line is:$ ssh -L 5432:192.168.0.2:5432 <user>@<web server>
_____^______ ______^______
/ local port \ / remote port \If you are running a postgresql in your own machine you can chose another port to listen in your loop back. I always have a pgsql running in my laptop because I use it in most of my developments and I use port 5435. $ ssh -L 5435:192.168.0.2:5432 <user>@<web server>============================================================
from other terminal
============================================================ $ psql -h localhost -p 5435 -U db_user -d db_name
Welcome to psql 7.3.4, the PostgreSQL interactive terminal.Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quitdb_bame=#Read more: easytech blog
QR:
If I would like to connect to 192.168.0.2 db server and the database is a postgresql, then the default port is 5432 and the tunnel command line is:$ ssh -L 5432:192.168.0.2:5432 <user>@<web server>
_____^______ ______^______
/ local port \ / remote port \If you are running a postgresql in your own machine you can chose another port to listen in your loop back. I always have a pgsql running in my laptop because I use it in most of my developments and I use port 5435. $ ssh -L 5435:192.168.0.2:5432 <user>@<web server>============================================================
from other terminal
============================================================ $ psql -h localhost -p 5435 -U db_user -d db_name
Welcome to psql 7.3.4, the PostgreSQL interactive terminal.Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quitdb_bame=#Read more: easytech blog
QR:
[Windows, C#] Splitting/Forking/Cloning Standard Output
Posted by
jasper22
at
10:08
|
For one of my little projects at work, I’ve been creating a utility which will run as a child process which is just hosted as a console application. It prints a lot of output to console, and it would be kinda useful to be able to capture all the output from the child process, either in a text file, or by reading it in the parent process, or both. I know you can capture child process output in the parent process, or redirect it to a file by passing in a file handle to the CreateProcess API. However, it seems rather a shame to also give up the console window output in the same way… So here I started wondering – shouldn’t it be possible to keep using Console.WriteLine and have the output appear in multiple places, by using some sort of special splitting or cloning pipe? A little research turned up nothing really explicit on what to do, but a few Windows functions which look they could feature somewhere in a solution: GetStdHandle, SetStdHandle, CreatePipe, CreateFile.So where do we get started?
Part 1: InterceptionBy reading about SetStdHandle, GetStdHandle, and CreateFile with special “CONIN$” and “CONOUT$” files we can see that there’s a few abstraction layers here.
Part 1: InterceptionBy reading about SetStdHandle, GetStdHandle, and CreateFile with special “CONIN$” and “CONOUT$” files we can see that there’s a few abstraction layers here.
- Top layer: The console class, which we can call WriteLine on.
- Managed stream wrapper: there are properties on the Console class: Console.In and Console.Out which represent the file streams in managed code
- Underlying window ‘standard input/output’ concepts: Windows tracks ‘standard input’ and ‘standard output’ file streams for a process, which seem like they are either wrapper objects, or logical indexes into a table of file handles.
- Raw file handle: suitable for passing to APIs that know and care about low level file handles, and don’t have concepts like standard input and standard output. APIs like ‘Read’ and ‘Write’ (bytes)
Calling SetStdHandle will let us insert our own file handle underneath the logical ‘standard input/standard output’ layer at the raw file handle layer. But we can only make each concept logically point at a single file handle, so what should we insert in order to have output in two places? Read more: The Activity Designer
QR:
I'm a technical lead on the Google+ team. Ask me anything.
Posted by
jasper22
at
10:07
|
I helped design and build a lot of the circles model and sharing UI for Google+. I was recruited to Google to work on "getting social right" in early 2010. Prior to that, I was CTO of Plaxo, and also its first employee (since March 2002). I've also spent many years working on open standards for the social web (OpenID, OAuth, Portable Contacts, WebFinger, etc.) Since I work for a big/public company (albeit a pretty cool one), I can't provide specific stats, dates for future features, or details of confidential code/algorithms. But I will do my best to be "refreshingly frank" about everything else. :)
What software technology stack does Google+ use?Our stack is pretty standard fare for Google apps these days: we use Java servlets for our server code and JavaScript for the browser-side of the UI, largely built with the (open-source) Closure framework, including Closure's JavaScript compiler and template system. A couple nifty tricks we do: we use the HTML5 History API to maintain pretty-looking URLs even though it's an AJAX app (falling back on hash-fragments for older browsers); and we often render our Closure templates server-side so the page renders before any JavaScript is loaded, then the JavaScript finds the right DOM nodes and hooks up event handlers, etc. to make it responsive (as a result, if you're on a slow connection and you click on stuff really fast, you may notice a lag before it does anything, but luckily most people don't run into this in practice). Our backends are built mostly on top of BigTable and Colossus/GFS, and we use a lot of other common Google technologies such as MapReduce (again, like many other Google apps do). Read more: AnyAsq
QR:
What software technology stack does Google+ use?Our stack is pretty standard fare for Google apps these days: we use Java servlets for our server code and JavaScript for the browser-side of the UI, largely built with the (open-source) Closure framework, including Closure's JavaScript compiler and template system. A couple nifty tricks we do: we use the HTML5 History API to maintain pretty-looking URLs even though it's an AJAX app (falling back on hash-fragments for older browsers); and we often render our Closure templates server-side so the page renders before any JavaScript is loaded, then the JavaScript finds the right DOM nodes and hooks up event handlers, etc. to make it responsive (as a result, if you're on a slow connection and you click on stuff really fast, you may notice a lag before it does anything, but luckily most people don't run into this in practice). Our backends are built mostly on top of BigTable and Colossus/GFS, and we use a lot of other common Google technologies such as MapReduce (again, like many other Google apps do). Read more: AnyAsq
QR:
New to Parallel Programming?
Posted by
jasper22
at
10:01
|
Intel(R) Software Network (ISN) offers many good collaterals on parallel programming. If you are new to parallel programming or you just simply want to thread your application, it is worth to search the white papers on parallel programming in ISN at http://software.intel.com/en-us/parallel/ . Below is a list of current collaterals on basic parallel programming. This list is not complete obviously, but it can help you to start reading on this subject
Read more: Intel
QR:
- The Serial On-Ramp to the Multicore Highway (http://software.intel.com/en-us/articles/the-serial-on-ramp-to-the-multicore-highway-preparing-to-parallelize-code/)
- The Three Stages of Preparation for Optimizing Parallel Software (http://software.intel.com/en-us/articles/the-three-stages-of-preparation-for-optimizing-parallel-software/)
- 8 Simple Rules for Designing Threaded Applications (http://software.intel.com/en-us/articles/8-simple-rules-for-designing-threaded-applications/)
- Introduction to Parallel Programming Part 1: Why Parallel? Why Now? (http://software.intel.com/en-us/courseware/course/view.php?id=224)
- Introduction to Parallel Programming Part 2: Parallel Decomposition Methods (http://software.intel.com/en-us/courseware/course/view.php?id=381)
Read more: Intel
QR:
What curious property does this string have?
Posted by
jasper22
at
09:56
|
There are all kinds of interesting things in the Unicode standard. For example, the block of characters from U+A000 to U+A48F is for representing syllables in the "Yi script". Apparently it is a Chinese language writing system developed during the Tang Dynasty. A string drawn from this block has an unusual property; the string consists of just two characters, both the same: a repetition of character U+A0A2:string s = "ꂢꂢ";Or, if your browser can't hack the Yi script, that's the equivalent of the C# program fragment: string s = "\uA0A2\uA0A2";What curious property does this string have?I'll leave some hints in the comments, and post the answer next time..Read more: Fabulous Adventures In Coding
QR:
QR:
Interactive WinForm Tag Cloud Control (Think “Cool, I can add a Word/Tag Cloud thing to my WinForm app!”)
Posted by
jasper22
at
09:55
|
QR:
Yet another DLL-wrapper for dynamic loading
Posted by
jasper22
at
09:36
|
Introduction Especially when controlling hardware through APIs provided by the vendor, but also when trying to avoid errors during application startup due to certain dlls not being available on the system, dynamic loading of the DLL is a common technique. The different ways of linking to a dll from C++ have been described in several articles on this site. For those not entirely familiar with the subject, I recommend the article Step by Step: Calling C++ DLLs from VC++ and VB - Part 4 by Hans Dietrich. Unfortunately, dynamic loading involves a lot of repetitive but error prone coding (see below) and extra care is necessary when keeping the code up to date in case the API of the dll changes. In order to reduce the amount of necessary coding, DLL-wrappers have been proposed, see e.g. the LateLoad DLL Wrapper. Besides avoiding code duplication, such a wrapper allows for more sophisticated error checking. However, the function declarations still have to be extracted from the header of the dll, kept up to date and the code accessing the API needs to be changed. So-called delay loading on the other hand does not require any code changes or extra code but it lacks the flexibility of dynamic loading. This article proposes a new type of wrapper requiring only minimal code changes to switch between dynamic and static loading but still offering all the features of existing DLL-wrappers and more.
Background Why use dynamic loading? Several good reasons why dynamic loading can be useful or even necessary are listed in Hand Dietrich's article and most of them are still valid 7 years later. In addition to the reasons listed there, I have encountered cases where I needed to link to different versions of the dll in response to some user input or depending on the hardware version I accessed and, beleive it or not, where I had to load a dll twice under different names in order to be able to access two pieces of identical hardware.
Delay loading to the rescue?
Delay loading is also described in detail elsewhere. What it does in essence is that it automates the dynamic loading process by having the linker generate the code necessary. It is, if you wish, a linker generated DLL-wrapper. Indeed, it takes care of some of the headaches of the other two methods: No code changes are necessary as delay loading of a dll is simply enabled by a linker switch and unlike for statical loading your application will still start even if it links to a library which is not present on the current system or if it imports a symbol which is missing from the available version of the Dll. Existing symbols are loaded when accessed at runtime from your code. On the downside, when used without extra error checking, your application crashes as soon as you try to access a symbol that is not present in the loaded dll (but was part of the import library) or if the dll cannot be loaded when the first symbol is accessed. To make sure this does not happen, you could call __HrLoadAllImportsForDll (see delayimp.h but careful: LoadLibrary is not case sensitive but this API is.) manually and disable use of the DLL in case not all symbols could be loaded or you could try to implement more granular error checking by setting hooks that are called when loading a symbol fails. But this involves calling into APIs much more compelx than GetProcAddress() and thus writing (unnecessarily) complex code.
What's wrong with the traditional way?
Nothing. It merely is unelegant, requires a lot of cut and paste and search and replace and it is error prone, especially when APIs change or the vendor ships headers that are out of sync with the dll (well, or, if you mix them up). Also it requires you to change your code when switching from static to dynamic linking. The demo code includes the code necessary to dynamically load psapi.dll in your application and illustrates this. Ideally you create one header file, say psapi_dynamic.h that contains the necessary typedefs and declaration of the function poitnters. It also contains the declaration of a function that loads the DLL and symbols load_psapi(): #ifndef _PSAPI_DYNLINK_H_
#define _PSAPI_DYNLINK_H_#include <psapi.h>typedef BOOL
(WINAPI *
EnumProcesses_t)(
__out_bcount(cb) DWORD * lpidProcess,
__in DWORD cb,
__out LPDWORD lpcbNeeded
);typedef BOOL
(WINAPI *
EnumProcessModules_t)(
__in HANDLE hProcess,
__out_bcount(cb) HMODULE *lphModule,
__in DWORD cb,
__out LPDWORD lpcbNeeded
);... extern EnumProcesses_t pEnumProcesses;
extern EnumProcessModules_t pEnumProcessModules;
...// Try to load the psapi.dll
// returns
// 0 if library was not found,
// 1 if all symbols were loaded and
// 2 if some symbols are NULL
int psapi_load();
Read more: Codeproject
QR:
Background Why use dynamic loading? Several good reasons why dynamic loading can be useful or even necessary are listed in Hand Dietrich's article and most of them are still valid 7 years later. In addition to the reasons listed there, I have encountered cases where I needed to link to different versions of the dll in response to some user input or depending on the hardware version I accessed and, beleive it or not, where I had to load a dll twice under different names in order to be able to access two pieces of identical hardware.
Delay loading to the rescue?
Delay loading is also described in detail elsewhere. What it does in essence is that it automates the dynamic loading process by having the linker generate the code necessary. It is, if you wish, a linker generated DLL-wrapper. Indeed, it takes care of some of the headaches of the other two methods: No code changes are necessary as delay loading of a dll is simply enabled by a linker switch and unlike for statical loading your application will still start even if it links to a library which is not present on the current system or if it imports a symbol which is missing from the available version of the Dll. Existing symbols are loaded when accessed at runtime from your code. On the downside, when used without extra error checking, your application crashes as soon as you try to access a symbol that is not present in the loaded dll (but was part of the import library) or if the dll cannot be loaded when the first symbol is accessed. To make sure this does not happen, you could call __HrLoadAllImportsForDll (see delayimp.h but careful: LoadLibrary is not case sensitive but this API is.) manually and disable use of the DLL in case not all symbols could be loaded or you could try to implement more granular error checking by setting hooks that are called when loading a symbol fails. But this involves calling into APIs much more compelx than GetProcAddress() and thus writing (unnecessarily) complex code.
What's wrong with the traditional way?
Nothing. It merely is unelegant, requires a lot of cut and paste and search and replace and it is error prone, especially when APIs change or the vendor ships headers that are out of sync with the dll (well, or, if you mix them up). Also it requires you to change your code when switching from static to dynamic linking. The demo code includes the code necessary to dynamically load psapi.dll in your application and illustrates this. Ideally you create one header file, say psapi_dynamic.h that contains the necessary typedefs and declaration of the function poitnters. It also contains the declaration of a function that loads the DLL and symbols load_psapi(): #ifndef _PSAPI_DYNLINK_H_
#define _PSAPI_DYNLINK_H_#include <psapi.h>typedef BOOL
(WINAPI *
EnumProcesses_t)(
__out_bcount(cb) DWORD * lpidProcess,
__in DWORD cb,
__out LPDWORD lpcbNeeded
);typedef BOOL
(WINAPI *
EnumProcessModules_t)(
__in HANDLE hProcess,
__out_bcount(cb) HMODULE *lphModule,
__in DWORD cb,
__out LPDWORD lpcbNeeded
);... extern EnumProcesses_t pEnumProcesses;
extern EnumProcessModules_t pEnumProcessModules;
...// Try to load the psapi.dll
// returns
// 0 if library was not found,
// 1 if all symbols were loaded and
// 2 if some symbols are NULL
int psapi_load();
Read more: Codeproject
QR:
כיצד לצאת מהמשבר?
אחד הדברים שמעסיקים אותנו כמנהלים זה איך להמנע ממשבר, אבל לפעמים אנחנו נכנסים לתפקיד חדש, הישר לתוך משבר שעשוי למוטט את החברה.לפני שאנחנו רצים להתמודד עם המשבר רצוי שנבין קודם כל את המצב, את החומרה ובמה נכון לטפל ראשון ובמה אחרון (ולפעמים לאן לא להכנס).
אז איפה אנחנו נמצאים ומה אפשר לעשות?מתברר שלא חייבים להמציא את הגלגל, ובתחום הניהול נעשה מחקר רב על מקורם של משברים ואופן הניהול הנכון שלהם. לפי פרופ' אברהם כרמלי, תהליך משברי כולל חמישה שלבים, שע"י ניהול נכון אפשר לסיים את המשבר בכל אחד מהם. ניהול כושל והגעה לשלב החמישי יובילו לסוף חייה של החברה.
עיוורון ארגוני (השלב הראשון – משהו קורה, אבל אנחנו מתעלמים ממנו)הסממנים הם בד"כ סממנים איכותיים ולא כאלו שניתן לראות אותם בדו"חות הכספיים. לכן לא תבחינו עדיין בנטישת לקוחות ו/או בבעיות מכירה עקב איכות מוצר נמוכה. זאת מכיוון שהחברה חיה על תהילת העבר והלקוחות עדיין מוכנים לספוג תקלות, שירות קלוקל ומוצר מיושן. כמנהלים חדשים או ותיקים תוכלו לזהות שאתם בשלב הזה על בסיס הסימנים הבאים: 1. סובלנות בחברה לחוסר ביצוע.2. עודף כ"א/אבטלה סמויה, מבנה ארגוני לא מעודכן ו/או ריכוז סמכויות במטה.3. פרוצדורות מגושמות שאין מאחוריהן תוכן.4. חוסר במטרות ברורות.5. בעיות תקשורת קשות בין גופים שונים כדוגמת מכירות, שיווק ופיתוח. דרכי התמודדות המומלצות הן פיתוח מנגנונים של ארגונים שחסינים לכשל:1. שיחות עם האנשים והבנה של הלך הרוח.
אז איפה אנחנו נמצאים ומה אפשר לעשות?מתברר שלא חייבים להמציא את הגלגל, ובתחום הניהול נעשה מחקר רב על מקורם של משברים ואופן הניהול הנכון שלהם. לפי פרופ' אברהם כרמלי, תהליך משברי כולל חמישה שלבים, שע"י ניהול נכון אפשר לסיים את המשבר בכל אחד מהם. ניהול כושל והגעה לשלב החמישי יובילו לסוף חייה של החברה.
עיוורון ארגוני (השלב הראשון – משהו קורה, אבל אנחנו מתעלמים ממנו)הסממנים הם בד"כ סממנים איכותיים ולא כאלו שניתן לראות אותם בדו"חות הכספיים. לכן לא תבחינו עדיין בנטישת לקוחות ו/או בבעיות מכירה עקב איכות מוצר נמוכה. זאת מכיוון שהחברה חיה על תהילת העבר והלקוחות עדיין מוכנים לספוג תקלות, שירות קלוקל ומוצר מיושן. כמנהלים חדשים או ותיקים תוכלו לזהות שאתם בשלב הזה על בסיס הסימנים הבאים: 1. סובלנות בחברה לחוסר ביצוע.2. עודף כ"א/אבטלה סמויה, מבנה ארגוני לא מעודכן ו/או ריכוז סמכויות במטה.3. פרוצדורות מגושמות שאין מאחוריהן תוכן.4. חוסר במטרות ברורות.5. בעיות תקשורת קשות בין גופים שונים כדוגמת מכירות, שיווק ופיתוח. דרכי התמודדות המומלצות הן פיתוח מנגנונים של ארגונים שחסינים לכשל:1. שיחות עם האנשים והבנה של הלך הרוח.
Upload And Share Files Upto 2GB On Facebook With Filefly
Posted by
jasper22
at
16:52
|
Facebook serves a recreational purpose for the most part and features like photo sharing, events and chat make it easier for us to justify the large amounts of time we invest on the site. What would have really increased the usefulness of Facebook ten time; a simple file sharing feature. Facebook never added one and focused on ‘improving’ the photo viewer instead. Well, file sharing still hasn’t been added as an official feature, instead there is Filefly; a Facebook app that lets you store and share files on Facebook. The app has a 2GB limit, all uploaded files cannot collectively exceed 2GB. Folders can be created and shared with friends and you can delete the files any time you like. Read more: Addictive Tips
QR:
Apply Alternating Line Color Formatting In Visual Studio 2010 Code Editor
Posted by
jasper22
at
16:33
|
Do you find it difficult to find certain code modules from an ever-growing source code file? Since Visual Studio 2010 code editor doesn’t provide options to customize the background in order to make code lines look more prominent, users generally try out different themes to get their focus straight on code editor. Alternating Line Color provides a simple yet effective solution. Just like what Format Painter can do with Excel sheets, it applies alternating color to each line of code, so that users can easily differentiate line breaks and code modules. Additionally, it doesn’t require configuring any settings to bring the alternating colored lines formatting. Before installing the add-in, make sure that Visual Studio instances are not running in the background. Just run the VSIX executable file to install the plug-in. After installation is finished, launch Visual Studio and from Tools –> Extension Manager, check whether the Alternating Line Color extension is listed or not. Read more: Addictive tips
QR:
Google+ Already At 10 Million Users
Posted by
jasper22
at
16:20
|
"I project that Google will easily pass 10 million users tomorrow and could reach 20 million user by this coming weekend if they keep the Invite Button available. As one G+ user put it, it is easy to underestimate the power of exponential growth." I bet if people post in the discussion that they need invites, we can scratch each other's backs here. I've been using Google+ for a few days now (Yes I will put you in a circle ;) and have a lot to love, but unless I can gate twitter and Facebook, the best interface in the world won't help me until I can convince my kids' grandparents to move Read more: Slashdot
QR:
QR:
Tips for Writing Test Cases
Posted by
jasper22
at
15:27
|
One of the most frequent and major activity of a Software Tester (SQA/SQC person) is to write Test Cases. First of all, kindly keep in mind that all this discussion is about ‘Writing Test Cases’ not about designing/defining/identifying TCs. There are some important and critical factors related to this major activity.Let us have a bird’s eye view of those factors first.a. Test Cases are prone to regular revision and update:We live in a continuously changing world, software are also not immune to changes. Same holds good for requirements and this directly impacts the test cases. Whenever, requirements are altered, TCs need to be updated. Yet, it is not only the change in requirement that may cause revision and update to TCs. During the execution of TCs, many ideas arise in the mind, many sub-conditions of a single TC cause update and even addition of TCs. Moreover, during regression testing several fixes and/or ripples demand revised or new TCs. b. Test Cases are prone to distribution among the testers who will execute these:Of course there is hardly the case that a single tester executes all the TCs. Normally there are several testers who test different modules of a single application. So the TCs are divided among them according to their owned areas of application under test. Some TCs related to integration of application, may be executed by multiple testers while some may be executed only by a single tester. Read more: Software testing help
QR:
QR:
How to Migrate from Facebook to Google+
Posted by
jasper22
at
15:24
|
If you have a lot of time and information invested in Facebook, it’s not easy moving to a new social network. Here are a few tips on moving your information from your Facebook account to your shiny new Google+ account. Moving social networks isn’t the easiest thing to do, but luckily there are a few tools we can use to migrate pictures, videos, and friends. Wall posts and messages don’t make sense to migrate between networks so we are going to leave those out.
Export Facebook InformationStart by downloading all of your Facebook information. To do that, log into Facebook and go to account settings in the upper right corner.
Read more: How-to geek
QR:
Export Facebook InformationStart by downloading all of your Facebook information. To do that, log into Facebook and go to account settings in the upper right corner.
QR:
Communicating between two local Silverlight Applications
Posted by
jasper22
at
15:11
|
IntroductionOne of the features that I’m surprised to see hardly no one talk about is “Communication Between Local Silverlight-Based Applications”. This is not new to Silverlight as it has been around since Silverlight 3. In other words, this will allow you to have two Silverlight applications running on the same PC talk to one another without using Web Services, etc. I originally was looking into this for a pet project that I was going to use with Kinect, but found this very valuable and decided to share with everyone. Getting StartedWe are going to create two separate Silverlight Applications (select Silverlight 4 or 5 Beta). The First application that we are going to create is the receiver.Creating the Receiver Launch Visual Studio 2010 and create a new Silverlight Application and name it “SilverlightReceiver”.In your MainPage.xaml <Grid x:Name="LayoutRoot" Background="Yellow">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" Text="...Waiting for Message!" x:Name="txtReceiver"/>
</Grid>
In your MainPage.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Messaging;
namespace SilverlightReceiver
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
Loaded += MainPage_Loaded;
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
var messageReceiver = new LocalMessageReceiver("receiver", ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain);
messageReceiver.MessageReceived += receiver_MessageReceived;
try
{
messageReceiver.Listen();
}
catch (ListenFailedException)
{
MessageBox.Show(
"Cannot receive messages." + Environment.NewLine +
"There is already a receiver with the name 'receiver'.",
"LocalMessageReceiver", MessageBoxButton.OK);
}
}
private void receiver_MessageReceived(object sender, MessageReceivedEventArgs e)
Read more: Michael Crump
QR:
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" Text="...Waiting for Message!" x:Name="txtReceiver"/>
</Grid>
In your MainPage.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Messaging;
namespace SilverlightReceiver
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
Loaded += MainPage_Loaded;
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
var messageReceiver = new LocalMessageReceiver("receiver", ReceiverNameScope.Global, LocalMessageReceiver.AnyDomain);
messageReceiver.MessageReceived += receiver_MessageReceived;
try
{
messageReceiver.Listen();
}
catch (ListenFailedException)
{
MessageBox.Show(
"Cannot receive messages." + Environment.NewLine +
"There is already a receiver with the name 'receiver'.",
"LocalMessageReceiver", MessageBoxButton.OK);
}
}
private void receiver_MessageReceived(object sender, MessageReceivedEventArgs e)
Read more: Michael Crump
QR:
Sharing Assemblies between Silverlight and .NET
Posted by
jasper22
at
15:07
|
Writing WPF, Silverlight, and WP7 applications it could be useful to share assemblies between these technologies. Since Silverlight 3 and .NET 4 it is indeed possible to not only share source code but share the same binary assemblies. While this wasn’t very intuitive to do with Visual Studio 2010 and Silverlight 3 and 4, now there are separate Portable Library Tools that make this process easier. This article describes how to share assemblies with these different technologies, and the limitations.
Sharing AssembliesWith Silverlight 3 and .NET 4 the format of assemblies is the same with these two technologies. However, of course there’s a difference between the Silverlight and the .NET assemblies. To limit the download sizes that are an important aspect of Silverlight, Silverlight assemblies are reduced in functionality compared to the .NET Framework. The .NET assemblies of Silverlight not only have fewer types included, but the types also have fewer members. For example, a simple core type such as the Enum class offers GetNames and GetValues methods to access all the names and values of an enumeration. These methods are not available with the Silverlight assemblies. A .NET programmer knowing the full-blown .NET environment switching to writing applications with Silverlight soon finds out some limitations. Writing assemblies that should be used with both Silverlight and WPF are restricted to the functionality available with both technologies. To create shared assemblies between Silverlight and WPF it is possible to create a Silverlight class library. Read more: Christian Nagel's Blog
QR:
Subscribe to:
Posts (Atom)