Search
Write a publication
Pull to refresh
52
0
Send message

Начало Windows Phone 8 Development: урок 3. Навигация по страницам и передача параметров

Reading time3 min
Views16K
Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий
Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения
Начало Windows Phone 8 Development: урок 3. Навигация по страницам и передача параметров
Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

Как было сказано в предыдущих уроках, приложения для Windows Phone 8 используют XAML страницы. Это означает, что их можно воспринимать почти как обычные веб страницы. Так же в каждом приложении существует своя навигация. Например, в новостном приложении есть главная страница, на которой отображаются категории новостей. После выбора категории вы переходите на страницу, где показаны все новости, относящиеся к этой теме. Ну и потом Вы уже выбираете, какую именно новость хотите прочитать полностью.
Читать дальше →

Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения

Reading time4 min
Views16K
Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий
Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения
Начало Windows Phone 8 Development: урок 3. Навигация по страницам и передача параметров
Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

И так, приступим ко второму уроку. Надеюсь, он будет для Вас более интересным. Многим разработчикам под смартфоны интересен вопрос доступности хранилища на устройстве для их приложений, а так же его размеры и использование. Для каждого приложения существует своё изолированное локальное хранилище. Оно независимо от остальных приложений и ОС, и к нему имеет доступ только это приложение.

Сразу же встает два вопроса: возможность использовать SD карту и размер доступного пространства. На первый вопрос ответ — да, использовать SD карту можно. Ответ на второй вопрос — без ограничений. То есть все свободное пространство.

Что касается приложения, которое мы создадим в этом уроке, то оно будет использовать локальное хранилище для чтения/записи текстовых сообщений и счетчик. Счетчик будет увеличиваться при каждом запуске приложения, а так же будет показываться последнее, введенное Вами сообщение.
Читать дальше →

Графы дорожных сетей и алгоритмы работы с ними

Reading time7 min
Views42K
В математике сети дорог (автомобильных и не только) представляются взвешенным графом. Населенные пункты (или перекрестки) — это вершины графа, ребра — дороги, веса ребер — расстояния по этим дорогам.

Для взвешенных графов предлагается множество алгоритмов. Например, популярный алгоритм Дейкстры для поиска кратчайшего пути от одной вершины до другой. У всех этих алгоритмов есть общая принципиальная (для математики) особенность — они универсальны, т.е. могут успешно применяться для графов любой конструкции. В частности, для каждого алгоритма известна его сложность – она примерно соответствует увеличению времени выполнения алгоритма в зависимости от числа вершин графа. Все это подробно можно прочитать, например, в википедии.

Вернемся к практическим задачам. Дороги представляются взвешенным графом, но дороги — это не любой граф. Другими словами, нельзя из любого графа построить дорожную сеть. В отличие от виртуального графа как математической абстракции, дороги строятся людьми из реальных материалов и стоят довольно больших денег. Поэтому они прокладываются не как попало, а по определенным экономическим и практическим правилам.

Мы не знаем эти правила, однако, работая с дорожными сетями, вполне можно использовать алгоритмы, которые эффективны для графов дорог, хотя и не подходят для графов в универсальном или математическом смысле. Рассмотрим здесь два таких алгоритма.
Читать дальше →

AWS Insight: RDS Read Replica

Reading time2 min
Views4K
Привет, сообщество! image

Сегодня бы хотелось рассказать и показать создание копии RDS инстанса только для чтения. Для многих не секрет, что при работе с высоконагруженными проектами создаются решения, когда пишется информация только в одно место, ну а читать её можно из многих источников.

AWS RDS MySQL предлагает такое решение, так сказать, «из коробки». В консоли или через CLI (API) вам предлагается создать реплику. Что же происходит «под капотом»?
  1. Создаётся образ существующего сервера. Эта операция может повлиять на I/O, как вы понимаете. Не стоит делать образ в загруженные часы.
  2. Из образа стартует новый инстанс, который конфигурится и становится репликой в режиме «только чтение» — RO.
Читать дальше →

Ежедневная работа с Git

Reading time40 min
Views895K
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

Далее очень много букв случайным образом превратились в пост.

Чем опасен rebase-2, или как rebase мешал баг искать

Reading time2 min
Views35K
Однажды старший программист Антон, попивая кофе и вспоминая уволенного в предыдущей статье Васю, просматривал очередной тикет в багтрекере. В тикете было сказано, что одна из программ в очень важном проекте стала при некоторых условиях возвращать «BAD» вместо «GOOD». Недолго думая, Антон написал тестовый скрипт и приступил к поиску причины такого поведения.
testscript.sh
#!/bin/bash
result=`./project.sh`
echo $result
if [[ "$result" == "GOOD" ]]
then
    echo "Test passed"
    exit 0
elif [[ "$result" == "BAD" ]]
then
    echo "Test failed"
    exit 1
else
    echo "Can not apply test"
    exit 125
fi


git bisect start
./testscript.sh
git bisect bad
./testscript.sh
git bisect good
…

В компании использовали rebase, история коммитов была линейной, и поиск по ней доставлял Антону одно удовольствие.
Как вдруг:
— Хм… Проект не компилируется, тест прогнать не получится. Ну ладно, не беда, пропустим: git bisect skip.
— Что за ерунда? Опять не компилируется. Опять пропустим…
— Опять??? Какой @#$%^ запушил столько битых коммитов?
Читать дальше →

Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий

Reading time6 min
Views55K
Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий
Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения
Начало Windows Phone 8 Development: урок 3. Навигация по страницам и передача параметров
Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

В сети достаточно много материалов, посвященных разработке под Windows Phone. А вот с частным случаем Windows Phone 8 — дела обстоят несколько печальней. В данном цикле статей будет освящен материал, сглаживающий данный пробел. Однако, если Вы ищите материалы для непосредственного начала обучения по написанию приложений под эту мобильную ОС — то будет тяжело. Советую начать с изучения приложения просто под Windows 8. Однако, если Вы являетесь разработчиком ПО независимо от происхождения или платформы, то это то, что нужно.

В своих статьях я не придерживаюсь каких либо конкретных целей, не создаю взаимосвязанных уроков или что то подобное. Я просто делюсь своими идеями и опытом, которые можно взять за основу и расширить в соответствии с Вашими потребностями.

И так. Давайте дадим ответ на вопрос, какие есть этапы разработки во время создания приложения? Вот к каким выводам я пришел:
Читать дальше →

Неизвестный математик совершил прорыв в теории простых чисел-близнецов

Reading time2 min
Views186K
В математике чрезвычайно редко случается, чтобы учёный старше 40 лет опубликовал первую серьёзную научную работу. Ещё реже бывает, чтобы эта работа имела большую научную ценность. Именно такой редчайший случай представляет из себя доцент университета Нью-Гэмпшира Итан Чжан (Yitang Zhang), который до сих не имеет ни должности профессора, ни веб-странички со списком научных работ. Тем не менее, ему удалось совершить серьёзный шаг к решению одной из старейших математических проблем — гипотезе о простых числах-близнецах.

Когда журнал “Annals of Mathematics” получил 17 апреля 2013 года научную работу Чжана, они восприняли её скептически. Заявка на прорывное исследование от неизвестного учёного? Это слишком банально и часто встречается, чтобы оказаться правдой. На удивление редколлегии, несколько научных экспертов подробно изучили работу Чжана — и нашли доказательство гипотезы о расстоянии между парными простыми числами предельно ясным, чётким и бесспорным.

В результате, журнал одобрил работу для публикации в исключительно короткие сроки — уже через три недели после поступления.
Читать дальше →

Сфера из двух треугольников

Reading time7 min
Views61K
История этой демки такова: однажды один мой друг сделал для своей игры генератор карт планет и захотел, чтобы созданные таким образом карты показывались в виде вращающейся сферы. Однако, при этом он не хотел использовать 3D-графику, а вместо этого сгенерировал множество кадров с этой самой сферой, повёрнутой на разные углы. Количество используемой памяти было… скажем так, избыточным, ну а скорость генерации кадров (как и качество их исполнения) сильно страдала. Чуть подумав, мне удалось помочь ему оптимизировать этот процесс, но в целом меня не покидало справедливое ощущение того, что это задача для OpenGL, а вовсе не для 2D-графики.

И вот, однажды, когда меня мучила бессонница, я решил попробовать совместить эти два подхода: нарисовать вращающуюся сферу (с натянутой на неё картой планеты) через OpenGL, но при этом оставив её плоской.
Читать дальше →

Используем фичи C# 5 (async и await) в .NET 2.0

Reading time3 min
Views24K
Посвящается тем 45% .NET разработчиков, что до сих пор сидят на фремворках 2.0-3.5.

Да, вы не ослышались. async и await во втором дотнете. Но обо всём по порядку.

Зачем?

В какой-то момент мне надоело вручную возиться с написанием асинхронного кода. Async/awat выглядели слишком вкусными, чтобы не попробовать. Зная, что Microsoft при добавлении новых возможностей в язык и компилятор не привязывает их жёстко к фреймворку (так, extension-методы и LINQ отлично можно использовать во втором .NET, если где-нибудь объявить System.Runtime.CompilerServices.ExtensionAttribute), и видя Async CTP, добавляющего возможность использования async/await в 2010-ую студию при использовании в качестве целевого фреймворка .NET 4.0, я подумал, а почему бы и нет?

Читать дальше →

Очистка windows от вирусов с помощью Ubuntu

Reading time1 min
Views24K
В последнее время многие мои знакомые обращаются ко мне с просьбой почистить комп от очередной sms попрошайки, после долгих мучений пришел к несложному способу очистки.

1. Загружаемся с LiveCD или устанавливаем второй системой Ubuntu.
2. Устанавливаем антивирус ClamAV
sudo apt-get install clamav
3. Обновляем антивирус
sudo freshclam
4. Запускаем сканирование раздела с виндой
sudo clamscan -r -i --bell --move /tmp/ --log /tmp/virus.log /media/windows

Где:
-r : рекурсивный обход директорий
--move : перемещение зараженных файлов в директорию /tmp (без этого параметра с зараженными файлами ничего не будет сделано, только запись в логе. Для удаления файов ключ --remove )
--log : место логфайла.
/media/windows : раздел с виндой
--bell : пикнуть, если нашелся вирус
-i : выводить только зараженные файлы


5. Во время проверки дискуссия за жизнь с последующей вербовкой в ряды пользователей линукс.

Все!

У меня, пока, этот вариант работает на 100%.
Вот видео более простого варианта с GUI надстройкой clamav — clamtk от милой девушки ( в видео пропущено обновление антивируса, у меня пункт 3 ):



Читать дальше →

zsh

Reading time2 min
Views35K
Привет!

Поговорим о самом удобном shell-е для Linux. Знакомьтесь — это zsh. Многие пользователи Linux не променяют bash ни на что другое, но я, будучи склонным к экспериментам, не поленился и поставил zsh.
Читать дальше →

*nix-way: Даже если тебя съели, у тебя есть как минимум два выхода

Reading time2 min
Views31K
В процессе работы с операционными системами GNU/Linux обычно привыкаешь делать какие-то операции одними и теми же средствами. Философия UNIX (*nix-way) предполагает наличие большого количества простых программ для выполнения простых действий, а результаты работы можно передавать между разными программами через потоки. Но вот представьте, что возникает ситуация, когда кто-то нечаянно, по глупости или из нехороших побуждений удалил исполнимый файл, который являлся бинарным файлом какой-то команды, которой вы более или менее часто пользовались. И что тогда делать?

И вот здесь начинается самое интересное. Практика показывает, что многие вещи можно делать более чем одним способом. Я попытался составить небольшой список взаимозаменяемых действий, которые в Linux могут быть выполнены более чем одним способом.

Читать дальше →

Чем опасен rebase, или как получилось, что 2*3=5

Reading time2 min
Views96K
Однажды старший программист Антон искал причину очередного бага в очень важном проекте компании:
git bisect start
git bisect bad
git bisect good
…

В компании использовали rebase, история коммитов была линейной, и поиск по ней доставлял Антону одно удовольствие.
— Ага, нашел. Ну конечно: в коде написано «2*3=5», ещё бы оно работало с этим бредом! Какой @#$%^ это написал?
Читать дальше →

Зачем пользователи GIT-а редактируют свои коммиты

Reading time2 min
Views57K
В последних двух выпусках Радио-T ведущие пытались обсудить GIT. Евгений (@Umputun) задавался вопросом зачем нужен rebase и очень удивился, когда я спросил, редактирует ли он коммиты. На мой взгляд, чтоб понять GIT, достаточно вникнуть в процесс разработки Linux Kernel, т к создавался он именно для этого.
Читать дальше →

Некриптографические хеш-функции и DoS атака на них

Reading time10 min
Views35K
Некриптографические хеш-функции применяются там, где важна скорость и не так важна возможность атаки на характеристики функции. Последнее время активно обсуждается атака на алгоритмическую сложность хеш-таблиц путём создания множественных коллизий хеш-функции, которая может привести к DoS. Мы рассмотрим современные некриптографические хеш-функции, условия для их применения, возможные методы защиты от атаки на хеш-таблицы и почему оказалось, что это не так просто исправить.

Некриптографические хеш-функции


Если криптографические хеш-функции у всех на слуху, то про некриптографические (хеш-функции общего назначения) известно мало. Некриптографические функции применяются там, где на данные не воздействуют третьи лица (злоумышленник). Например, такие функции могут использоваться для построения хеш-таблиц.

Критерии, которые важны для некриптографических хеш-функций:
Читать дальше →

Программный синтезатор

Reading time8 min
Views46K
И так господа, решил наконец разобраться с программным синтезом музыки, а именно с практической частью реализации подобной задачи. Давайте посмотрим что из это вышло и как оно реализовано…


Читать дальше →

Путешествия во времени и программирование 2: парадоксы

Reading time26 min
Views217K


Эпоха путешествий во времени еще не наступила, а человечество уже давно пытается разрешить сопутствующие им парадоксы. Мы поговорим о самом очевидном из них: что же все-таки произойдет при вмешательстве в ход истории? Существует несколько вариантов того, как поток времени реагирует на действия путешественника из будущего. Эти модели можно увидеть в фантастических фильмах, о них все больше начинают говорить ученые, но какая модель ближе к истине — единого мнения пока нет. Мы только начинаем проникать в тайны времени, и еще не обладаем возможностью экспериментировать с перемещениями в прошлое. Что же можно прояснить в данном вопросе уже сейчас? Под катом нас ждет экскурсия по основам механики времени, мы порассуждаем о парадоксах, и проведем небольшой эксперимент. Да, это будет испытание виртуальной машины времени, построенной на основе алгоритма «Жизнь»!
Читать дальше →

Руткит Avatar: детальный анализ

Reading time8 min
Views37K
В феврале 2013 г. появилась информация о новом рутките Avatar, которая, судя по-всему, имеет происхождение с одного из подпольных форумов. В частности, на сервисе pastebin было опубликовано описание его возможностей. Информация о новом рутките горячо обсуждалась в security-сообществе, поскольку описываемые возможности этого руткита действительно впечатлали. Среди них, например, возможности загрузки драйвера без участия жесткого диска, заражение бут-драйверов ОС, новые схемы защиты ботнета и другие. Также заявлялся обход нескольких security/AV-продуктов и известных антируткитов.

Читать дальше →

8 фактов, которые вы, возможно, не знали о C#

Reading time7 min
Views195K
Вот несколько необычных фактов о языке C#, о которых знают лишь немногие разработчики.

1. Индексаторы могут использовать params параметры


Мы все знаем, как обычно выглядят индексаторы x = something["a"], а так же код необходимый для его реализации:

public string this[string key]
 {
   get { return internalDictionary[key]; }
 }

Но знали ли вы, что для доступа к элементам вы можете использовать params параметры x = something["a", "b", "c", "d"]?
Просто напишите ваш индексатор следующим образом:
Читать дальше →

Information

Rating
Does not participate
Registered
Activity