User
Быть менеджером среднего звена — не проблема, если вы готовы к этому
В продолжение темы, затронутой в этом посте.
Мне кажется, что из виду в рассуждениях упускается достаточно важный момент — природная предрасположенность к виду деятельности. Допустим, если у тебя хорошая реакция и двухметровый рост, стоит попробовать себя в баскетболе. Но ежели с десяти лет в голове слышишь музыку и играешь на фоно — нужно заниматься композицией, а не пытаться стать новым Джорданом.
— Вам, конечно, известно, как осуществляется на Земле программа образования. Практически любой человек может усвоить любые знания, но каждый индивидуальный мозг лучше подходит для одних видов знаний, чем для других. Мы стараемся по возможности сочетать устройство мозга с соответствующими знаниями в пределах квоты на специалистов каждой профессии.
А.Азимов, Профессия
Удивительно, как написанное фантастом претворяется в жизнь. Сегодня некоторые ученые (Сергей Савельев) говорят о возможности сделать систему анализа врожденных способностей и талантов человека, другие более аккуратны в оценках (Дробышевский мне ответил на вопрос, что есть предрасположенности врожденные, но они перекрываются средой). В одном все сходятся, что именно мозг определяет способности человека и то, как у него пойдет та или иная деятельность; и что мозги у нас у всех уникальные и постоянно изменяющиеся (связи постоянно перестраиваются).
Старт Песочницы чемпионата Russian AI Cup
Всем привет!
На прошлой неделе мы завершили открытое бета-тестирование чемпионата по программированию искусственного интеллекта Russian AI Cup. Участникам предстоит выступить в роли командира небольшого отряда бойцов в пошаговой тактической игре — программировать искусственный интеллект и стратегии поведения для отряда бойцов на одном из языков программирования: С++, Java, C#, Python или Pascal. Саму игру в этом году мы назвали CodeTroopers.
Неявные предикаты
Эмуляторы
Итак, Вы придумали супер алгоритм для запутывания кода программы. При декомпиляции код выглядит просто вырвиглазно и никто точно такое анализировать не будет. Казалось: победа! Но нет. Естественно обфусцированный код никто анализировать не будет… руками. Хакер поймёт как вы код запутывали и напишет «распутывалку». Если Ваш алгоритм был достаточно силён, то хакеру придётся писать собственный эмулятор, но и это не такая проблема как может показаться на первый взгляд – в сети есть доступные эмуляторы и даже специально написанные именно для целей взлома.
Из теории компьютерных наук известно, что не существует и никогда не будет существовать алгоритма, определяющего остановится ли программа или будет работать вечно – так называемая «проблема останова». Это гарантирует, что хакерский эмулятор, распутывающий обфусцированную программу, будет делать это как бы «локально»: он не сможет узнать состояние и значение всех переменных, задействованных в каждом участке кода и поэтому в точках условного ветвления часто будет полагать, что возможны все варианты хода программы. Вот тут-то на ум и приходит решение: запутанный код будет наполнен переходами по условиям, которые будут всегда истинны, но проэмулировать и понять это будет трудно. Примерно вот так:
if ((x+x & 1) == 0)
good_code
else
мусор
«Но это же как раз одна из тех запутывалок, которые хакер и собирается обходить с помощью эмулятора» — скажете Вы и будете правы. А что если придумать тысячу подобных фокусов? О, это решение, если у Вас есть легион программистов, каждый из которых придумывает трюки не похожие на трюки других. В реальности это не так. В реальности Вы думаете неделю и придумываете тридцать трюков, а хакер смотрит на код один день и находит все тридцать трюков, потому что тридцать – это не так уж много.
Разработка Windows 8.1 приложений на XAML/С#. Часть 1. Делаем основной экран приложения на основе Hub
Этой статьей мы открываем серию материалов, посвященных новым возможностям разработки приложений для Windows 8.1 на XAML/C#. Мы планируем последовательно пройти путь от пустого шаблона до работающего приложения «Каталог товаров».
Первая статья посвящена созданию простой версии приложения на базе стандартного шаблона проекта Hub App в Visual Studio 2013. В ней мы научимся реализовывать удобные и разнообразные стартовые экраны для ваших приложений.
Windows Azure Management Libraries — управление облачной инфраструктурой из .NET-приложений
В этой статье дается описание библиотек Windows Azure Management Libraries, выпущенных недавно и предназначенных для управления из .NET-приложений облачной инфраструктурой, сервисами и элементами хранилища размещенными в Windows Azure. Описание возможностей библиотек дается на примерах кода WPF-приложения.
Что такое Windows Azure Management Libraries?
С выпуском библиотек Windows Azure Management Libraries широкая часть облачной инфраструктуры Windows Azure может быть доступна и автоматизирована из приложений на .NET. Эти библиотеки работают поверх функций открытого REST API платформы и их выпуск предназначен для облегчения работы разработчика с облачной инфраструктурой.
Превью библиотек доступное сегодня, включает в себя поддержку облачных сервисов (Cloud Services), виртуальных машин и сетей, веб-сайтов (Web Sites), учетных записей хранилищ и таких инфраструктурных элементов как группы доступности (Affinity Groups).
Мы потратили много времени на проектирование естественного .NET Framework API, который прозрачно представляет собой лежащий ниже открытый REST API. Для нас было очень важным представить эти сервисы с помощью современных знакомых разработчикам подходов используемых на платформе .NET:
- поддержка Portable Class Library (PCL) для .NET Framework 4.5, Windows Phone 8, Windows Store и Silverlight;
- распространение в виде пакетов NuGet с минимумом зависимостей для облегчения версионности;
- поддержка асинхронности и асинхронных операций на основе элементов платформы async/await (с легкой возможностью реализовать синхронные перегруженные методы);
- наличие общей инфраструктуры для единой обработки ошибок, трассировки, конфигурации и управления пайплайном HTTP;
- спроектировано для легкости тестирования и использования мокинга (mocking);
- построено на базе популярных библиотек, таких как HttpClient и Json.NET.
Эти пакеты открывают перед вами богатые возможности и простоту управления, автоматизации, развертывания и тестирования облачной инфраструктуры WIndows Azure. С помощью них вы сможете управлять виртуальными машинами, облачными сервисами, виртуальными сетями, веб-сайтами и ключевыми инфраструктурными компонентами платформы.
Работа с SQL Server в сценариях гибридного Облака
Приложения для Firefox OS запустятся на Android, Windows, Mac OS X и Linux
На демо-видео показан процесс запуска некоторого приложения Short Clock, которое, как можно понять, не требует никаких пользовательских привилегий. Видно, что на Android, Windows, Mac OS и Linux происходит примерно следующее: приложение устанавливается из Firefox Marketplace из браузера в соответствующей операционной системе (при этом оно автоматически адаптируется к ней — происходит «repackage») и запускается «как нативное приложение». При этом подчёркивается, что «изменений исходного кода — ноль».
Примечательно то, что JavaScript в OWA-приложении может работать не только в пределах своего HTML, а и обращаться к существующим hardware API на каждой из перечисленных платформ. На видео видно, как в Android устанавливается приложение, требующее ряда привилегий — доступа к GPS и Vibration API, к примеру.
Unit тесты на практике
Сразу оговорюсь, что примеры приводятся применительно к языку C# и платформе .NET. Соответственно, в других языках/платформах подходы и реализации могут отличаться.
Итак…
Создавайте продукты, которые не масштабируются
На самом деле стартапы взлетают, потому что основатели заставляют их взлетать. Существует лишь небольшое количество стартапов, которые выросли сами, поскольку обычно для их раскачки требуются определенные усилия. Здесь можно провести сравнение с заводной ручкой, которой комплектовались автомобили до появления электрических стартеров. Если двигатель заводили, он работал, однако запуск представлял собой отдельный трудоемкий процесс.
Привлечение клиентов
Самая распространенная сложная работа, за которую основатели должны браться на старте, это самостоятельное привлечение пользователей. Этим должны заниматься почти все стартапы. Нельзя ждать, когда пользователи к вам придут. Вы должны сами пойти и привести их.
Build 2013 для XAML/C# разработчиков. Обновления в Windows 8.1 и обзор полезных докладов для XAML/C# разработчиков
В этом коротком обзоре я предполагаю рассмотреть ключевые нововведения и улучшения в Windows 8.1 для XAML/C# разработчика. В завершение я приведу подборку докладов с конференции Build 2013, полезных для XAML/C# разработчиков.
Оптимизация сайта для планшетов
Ускорение набора текста с помощью добавления спецсимволов
Можно менять дополнительные символы виртуальной клавиатуры на необходимые в каждом конкретном случае. Например при наборе обычного текста видим знаки препинания:
5 правил верстки email-писем от Печкина
Сегодня мы хотели бы рассказать о базовых правилах верстки HTML в email-письмах. Как известно, на свете существует множество почтовых клиентов:
- веб-версии у почтовых провайдеров (Gmail, Yandex, Mail, Yahoo итд.)
- десктопные почтовые клиенты (Outlook, Bat, Thunderbird, Mac Mail)
- мобильные почтовые клиенты (Blackberry, Android, Iphone, Ipad итд)
К сожалению, не существует обязательного стандарта верстки писем, который бы универсально поддерживался бы всеми клиентами. Часть поддерживает CSS3, часть нет, какие-то теги и аттрибуты поддерживаются, какие-то нет, не говоря уже о том, что поддержка HTML и CSS меняется даже в пределах одного почтового клиента от версии к версии. Последнее особенно заметно на примере Outlook (от Express и 2003 к Outlook 2011).
Что же необходимо знать тем, кто собирается самостоятельно верстать HTML-код для email-писем?
Three.js — 3d движок на Javascript
Есть javascript-гурру, mr.doob, даже на Хабре уже всплывали его работы.
В общем, у него есть очень мощный Javascript 3d-фреймворк с названием
Three.js
Примеры, откровенно говоря, впечатляющие. В последних версиях современных браузеров работает плавно и красиво.
Меня особо затянул полет между шариков и порадовал панорамный движок.
А у кого работает WebGL — так вообще не нарадуется — там вам и Minecraft и всё, что хотите)
Изображения: форматы и сжатие (1/3)
На что при загрузке сайта расходуется больше трафика? Чаще всего это картинки, и их суммарный «вес» частенько в несколько раз больше, чем у разметки, скриптов и стилей. В файлах изображений распространенных форматов растровые данные хранятся в сжатом виде, и это значительно лучше, чем несжатый BMP. А если хочется ещё лучше? Ведь в достаточно крупных проектах каждый байт на счету (например, в TradingView, чего уж там скромничать).
Существует множество утилит для пережатия графики, от узкоспециализированных до всемогущих комбайнов. На хабре уже есть замечательный обзор таких программ, и вопрос, чем можно пережать картинку, рассмотрен более, чем детально.
Но как работают такие программы, что можно улучшить и как сделать свою? Приглашаю на обзорную экскурсию по форматам изображений и алгоритмам сжатия растровых данных.
DevCon 2013: анонс программы конференции
Уважаемые разработчики и тестировщики ПО, участники конференции DevCon 2013. От лица организаторов, с удовольствием представляю вам программу двух дней конференции, в которую вошли доклады в шести параллельных треках, шесть эксклюзивных мастер-классов и вечерняя программа с круглыми столами и хакатоном “Ночь кодирования”.
По адресу http://www.msdevcon.ru/schedule вы можете найти актуальное расписание конференции.
Ниже я расскажу о некоторых деталях программы DevCon 2013.
Основная программа
В основную программу конференции входят пленарный доклад, основные доклады и мини-сессии обоих дней. В общей сложности участники конференции и онлайн-зрители смогут выбрать из 67 самых разных докладов.
Обратите внимание! Вся основная программа конференции будет записываться и транслироваться онлайн в реальном времени! Если вам не повезло и вы не сможете принять участие в DevCon 2013 лично, то посетите официальный сайт http://msdevcon.ru 29 и 30 мая для просмотра сессий онлайн.
В этом году мы приняли решение сделать программу конференции и доклады более глубокими. Поэтому более трети (ближе к половине) докладов DevCon 2013 будут уровня 300 или выше.
Серьезное проектирование серьезных сайтов. Часть 2. Визуализация
7. Карта ума.
Имея огромное количество идей, мы можем приступить к их визуализации и выстраиванию логических взаимосвязей. На этом шаге задача проектировщика привести все в единую систему и отбросить лишнее.
Для создания карты ума (её чаще называют английским термином «Mind map»), мы можем использовать специальное ПО, я рекомендую Xmind.
Серьезное проектирование серьезных сайтов. Часть 1. Аналитика
Сразу скажу, что статья получилась очень большая. В моем духе. Поэтому я решил разбить её на две части: аналитика и визуализация. А после еще будет несколько статей с логическим продолжением. Первая может показаться сухой из-за большого количества текста, но без неё не сможет существовать вторая. Поэтому, если вы действительно интересуетесь проектированием сайтов, читать нужно обе и внимательно, я постарался избавиться от «воды» и рассказать только о полезном.
Тестирование приложений на Canvas: рецепты на примере тестирования API Яндекс.Карт
Фреймворки для работы с этим элементом растут как грибы после дождя; про то, как начать программировать, используя Canvas, написано огромное количество статей. Но есть один пункт, о котором, по-видимому, из-за узкой специфики говорят редко и мало. Речь идёт о тестировании приложений на Canvas. В каком-то смысле оно становится проблемой для инженера по тестированию, который привык обращаться к элементам на странице по их css или xpath селекторам, а затем выполнять с объектом какие-то действия. С Canvas такой подход не работает, ведь DOM элемент один, а объектов в нём — много.
Под катом на примере автоматизации тестирования API Яндекс.Карт я расскажу вам о том, как мы решили эту проблему в Яндексе.
Два простых правила для предотвращения взаимных блокировок на мьютексах
Так сложилось, что это третий пост в блоге нашей компании, и, как и первые два, он посвящен вопросам многопоточного программирования и проблемам, которые при этом возникают. Получилось так неслучайно, ведь мы на собственной «шкуре» испытали, что ситуации, возникающие при написании многопоточных программ, невероятно сложны для отладки, так как во многом определяются динамикой работы программы на конкретной аппаратной платформе. Уверен, что большинство программистов сталкивались с ситуацией, когда программа, которая прекрасно работает на одном компьютере, на другом совершенно неожиданно начинает дедлочиться практически «на ровном месте».
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity