Новости информационных технологий - 26246

Есть одна мощная, но малоизвестная техника — thunking. В двух словах, суть ее в следующем: во время работы программы динамически создается новая функция на основе существующей — thunk. Новая функция может иметь другой набор параметров или выполнять какие-то вычисления с параметрами, прежде чем передать их исходной функции.
Эта техника используется в оконном фреймворке ATL. Как известно, функционирование UI в Windows построено на обмене сообщениями между окнами. Окно хранит указатель на функцию обработки сообщений, которая соответствует следующему прототипу:
LRESULT WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

ATL объявляет базовый класс дляЧитать полностью »

Разработка под Apple iOS / Настройка внешнего вида UIPopoverController
UIPopoverController или всплывающее окно (далее просто «поповер») элемент далеко не новый. На Хабре есть одна вводная статья на эту тему и несколько упоминаний в других топиках. Чаще всего поповеры используются «как есть» и не требуют каких-либо модификаций, но в некоторых проектах возникает необходимость изменить внешний вид этого элемента. Как раз о том как это сделать и будет эта статья.
Статья не просто перевод или пересказ документации Apple. Я столкнулся с проблемой в реальном проекте, пропустил материал сквозь себя (в хорошем смысле слова), приготовил тщательно разжеванное объяснение и, напоследок, приправил все это конкретнойЧитать полностью »

Веб-разработка / Изучить jQuery за 30 дней

Каждый программист оказывается в ситуации, когда ему необходимо изучить какую-либо новую технологию или же фреймворк. Если в вашем ToDo листе в графе «Изучить» есть такой компонент, как jQuery, то данный курс для вас.
Курс состоит из 30 видео уроков, длительность каждого из них составляет 15 минут. Чтобы зарегистрироваться на курсе, вам необходимо оставить свой e-mail на странице Learn jQuery in 30 days.
На данный момент в курсе присутствуют следующие темы:DOM Traversal

Events

DOM Manipulation

Effects

AJAX

Plugin Development

Присоединитесь к 30942 студентам, которыеЧитать полностью »

Виртуализация / [Из песочницы] VMware vSphere: Конвертирование виртуального IDE диска в SCSI
Недавно я столкнулся с ситуацией, когда на виртуальном диске в виртуальной машине vSphere начало заканчиваться место, а типичная операция по расширению дискового пространства оказалась невозможной. В моем случае это было связано с интерфейсом подключения диска — IDE.
Статьи, которые можно найти в этой связи в Интернет, например:VMware Knowledge BaseАналог, с картинками
к сожалению неполны.
Следование данным статьям приводит к неработоспособности виртуальной машины. После более детальных изысканий, был найден работающий путь, дополняющий вышеуказанные статьи. Для того, чтобы статья предоставляла цельное решение проблемы, здесьЧитать полностью »

Тысячу лет назад, когда мне после института нужно было определиться с профессией у меня в течение некоторого времени действительно стоял выбор между веб-программированием и веб-дизайном. (В те доисторические времена разделение труда было еще не настолько глубоким, как сейчас.) Но никто тогда мне не дал, не мог дать, или не хотел дать правильный грамотный развернутый ответ в каком направлении двигаться. И каково же было мое удивление, когда пару недель назад этот самый вопрос задали уже мне, а я вспомнил, что за все время прошедшее с окончания института, я не слышал и не встречал грамотного развернутого ответа на этот вопрос ни от коллег, ни наЧитать полностью »

Известно, что для того что бы создать extern константу (например типа NSString *) необходимо сделать два шага:
— в .h файле объявить константуextern NSString *const kMyConst;
— в .m файле присвоить ей значениеNSString *const kMyConst = @"kMyConst";
То, что приходится два раза писать примерно одно и тоже это нормально, если у вас немного подобных констант.
Когда я столкнулся с необходимостью объявления около 30 констант, я решил придумать что нибудь более красивое. По итогу вышла трех-файловая реализация.Constants.h#define def_key(name) extern NSString *const name
#define def_int(name, value) extern int const name
#define def_type(type, name, value) extern type const name
#include "ConstantsDefs.h"Constants.m#import "Constants.h"
Читать полностью »

Доброго времени суток. Многие из вас, кто так или иначе соприкасался с веб-разработкой, знают о таком удобном способе обращения к БД как ActiveRecord, чуть меньше человек согласиться, что это действительно очень удобно, примерно столько же понимает, что это далеко не всегда лучшее решение для проекта из соображений производительности. И это действительно так, но можно много чего придумать для избавления от этих проблем: кеширование всего и вся, различные архитектурные ухищрения и т.д.
Именно различными улучшениями AR мы и займемся на протяжении всего цикла этих статей :)
Если уж совсем подробно: мы будем вместе писатьЧитать полностью »

Источники: статья на ComputerWorld и пост на lwn.net
Вкратце, суть статьи. Trustwave признает выдачу корневого сертификата (subordinate root) сторонней компании. Это означает, что компания рога-и-копыта лтд. может, при наличии такого сертификата, подписать что угодно, уже без обращения к центру сертификации. Например, такой сертификат может быть использован для man-in-middle атак, которые пользователь просто не сможет отследить.
Особенно радует следующая цитата: «В свою защиту Trustwave говорит, что выдача корневого сертификата сторонней компании для анализа SSL-трафика внутренней сети компании — это обычная практика».
К чему это может нас привести.
Читать полностью »

В федеральном суде Нью-Йорка завершился предварительный процесс по иску студии Capitol Records к компании ReDigi, которая работает с октября 2011 года и даёт возможность пользователям продавать на сайте «бывшие в употреблении» MP3-файлы. Студия Capitol Records требует запретить перепродажу своих песен и компенсацию ущерба $150 000 за каждую песню.
Загвоздка в том, можно ли считать MP3-файлы материальными объектами.
Согласно закону 17 USC 106(3) об эксклюзивных правах на нематериальные объекты авторского права, никто не имеет права делать копии таких объектов и продавать их без согласия правовладельца.
С другой стороны, если считать MP3-файлыЧитать полностью »

Сетевые технологии / Tor выпустил обфусцированный прокси для маскировки трафика в Иране

Судя по сообщениям пользователей из Ирана, с четверга 8 января некоторые интернет-провайдеры страны начали фильтровать интернет-трафик по сигнатурам (deep packet inspection), блокируя почти все пакеты SSL/TLS. Таким образом, у пользователей перестали работать HTTPS-сервисы, включая Gmail, поиск Google и сайты других интернет-компаний. Туннелирование по SSH в иранском интернете заблокировано уже несколько месяцев назад.
Специалисты Tor провели анализ, каким образом местные власти блокируют HTTPS, судя по всему, это делается тремя способами:deep packet inspection для SSL

избирательная блокировка комбинаций IP-адресов и TCP-портов

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js