Pull to refresh
99
0
Дима Семьюшкин @Devgru

Веб-разработчик

Send message

Клиент WP7 соц. сети «Вконтакте» с открытым кодом

Reading time3 min
Views5.4K

Сегодня уже есть множество демонстрационных проектов под WP7.

Я тоже решил добавить свою «каплю в море» в виде исходных кодов одного из своих проектов «для фана» — клиент социальной сети «Вконтакте» который писался в свободное от работы время.

Проект далек от идеального, но буду рад если код окажется кому нибудь полезен.
На текущий момент функционал очень скуден: сообщения/переписки, список друзей, просмотр фотографий, возможность закрепления на главной почти каждой страницы.

Под катом небольшое описание следующих на очереди функций и возникших проблемах.

Клиент работает через официальное API, соответственно авторизация реализовано через встроенный браузер.

Исходный код
Исходный код и xap файл можно найти по адресу:
http://vkontaktewp.codeplex.com/releases/view/75456

Ожидаемые функции:
В скором времени будут добавлены следующие функциональности:

ProgressBar — одна из самых мелких и тем не менее самая необходимая функция — индикатор процесса загрузки контента.
Pin to start — сейчас почти все страницы можно закрепить на главной, по возможности планируется добавить разную стилизацию для каждой страницы.
Сохранения контактов — легкореализумая, но порой очень нужная функция (прошу прощения за тафтологию :) сохранения контакта из «вконтакта» в список контактов на телефоне.
Навигация — на данный момент навигация не совсем корректно выстроена. Кнопка Home на каждой странице предназначались для возможности перехода в корневую страницу при открытии приложения из закрепленных иконок. По идее, эта кнопка должна отображаться только если мы перешли из закрепленной иконки. В данный момент реализация этой функции была невозможно из за проблем с AppBar (изложено ниже). Не был уверен насколько правильно оставлять в том виде как сейчас есть. Возможно было бы лучше вообще отключить переход на главную чем всегда показывать эти кнопки.

В дальнейшем предполагается добавление возможности комментирования фотографий, добавления новых, поддержки «стены сообщений» и т.д. и т.п. по мере востребованности.

Проблемы с кодом:
В самом коде тоже есть несчетное множество недоработок и недостатков.
Сразу хочу предупредить, что код далек от идеала, он множество раз рефакторился, местами есть копи-паст, местами не оптимален, местами нарушает принцип MVVM, но тем не менее решил выложить в том виде как есть.

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

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

Код менялся множество раз, некоторые вещи остались «в наследство». Например сборка DataLayer, предназначенная для хранения данных в кеше, для обеспечения возможности работы в офлайн режиме, в данный момент отключена, код почти вычищен и эта сборка не используется. С другой стороны «унаследованного» кода не так много на самом деле.

P.S.
Доклад/подробная статья
Мне бы хотелось написать статью или снять доклад на тему разработки приложений под WP7, как всегда, останавливает неизвестность о целевой аудитории. С одной стороны не хочется утомлять банальностями, с другой стороны не хочется упустить важные детали. Буду рад любым пожеланиям/вопросам/замечаниям, которые потом могли бы помочь расставить акценты в статье/докладе.

P.P.S.
Сливающим карму- мне в принципе все равно сколько кармы останется, лишь бы была возможность писать, просто интересно было бы узнать чем вызвано недовольство — может стиль изложения или ошибки в статье, ошибки в коде?

P.P.P.S.
Выложил несколько скриншотов http://vkontaktewp.codeplex.com/. Чуть позже постараюсь оформить домашнюю страницу поприличнее.
Total votes 58: ↑41 and ↓17+24
Comments20

Порнография с точки зрения эволюционной психологии

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

Между тем, сколько-нибудь заслуживающих доверия данных о влиянии порнографии на общественное и личное здоровье в этих обсуждениях нет; более того, мои попытки по-быстрому найти какие-то вменяемые данные в интернете не увенчались успехом. В поисках ответов на вопросы мне пришлось погрузиться довольно глубоко в научные исследования, и кое-что я в итоге нашёл. Краткий синопсис современных научных взглядов на порнографию и её влияние на человека будет дан под катом после небольшого FAQ'а.

Вопрос: картинки будут?
Ответ: будут.

Вопрос: какое отношение этот топик имеет к Хабру?
Ответ: он интересен читателям Хабра.

Вопрос: нет, всё-таки, какое отношение имеет топик к тематике Хабра?
Ответ: никакого; просто я считаю, что Хабр — это, прежде всего, определённая аудитория, а не тематика.

Вопрос: почему в блог «Интернет»?
Ответ: потому что Internet is for porn.

Если Вам не исполнилось 18 лет, под кат лучше не ходить
Total votes 528: ↑476 and ↓52+424
Comments343

Видео всех лекций с «Курсов информационных технологий» от «Яндекса»

Reading time1 min
Views30K
Для тех, кто не смог посетить Курсы информационных технологий, видеоролики всех лекций выложены в свободный доступ. Это лекции по полтора-два часа на базовые темы: операционные системы; архитектура ЭВМ; устройство GNU/Linux; системы хранения данных; файловые системы; сети и протоколы; виртуализация; безопасность.
Читать дальше →
Total votes 116: ↑101 and ↓15+86
Comments39

Стенограмма доклада про Фантом-ОС, сделанного Дмитрием Завалишиным на ADD-2010

Reading time22 min
Views4.3K

Аннотация


Дмитрий Завалишин рассказал о текущем состоянии в разработке своего любимого детища — оригинальной операционной системы PhantomOS, близкой по концепции Microsoft Singularity, но при этом open-source (опубликована большая часть исходных кодов этой операционной системы).

Микроядерная операционная система без файлов и процессов, только с вечно живущими объектами/нитями/тредами, привлекала любопытных даже на уровне концепции, а теперь она стала оживать, загружаться, и готова превратиться в настоящий коллективный проект.
Читать дальше →
Total votes 168: ↑158 and ↓10+148
Comments117

Тренировка креативного мышления дизайнера

Reading time1 min
Views6.4K

А как Вы тренируете креативное мышление?



Дизайнер Robert Butkovic взялся нарисовать 100 логотипов за 100 дней, на разработку логотипа он отвел себе не более 100 минут. Большинство логотипов смахивает на иллюстрации, некоторым явно не хватает профессионализма, но учитывая, что на разработку логотипа отводилось мало времени, дизайнер позволил себе некоторую свободу, на первое место вышла идея, а не ее реализация. Такой способ найти себя внушает уважение.

BRAINSTORMING
День 004
Время работы: 80 мин
image
SPAVANJE
День 021
Время работы: 3 мин
image
Читать дальше →
Total votes 105: ↑94 and ↓11+83
Comments60

Чем кормить ИИ (end)

Reading time6 min
Views1.5K
В данном посте я бы хотел рассмотреть только типичные ошибки, при размышлениях о том, с чего начать делать ИИ. Топик не претендует на истинность в последней инстанции, только пытается указать на явные ошибки.

Под ИИ я понимаю программу, которая может выполнять разнотипные задачи, приводя их к однотипным, которые уже умеет решать.

Немного теории


Человек получает посредством зрения миллионы бит в секунду, осязание дает человеку сотни тысяч бит в секунду, а с помощью слуха человек получает десятки тысяч бит в секунду.
Остальные каналы ощущений дают несравнимо меньший объем информации, очень сложны для реализации, медленны и не имеют возможности для общения(вряд ли можно построить ИИ на основе запаха).
Читать дальше →
Total votes 66: ↑46 and ↓20+26
Comments124

Интеграция с ВКонтакте на базе Open API

Reading time8 min
Views47K
Социальная сеть ВКонтакте предоставляет широкие возможности для интеграции со сторонними сайтами. В основном эти возможности представлены уже готовыми виджетами. Однако, есть еще и Open API, которое позволяет не только авторизовать пользователя, но и выполнить любой метод, доступный приложениям ВКонтакте (ВКонтакте API).
Читать дальше →
Total votes 97: ↑83 and ↓14+69
Comments21

AR.Drone долетел до Москвы

Reading time1 min
Views4.6K
В офисе AR Door появился долгожданный гаджет – AR.Drone.

Девайс был представлен еще в январе 2010 г. на конференции International Consumer Electronics Show (CES). И как только AR.Drone поступил в продажу, а именно в начале сентября, решили приобрести вертушку. Покупали через Ebay в Гонконге, сейчас можно заказать на амазоне вместе с запчастями.

Цена вопроса – 350$ с международной доставкой.

AR.Drone – это квадро-вертолет на дистанционном управлении, пилотируемый с помощью приложения для iPhone/iPod/iPad.

Программа обеспечивает трансляцию видео в режиме реального времени со встроенной камеры вертолета, и, что самое важное для нас, поддерживает дополненную реальность. Пара игрушек уже в разработке, а так же клиенты под android и windows 7 phone.

много больших фоток
Total votes 57: ↑45 and ↓12+33
Comments60

Бесплатный дизайн блога интересным людям разных профессий!

Reading time1 min
Views527
Я хочу немного абстрагироваться от заказчиков, которые платят деньги или не платят, за дизайн сайтов, блогов, интернет-магазинов, промо-страниц, виджетов, иконок, картинок и так далее. Хочу, как раньше рисовать и не брать за это деньги. Но есть одно условие: заключается оно в том, что я готова рисовать один раз в месяц, один индивидуальный дизайн блога для человека, чья история о себе, чьи жизненные принципы и увлечения мне понравятся!
Для этого, я готова общаться и читать «истории о себе» интересных людей! Также как и у заказчиков, я готова ознакомиться с «брифом», пожеланиями, относительно дизайна, но всегда последнее слово в конечном дизайне останется за мной!

Никаких авторских прав за мной не будет оставаться, только если ссылка на мой блог (http://webstandart.info/), или просто «дизайнер Ксюша Блёскина»
С 1 августа до 15 августа (и так каждый месяц) я буду ждать письма с рассказами о себе на почту freeblogdesign собака yandex.ru, обязательно оставляйте контакты для связи.
Все макеты я буду публиковать у себя в блоге.
Total votes 44: ↑27 and ↓17+10
Comments13

SSH-туннели: безопасно через сервер

Reading time2 min
Views6.5K
Доброго времени суток. Попробуем дополнить и расширить статью SSH-туннели — пробрасываем порт. Рассмотренными примерами мы убьем сразу 2 задачи:
1. Межсетевая коммуникация через промежуточный сервер, когда между сетями пути нет.
2. Создание безопасного соединения через не доверенную сеть.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments7

Кроссдоменный AJAX на основе CSS

Reading time1 min
Views2.3K
Недавно столкнулся с проблемой как передать данные с сервера A в
javascript на сервер B, если на сервере B серверный код писать нельзя,
а на А можно.
И нашел элегантное решение.
Суть решения в том, что для использования предлагается объект
CSSHttpRequest, предоставляющий выполнять AJAX-запросы на базе CSS. Это
работает, поскольку CSS не имеет ограничений безопасности, которые имеет
стандартный объект XMLHttpRequest.
В отличие от JSONP имеет ограничение только на GET-запросы. Также есть некоторые проблемы совместимости с браузерами
Код выглядит следующим образом.
CSSHttpRequest.get(<br> "http://www.nb.io/hacks/csshttprequest/hello-world/",<br> function(response) { alert(response); }<br> );

Данные кодируются на сервере в виде 2-х килобайтных цепочек. Ответ
возвращается в в виде:
 #c0 { background: url(data:,Hello%20World!); }<br> #c1 { background: url(data:,I’m%20text%20encoded%20in%20CSS!); }<br> #c2 { background: url(data:,I%20like%20arts%20and%20crafts.); }

На сервере B с помощью javascript создается невидимый IFRAME, в который
и загружается CSS.
Это также работает и в XHTML.

Данное решение совместимо с IE6+, Firefox 2+, Safari 3+, iPhone.
Вид лицензии: Apache License
Total votes 33: ↑28 and ↓5+23
Comments14

«Правильное» тестовое задание для соискателя-программиста

Reading time1 min
Views3.1K
Занимаясь одбором кандидатов на вакансию программиста, столкнулся с проблемой — подобрать хорошее тестовое задание. Цель — увидеть, программист ли передо мной или человек, хорошо знающий фреймворк\язык\технллогию. Поясню — программист, это человек, которые может решить нетривиальную проблему. Сделать сайт-блог, даже e-commerce сейчас является тривиальной проблемой, на это способен любой junior. Natural-born программистдумает по-другому.

под катом образец тестового задания

Читать дальше →
Total votes 28: ↑18 and ↓10+8
Comments34

Envatо которая «Must Have» для всех и каждого

Reading time3 min
Views2K
Как бы не был талантлив человек, в разные периоды и по разным причинам неизбежно наступает творческий кризис, и мы тратим десятки часов впустую пытаясь заставить себя придумать хоть «что-то». В этом посте я тоже решил поделится своими интересными местами находками вдохновения для создания логотипов и Фирменного стиля.


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

image
Читать дальше →
Total votes 87: ↑74 and ↓13+61
Comments25

Математический способ определения самых влиятельных юзеров

Reading time2 min
Views580
image
Ученые предложили новый метод определения самых влиятельных пользователей социальных сетей — оказалось, что количество связей конкретного индивидуума слабо сказывается на его способности распространять информацию. В качестве одного из модельных примеров выступала сеть, образованная дружественными аккаунтами в ЖЖ. Статья ученых пока нигде не опубликована, однако ее препринт доступен на сайте arXiv.org.
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments36

Занимательная наука

Reading time1 min
Views2.7K
Наткнулся недавно на интереснейший канал Стива Спанглера на YouTube про занимательные научные эксперименты. Ролики короткие, зрелищные и местами довольно смешные — вот и решил поделиться с хабрасообществом, на мой взгляд, лучшими из тех нескольких десятков, которые успел просмотреть.




Читать дальше →
Total votes 103: ↑99 and ↓4+95
Comments51

Разговор на лесной опушке

Reading time4 min
Views575
Солнце начинало клониться к закату, когда на одну из лесных полян, во множестве разбросанных в лесах северной части Орегона, вышел человек. Человек выглядел довольно необычно для этого места: на нем был надет неброский костюм, в одной руке он держал ноутбук, а в другой – небольшой складной стул. Осмотрев поляну, и не найдя на ней ничего интересного, он посмотрел на часы, разложил стул, и сев на него, раскрыл на коленях ноутбук.

Тени деревьев стали значительно длиннее, когда со стороны проходящей в нескольких сотнях метрах от поляны дороги послышался какой-то шум. Создавалось впечатление, что через кусты продирается что-то большое, изредка лязгая при этом чем-то металлическим. Наконец, кусты на краю поляны дрогнули, и на неё шагнул изрядно потрепанный человек, одной рукой вытягивая за собой велосипед. По-видимому, велосипед и являлся причиной тех самых лязгающих звуков.

Два человека смотрели друг на друга. Первым нарушил молчание человек с велосипедом. Оставив его наполовину освобожденным из куста орешника, он просто сказал: «Здравствуй, Билл». А человек с ноутбуком сказал: «Здравствуй, Линус».
Читать дальше →
Total votes 43: ↑28 and ↓15+13
Comments15

Линукс: используем 2 звуковые карты

Reading time2 min
Views3.2K
Так случилось, что у меня наушники со встроенной звуковой картой и USB подключением. По установке Gentoo возникла необходимость упорядочить использование нужной мне звуковухи в той или иной программе. Оказалось, что необходим вдумчивый диалог с Гуглем.
Что интересно, имеет место быть полный разнобой конфигурационных настроек для разных программ и неочевидность параметров настройки для ОС.

Далее приведу свой файл "/etc/modprobe.d/alsa.conf" а также способы задания нужной звуковухи в mplayer, mpg321, amarok и skype.
Как говориться, добро пожаловать в наш зверинец.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments15

50 цитат о программировании всех времён

Reading time6 min
Views159K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8+328
Comments136
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity