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

Metalink

| Saturday, October 27, 2012
Metalink is a cross-platform and cross-application Internet standard/framework/file format for programs that download, including download managers, BitTorrent clients, Web browsers, FTP clients, and P2P programs. For increased convenience, the multiple download locations for a file (FTP/HTTP/P2P) and other metadata in HTTP header fields and/or an XML file with the extension .meta4 or .metalink. The duplicate download locations provide reliability in case one method fails. Some clients also achieve faster download speeds by allowing different chunks/segments of each file to be downloaded from multiple resources at the same time (segmented downloading).
Other features include automatic hash verification of finished downloads, automatic repair of downloads with errors, listing multiple files to be added to a download queue, and automatic OS/language selection.

Metalink is extensible, and supports listing multiple partial and full file hashes along with PGP signatures. Most clients only support verifying MD5, SHA-1, & SHA-256, however. Besides FTP and HTTP mirror locations and rsync, it also supports listing the P2P methods BitTorrent, ed2k, magnet link or any other that uses a URI.

Example Metalink 4.0 .meta4 file

Metalink 4.0 files have the extension .meta4 and are XML text files. They are served with the application/metalink4+xml Internet media type.

 <?xml version="1.0" encoding="UTF-8"?>
 <metalink xmlns="urn:ietf:params:xml:ns:metalink">
   <published>2009-05-15T12:23:23Z</published>
   <file name="example.ext">
     <size>14471447</size>
     <identity>Example</identity>
     <version>1.0</version>
     <language>en</language>
     <description>
     A description of the example file for download.
     </description>
     <hash type="sha-256">3d6fece8033d146d8611eab4f032df738c8c1283620fd02a1f2bfec6e27d590d</hash>
     <url location="de" priority="1">ftp://ftp.example.com/example.ext</url>
     <url location="fr" priority="1">http://example.com/example.ext</url>
     <metaurl mediatype="torrent" priority="2">http://example.com/example.ext.torrent</metaurl>
   </file>
 </metalink>

Read more: Wikipedia

Posted via email from Jasper-net

Испытания протокола TCP с линейным сетевым кодированием (TCP/NC)

| Thursday, October 25, 2012
Inline image 2

Инженеры из Массачусетского технологического института под руководством Муриель Медард (Muriel Médard) уже много лет ведут разработку расширения TCP/NC для протокола TCP, с помощью которого можно сохранить максимальную скорость передачи данных в сетях с потерями пакетов. В первую очередь, TCP/NC планируют применять в беспроводных сетях WiFi, где потери пакетов обычно составляют 2-5%, а временами до 10%. Наконец-то дошло дело до реальных экспериментов.

Во время первых полевых испытаний TCP/NC в локальной WiFi-сети общежития МТИ (потеря пакетов 2%) средняя скорость передачи данных по WiFi выросла с 1 Мбит/с до 16 Мбит/с. Тест в поезде на большой скорости (потеря пакетов 5%) показал увеличение скорости WiFi с 0,5 Мбит/с до 13,5 Мбит/с. Это вполне совпадает с теоретическими расчётами.

Увеличение скорости возможно за счёт эффективного восстановления случайных потерь пакетов на стороне приёмника, без повторной отправки этих пакетов. Восстановление пакетов осуществляется за счёт банальных математических операций, известных каждому из школьного курса алгебры, а именно — из раздела о линейных уравнениях. Алгоритм линейного сетевого кодирования сам по себе интересен, но о нём ниже. Сначала нужно понять, почему в сети резко падает скорость передачи данных при относительно небольших (2-10%) потерях пакетов.

На диаграмме показано уменьшение скорости передачи данных в сети TCP, в зависимости от количества потерянных пакетов.

Read more: Habrahabr.ru
QR: Inline image 1

Posted via email from Jasper-net

Whole lot of HOLO's (Hands On Labs Online) for Windows 8 RTM and Windows Azure (Get developing without installing anything)

|
MSDN Virtual Labs enable you to quickly evaluate and test Microsoft's newest products and technologies through a series of guided, hands-on labs that you can complete in 90 minutes or less. There is no complex setup or installation required, and you can use MSDN Virtual Labs online immediately, free. Check here for system requirements.

Windows 8 Virtual Labs

Windows is the premiere development platform in the world. With Windows 8, developers can leverage their existing skills and code assets to create applications. Step into these virtual labs and learn how to build, share and sell interesting and easy-to-use applications that will make your customers happy. Virtual labs are simple –no complex setup or installation required.

Launch your Windows 8 app in 30 days.

Windows 8 Virtual Labs

Lab 1 for C# - Creating a Windows 8 App
Contoso Cookbook is a series of hands on labs designed to immerse you into Windows 8 app development. In this first lab in the series, you will use XAML and C# to create the application, implement navigation, download the data from Windows Azure (or load it locally if you don’t have an Internet connection), and connect the data to controls using data binding.

Lab 2 for C# - Orientation, Snapping, and Semantic Zoom
Lab 3 for C# - Searching and Sharing
Lab 4 for C# - App Bars and Media Capture
Lab 5 for C# - Process Lifetime Management
Lab 6 for C# - Settings and Preferences
Lab 7 for C# - Tiles and Notifications
Lab 8 for C# - The Windows Store APIs
Lab 9 for C# - Touch and Pointer Input
Windows Azure Virtual Labs

Test drive Windows Azure solutions in a virtual lab and see how you can quickly and easily develop applications running in the cloud by using your existing skills with the Microsoft Visual Studio development environment and the Microsoft .NET Framework. Virtual labs are simple, with no complex setup or installation required.

QR: Inline image 1

Posted via email from Jasper-net

Находим код системного вызова mkdir

| Tuesday, October 23, 2012
Еще в первый год моего знакомства с Ubuntu, мне стало интересно, как же работает ядро этой ОС. Я решил со всей серъезностью во всем разобратся, скачал 80-мегабайтовый архив исходников, и… всё! Я не знал ни с чего начать, ни чем закончить. Открывал поочереди случайные файлы и тут же терялся. Думаю такое случалось с каждым бывалым линуксоидом. Сейчас же я набрался опыта и хотел бы им поделиться.

В этой статье я раскажу, как я искал код системного вызова mkdir.

Начнем с того, что функция mkdir определена в sys/stat.h. Прототип выглядит следующим образом:

/* Create a new directory named PATH, with permission bits MODE.  */
extern int mkdir (__const char *__path, __mode_t __mode)
     __THROW __nonnull ((1));

Этот заголовочный файл является частью стандарта POSIX. Linux является почти полностью POSIX-совместим, а значит должен реализовывать mkdir именно с такой сигнатурой.

Но даже зная сигнатуру, найти собственно код системного вызова вовсе не просто…

И в правду ack "int mkdir" вернет:

security/inode.c
103:static int mkdir(struct inode *dir, struct dentry *dentry, int mode)

tools/perf/util/util.c
4:int mkdir_p(char *path, mode_t mode)

tools/perf/util/util.h
259:int mkdir_p(char *path, mode_t mode);

Понятно, что ни одна сигнатура полностью не совпадает. Где же находится реализация функции mkdir? Каков алгоритм нахождения реализаций системных вызовов в ядре Linux?

Системные вызовы работают не так, как обычные функции. Точне функциями они вовсе не являются. Для выполнений системного вызова нужно немного ассемблерного кода. По большому счету, в регистр EAX кладется номер системного вызова (кстати говоря, к системным вызовам обращаются по номеру, а не по адресу), в остальные регистры кладутся аргументы: первый в EBX, второй в ECX, третий в EDX, четвертый в ESX, пятый в EDI. Кстати, именно по этому системный вызов не может иметь более 5 аргументов. После расположения всех нужных значений программа, которыя хочет сделать системный вызов, выполняет 128-е прерывание (на асемблере: int 0x80). Прерывание, переводит процессор в режим ядра и передает управление по заранее оговореному с ядром адресу. Как видим, системные вызовы работают на более низком уровне, чем С-функции.

Номер любого системного вызова можно найти в usr/include/asm*/unistd.h:
#define __NR_mkdir                              83
__SYSCALL(__NR_mkdir, sys_mkdir)

Тобиш системный вызов mkdir имеет номер 83. 

Если вы програмировали в user space под Linux, вы скорее всего знаете, что как правило для выполнения системных вызовов таки используются C-функции. Откуда они берутся? Те функции — это просто обертки из библиотеки GNU libc. Каждому системному вызову соответствует функция-обертка. Сами же функции делают все те же прерывания.

Read more: Habrahabr.ru
QR: Inline image 1

Posted via email from Jasper-net

Внедрение Enhanced Write Filter (EWF)

| Monday, October 22, 2012
Расширенный фильтр записи (Enhanced Write Filter, EWF) — это дополнительный компонент, использующийся в Windows Embedded. EWF делает дисковый том доступным только для чтения. При этом операции записи, которые выполняются с данными, хранящимися на этом дисковом томе, перенаправляются в его наложение, которое может находиться на другом диске или в памяти компьютера. Windows рассматривает наложение EWF и его дисковый том как единое устройство. При этом фактически на дисковом томе не происходит изменений. Все изменения сохраняются только в наложении EWF. Изменения можно сохранить на дисковый том в любой момент времени.

Enhanced Write Filter может применяться в различных целях.

Enhanced Write Filter позволяет создать загрузочную Flash-карту системы Windows и уменьшить количество циклов записи на карту, тем самым увеличив срок ее службы.
При использовании SSD защита от записи с помощью EWF также позволяет увеличить срок службы диска.
Также можно использовать EWF для защиты ПК от последствий воздействия вирусов, троянов и прочих опасностей при работе неопытного пользователя в Интернете.

Я использовал EWF в Windows XP, чтобы обеспечить устойчивую работу компьютера.

Основной идеей было получить безопасную ОС для серфинга в Интернете. EWF позволяет уберечь ПК от последствий посещения развлекательно-информационных ресурсов. Не секрет, что в последнее время участились случаи недобросовестной рекламы. Зайдя на ресурс, где размещена реклама, можно подвергнуться различным атакам. Однако, при использовании EWF все изменения, произошедшие на системном диске, после перезагрузки не сохраняются, и система, подвергнувшаяся атаке, снова готова к работе. Вторым приятным моментом является то, что при работе через EWF в ОС не накапливаются изменения, замедляющие ее работу, и через полгода Windows XP работает также шустро, как в день установки ОС.

При этом все необходимые изменяемые файлы (пользовательские документы и пр.) можно хранить на втором диске или разбить имеющийся на два раздела — системный и раздел для хранения файлов.

Установка EWF на Windows XP

1. Для установки EWF на Windows XP необходимо скачать архив EWF.zip. 
В нем содержатся следующие файлы:
ewf.sys EWFMGR.EXE ewfntldr ewf.reg
Файл ewf.sys копируем в %systemroot%\system32\drivers</i> <i>EWFMGR.EXE</i> в <i>%systemroot%\system32.

2. Файл ewfntldr необходим для замены ntldr, находящегося в корневом каталоге системного диска. Не забудьте сделать копию оригинального файла, на случай если вы захотите отменить изменения.

3. Нам необходимо добавить информацию в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_EWF.

Read more: Habrahabr.ru
QR: Inline image 1

Posted via email from Jasper-net

Multicore JIT can jump start your app launch (with two lines of code and without requiring you NGen)

| Sunday, October 21, 2012
Over the last ten years of building the .NET runtime, quite a number of assumptions have changed. Early on we could assume that most computer users only had one processor. Today, the assumption is that you have at least two processors. While including parallelism in an app for performance challenges most developers, what if that parallelism came for free? That's exactly what we've done with our newest CLR performance feature. Today, Dan Taylor, a program manager from the CLR performance team, shares how multicore JIT can make your app start faster. The best part -- you just have to include two lines of code to try it out. Super easy! --Brandon

In this post, I will provide an in-depth review of how the Multicore JIT technology works, and then show you how easy it is to use in your .NET Framework 4.5 apps.

App launch is faster with Multicore JIT

On the .NET Framework performance team, we spend a lot of time looking at the launch performance of managed applications. Large managed applications require JIT (just-in-time) compilation at launch time, so improving launch performance can be challenging. .NET Framework developers have been able to use Ngen.exe (Native Image Generator) to move code generation from application startup time to installation time. However, for the most part, this pre-compilation option is available only for large .NET Framework applications that also happen to have an installer.

As developers continue to take advantage of the great productivity benefits of the .NET Framework, they are using managed code in places where there is no installer and where Ngen is not available. To address the needs of these developers and to round out our portfolio of performance technologies in the .NET Framework 4.5, we have introduced Multicore JIT, which uses parallelization to reduce the JIT compilation time during application startup.

With Multicore JIT, methods are compiled on two cores in parallel. The more code you execute on your startup path, the more effective Multicore JIT will be at reducing startup time. Improvements of 20%-50% are very typical, which is great news to anyone developing medium to large .NET Framework applications that are not able to take advantage of NGen. You can improve the startup time of your application by up to 50% with very little work, even if it runs off of a USB stick.

Real-world benefit of Multicore JIT

Let’s take a look at how this works in practice with a few real-world applications. Bing.com recently moved to Windows Server 2012 and the .NET Framework 4.5. Because of Multicore JIT, their ASP.NET based services now start up 50% faster, going from an average of around 155 seconds to just under 80 seconds. You can read more about the Bing.com results with Multicore JIT in their recent blog post.

QR: Inline image 1

Posted via email from Jasper-net

XAML to Image/PDF converter with the open source "Xaml Image Converter" (with help from ImageMagick)

|
Renders images or pdf's from Xaml, SVG & Photoshop files. Features: - Input Formats: Xaml, SVG & PSD (Photoshop) - Output Formats: png, gif, jgp, bmp, tif, xps, pdf - Images with localized text.

Features:

Integration into the Build Process. You can convert Images before or after Compilation.
A HttpHandler that converts XAML & PSD to images on the fly in a ASP.NET or MVC project.
Supported target image formats: gif (also animated), jpg, png, bmp, xsp, pdf, xaml
Supported source image formats: xaml, svg, psd
XAML Batch files describing conversion jobs.
Creation of GIF & CSS filmstrips from Storyboards.
Localization support for mutliple cultures.
Dynamic changing of the Xaml from the batch file. Set dpi resolution.

QR: Inline image 1

Posted via email from Jasper-net

Боб Дорф: Как работать над стартапом

|
Боб Дорф – известный предприниматель (вывел 8 компаний на IPO), консультант и ментор Стартап Академии, который начал свою карьеру в бизнесе, когда ему было 12 лет. Сегодня он является желанным участником многих конференций, потому что как никто другой знает, как правильно создавать успешные стартапы, прочно вставать с ними на ноги и превращать их к крупные компании.

Недавно Боб Дорф выступал на конференции Business of Software 2012 где рассказал об основных принципах жизни «здорового» стартапа. Вашему вниманию основные тезисы его выступления в которые сам искренне верю и стараюсь ежедневно использовать:

Почему большинство стартапов проваливаются?

  • Большинство современных стартапов невозможно масштабировать, они разваливаются из-за отсутствия большого количества лояльных пользователей и клиентов, увлеченных продуктом.
  • Написание кода – это лишь половина работы. Сегодня технологии позволяют создать практически все, на что способна фантазия, поэтому на первое место выходит умение определить точный портрет потенциального клиента, а также найти его в общей массе и «влюбить» в свой продукт.
  • Если Вы страстно увлечены своей идеей, то через 20 000 часов упорной работы вы получите 1 шанс из 8 на успех. Только так.
  • Каждой команде нужны 3 человека: «хакер», «бизнесмен» и «творец». Каждое утро «хакер» и «бизнесмен» должны проводить мини-встречи. После обсуждения ключевых вопросов «хакер» должен посвятить всего себя созданию продукта, а «бизнесмен» поиску идеального клиента.
  • Полвека назад, успех компании зависел от того, как предприниматель преодолевал препятствия, от процесса. Но времена изменились.
  • Большинство стартапов «умирают» потому что они думают, что:
А) знают своего покупателя
Б) знают свой продукт
  • Основатели воспринимают все, как линейный процесс: «концепция – прототип – тестирование – запуск», и совершают при этом множество ошибок.

Бизнес-план – это враг стартапа №1.

Бизнес-план имеет отношении к созданию творческих текстов, но никак не к развитию настоящего бизнеса.

Read more: Habrahabr.ru
QR: Inline image 1

Posted via email from Jasper-net

Android Device Policy Administration Tutorial

|
Inline image 1

Device Administration Overview
The Android Device Administration API, introduced in Android 2.2, allows you to create security-aware applications that are useful in enterprise settings, such as:
  • Email clients
  • Security applications that do remote wipe
  • Device management services and applications

You use the Device Administration API to write device admin applications that users install on their devices. The device admin application enforces desired security policies. Here’s how it works:
  • A system administrator writes a device admin application that enforces remote/local device security policies.
  • The application is installed on a user’s device.
  • The system prompts the user to enable the device admin application.
  • Once the users enable the device admin application, they are subject to its policies.
...
...

The Device Administration Classes
The Device Administration API includes the following classes:

DeviceAdminReceiver
Base class for implementing a device administration component. This class provides a convenience for interpreting the raw intent actions that are sent by the system. Your Device Administration application must include a DeviceAdminReceiver subclass.

DevicePolicyManager
A class for managing policies enforced on a device. Most clients of this class must have published a DeviceAdminReceiver that the user has currently enabled. The DevicePolicyManager manages policies for one or more DeviceAdminReceiver instances.

DeviceAdminInfo
This class is used to specify metadata for a device administrator component.

Creating the Manifest
The manifest of your admin application must register your DeviceAdminReceiver as a <receiver>.

The <receiver> should set android:permission="android.permission.BIND_DEVICE_ADMIN" to ensure that only the system is allowed to interact with the broadcast receiver.

The <receiver> must have an <intent-filter> child element including one or more of the following <action>s, as defined in the DeviceAdminReceiver class:

ACTION_DEVICE_ADMIN_ENABLED
(Required) This is the primary action that a device administrator must implement to be allowed to manage a device. This is sent to a device administrator when the user enables it for administration.

ACTION_DEVICE_ADMIN_DISABLE_REQUESTED
Action sent to a device administrator when the user has requested to disable it, but before this has actually been done.

Read more: Marakana
QR: Inline image 3

Posted via email from Jasper-net