Как стать автором
Обновить
99
0
Дима Семьюшкин @Devgru

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

Отправить сообщение

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

Время на прочтение3 мин
Количество просмотров5.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/. Чуть позже постараюсь оформить домашнюю страницу поприличнее.
Всего голосов 58: ↑41 и ↓17+24
Комментарии20

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

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

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

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

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

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

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

Если Вам не исполнилось 18 лет, под кат лучше не ходить
Всего голосов 528: ↑476 и ↓52+424
Комментарии343

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

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

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

Время на прочтение22 мин
Количество просмотров4.3K

Аннотация


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

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

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

Время на прочтение1 мин
Количество просмотров6.4K

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



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

BRAINSTORMING
День 004
Время работы: 80 мин
image
SPAVANJE
День 021
Время работы: 3 мин
image
Читать дальше →
Всего голосов 105: ↑94 и ↓11+83
Комментарии60

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

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

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

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


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

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

Время на прочтение8 мин
Количество просмотров47K
Социальная сеть ВКонтакте предоставляет широкие возможности для интеграции со сторонними сайтами. В основном эти возможности представлены уже готовыми виджетами. Однако, есть еще и Open API, которое позволяет не только авторизовать пользователя, но и выполнить любой метод, доступный приложениям ВКонтакте (ВКонтакте API).
Читать дальше →
Всего голосов 97: ↑83 и ↓14+69
Комментарии21

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

Время на прочтение1 мин
Количество просмотров4.6K
В офисе AR Door появился долгожданный гаджет – AR.Drone.

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

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

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

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

много больших фоток
Всего голосов 57: ↑45 и ↓12+33
Комментарии60

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

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

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

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

Время на прочтение2 мин
Количество просмотров6.5K
Доброго времени суток. Попробуем дополнить и расширить статью SSH-туннели — пробрасываем порт. Рассмотренными примерами мы убьем сразу 2 задачи:
1. Межсетевая коммуникация через промежуточный сервер, когда между сетями пути нет.
2. Создание безопасного соединения через не доверенную сеть.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии7

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

Время на прочтение1 мин
Количество просмотров2.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
Всего голосов 33: ↑28 и ↓5+23
Комментарии14

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

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

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

Читать дальше →
Всего голосов 28: ↑18 и ↓10+8
Комментарии34

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

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


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

image
Читать дальше →
Всего голосов 87: ↑74 и ↓13+61
Комментарии25

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

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

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

Время на прочтение1 мин
Количество просмотров2.7K
Наткнулся недавно на интереснейший канал Стива Спанглера на YouTube про занимательные научные эксперименты. Ролики короткие, зрелищные и местами довольно смешные — вот и решил поделиться с хабрасообществом, на мой взгляд, лучшими из тех нескольких десятков, которые успел просмотреть.




Читать дальше →
Всего голосов 103: ↑99 и ↓4+95
Комментарии51

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

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

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

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

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

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

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

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

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

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

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

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность