Pull to refresh
3
0
Artur Shamsutdinov @halkar

User

Send message

Когда больше нечего пить

Reading time5 min
Views48K
В последние несколько лет я регулярно оказываюсь в такой ситуации: до пункта назначения ещё ехать час, десять часов или сутки, по каким-либо причинам выполнено утверждение из заголовка статьи, за окном вид как на фотографии ниже, а всё, что можно было переговорить, уже переговорили. В этих случаях мне пригождается моё университетское образование, и я вспоминаю задачи, которые мы когда-то решали на перерывах, и игры, в которые играли на лекциях. В этой хабрастатье я приведу несколько задачек и игр, которые позволят провести время в поезде гораздо веселее. Самым сложным в этой ситуации является то, что нужно вспоминать задачки, которые были бы понятны и интересны всем, поэтому какие-нибудь клёвые математические задачки отпадают. С играми ещё сложнее, они, во-первых, также должны быть интересны всем, а, во-вторых, в такие классные игры, как баскетбол или волейбол в поезде не сыграешь.
Так как впереди ещё один летний месяц, то наверняка этот хабрапост будет кому-нибудь полезен.



Читать дальше →
Total votes 85: ↑70 and ↓15+55
Comments179

Удобный двоичный источник данных взамен Stream

Reading time9 min
Views8.4K
Как обычно получают двоичные данные ваши .NET-компоненты? Если отбросить примитивный случай когда все данные уже в байтовом массиве, то уверен что в виде System.IO.Stream. В общем случае он позволяет собственно только одну операцию — считать в указанный байтовый массив (буфер) указанное количество байтов. При выполнении чтения с помощью этой операции возникают два вида затруднений и одно нерациональное использование ресурсов.

Затруднение номер один: если данные одного и того же источника нужны в нескольких компонентах, то после того как один компонент считал какие то данные из Stream, то он их «потребил», и другим компонентам они уже никак не достанутся. Затруднение номер два: данные нам нужны в виде некоторых блоков, а в результате чтения блок может оказаться в буфере лишь частично (только три байта 32-х битного числа, только половина букв слова и т.д.). Нерациональное использование ресурсов возникает из-за того, что каждый читающий данные компонент должен создавать свой собственный буфер для чтения. Далее я предлагаю простое в использовании решение указанных затруднений, которое позволит очистить ваш код, получить высокую производительность чтения и получать универсальные компоненты.
Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments41

Почему вы никогда не должны использовать MongoDB

Reading time16 min
Views286K
Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
Читать дальше →
Total votes 219: ↑181 and ↓38+143
Comments245

Рисуем знак рубля в Android приложении

Reading time4 min
Views28K
В последнее время перед разработчиками все чаще ставится задача использовать символ рубля в тексте. Однако, символ рубля был утвержден относительно недавно, символ получил свой код в стандате Unicode еще позже. Естественно, гарнитура Roboto на текущих платформах еще не содержит знака рубля.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments4

7 мифов о Linq to Database

Reading time5 min
Views26K
Linq появился в 2007 году, тоже же появился первый IQueryable-провайдер — Linq2SQL, он работал только с MS SQL Server, довольно сильно тормозил и покрывал далеко не все сценарии. Прошло почти 7 лет, появилось несколько Linq-провайдеров, которые работают с разными СУБД, победили почти все «детские болезни» технологии и, уже пару лет как, Linq to Database (обобщенное название для популярных провайдеров) готов к промышленному применению.

Тем не менее далеко не все применяют Linq to Database и объясняют это не только тем, что проект старый и переписать на linq довольно сложно, но и приводят в качестве аргументов различные мифы. Эти мифы кочуют из одной компании в другую и часто распространяются через интернет.

В этом посте я собрал самые популярные мифы и опровержения к ним.
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments21

Google анонсировал бесплатные курсы программирования для Android

Reading time2 min
Views91K
Как стало известно на этой неделе, Корпорация Добра объединилась с небезизвестной Udacity чтобы сделать общедоступные бесплатные курсы по программированию под платформу Android. Курсы будут доступны для всех желающих. По традиции они будут включать в себя видео, викторины, множество учебных материалов и доступ к форумам для общения и обсуждения сопутствующих тем.

Узнать все подробности и ссылки
Total votes 35: ↑32 and ↓3+29
Comments6

Быстрая морфология или файлы против MySQL

Reading time6 min
Views21K
image
Входе одного проекта мне пришлось создать сверхбыструю русскую морфологию. Около 50.000 слов в секунду на довольно слабом ноутбуке, что всего в 2-3 раза медленнее чем стемминг (обрезка окончаний по правилам), но значительно его точнее. Это данные по обычному диску, на SSD или виртуальном диске поиск происходит значительно быстрее.

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

Читать дальше →
Total votes 47: ↑30 and ↓17+13
Comments37

Как встроить в Windows и Windows Phone приложения механизм оценивания

Reading time8 min
Views5.1K
Прим. переводчика: в продолжение темы продвижения приложений (ссылка), мы подготовили для вас перевод поста про элемент управления RateReminder, который позволит вам автоматизировать запрос выставления оценки у пользователей в приложениях для Windows, Windows Phone, а также универсальных приложений для обеих платформ.



Проблема с оценками

Не секрет, что чем выше оценки у приложения, тем лучше оно расположено в магазине. Лучшее расположение означает большее число загрузок, а, чем больше загрузок, тем больше денег приносит приложение. Но часть проблем с оценками происходит из-за того, что люди редко оценивают приложения. А когда все-таки оценивают, то делают это из-за того, что, либо им очень нравится приложение, либо наоборот – очень не нравится. InfoSurv, компания, которая предоставляет маркетинговые услуги для таких компаний, как CocaCola, Nestle и Emerson, дала комментарий по этому вопросу в своем разделе часто задаваемых вопросов:

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


Далее
Total votes 22: ↑13 and ↓9+4
Comments1

Работа с данными в мобильных приложениях. Реализуем offline хранилище и синхронизацию данных используя Microsoft Azure и SQLite

Reading time6 min
Views21K
image

Сейчас на рынке есть огромное количество приложений, которые не приспособлены для работы offline, что создает неудобства для пользователей.
Некоторое время назад, для разработчиков на C# стал доступен новый Microsoft Azure Mobile Services SQLiteStore SDK 1.0 alpha, который предоставляет API для создания приложения, работающих в условиях отсутствия интернета и берущий на себя все заботы о синхронизации данных между локальной базой данных и базой данных Azure. В качестве локальной базы данных создается и используется SQLite.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments9

Применение FitNesse для .Net приложений

Reading time7 min
Views8.8K
Привет, хабр.

Я думаю, многие из вас слышали про такую штуку, как FitNesse. Это одна из технологий тестирования, где тесты создаются как wiki-разметка (т.е. каждый тест — это web страница), и потом запускаются на определенной технологии (Java, .Net, PowerShell и пр.)

В этой статье я расскажу про пример использования FitNesse для тестирования .Net приложения. И заодно покажу несколько приемов и трюков, чтобы сократить Ваше время разработки. Кстати, все эти технологии абсолютно бесплатны.
Поехали
Total votes 5: ↑4 and ↓1+3
Comments29

Обзор языка Idris

Reading time11 min
Views22K
Agda is too mainstream!

«Предвидение»

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

Итак, Idris — чистый функциональный язык программирования общего назначения с зависимыми типами.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments8

Реализуем pull to refresh и infinite scrolling на Swift

Reading time4 min
Views48K
Возьмём за основу статью Знакомьтесь, Swift!, где показано как сделать простое приложение на Swift, и добавим туда такие известные и полезные штуки как pull to refresh и infinite scrolling используя встроенные возможности языка. Чтобы было еще интереснее, добавим немного асинхронности, иначе приложение будет каждый раз замирать на время обновления.


Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments19

Особенности Swift

Reading time13 min
Views44K
В рамках Mobile Camp Яндекса наш коллега Денис Лебедев представил доклад о новом языке программирования Swift. В своем докладе он затронул особенности взаимодействия с Objective-C, рассказал про фичи языка, которые показались ему наиболее интересными. А также про то куда сходить на Github, и какие репозитории посмотреть, чтобы понять, что со Swift можно делать в реальном мире.

Разработка Swift началась в 2010 году. Занимался ей Крис Латтнер. До 2013 процесс шел не очень активно. Постепенно вовлекалось все больше людей. В 2013 году Apple сфокусировалась на разработке этого языка. Перед презентацией на WWDC о Swift знало порядка 200 человек. Информация о нем хранилась в строжайшем секрете.


Презентация и конспект доклада
Total votes 62: ↑57 and ↓5+52
Comments28

Мультитест мультиварок: что купить IT-шнику, если хочется плова и борща

Reading time33 min
Views166K
Нам неоднократно поступали предложения о тестировании мультиварок, но до определенного времени мы от них отказывались — ну что такого можно рассказать о мультиварке. Однако, предложения продолжали поступать, и примерно после 5-6 письма редакция Box Overview задумалась, и решили сделать не просто тест одной мультиварки, а глобальное тест-сравнение 8 мультиварок нижнего ценового сегмента от разных брендов.

image

В нашем тесте участвуют 8 мультиварок от компаний Vitek (VT-4209), Kitfort (KT-201), Scarlett (SL-MC411S01), Polaris (PMC 0527D), Rolsen (RMC-5500D), Redmond (RMC-250), Philips (HD2173) и Panasonic (SR-MHS181).

Мы не будем рассказывать вам о дизайне — его можно посмотреть на фотографиях, не будем уточнять наличие контейнера для сбора конденсата — в него он попадает лишь в редких случаях, мы не будем говорить о «эффекте русской печи» и прочей маркетинговой шелухе, которую так любят продавцы.
Мы расскажем о более интересных вещах — об удобстве управления, о качестве рецептов из комплекта, о физической и химической стороне процесса приготовления, о типах антипригарных покрытий, о реальном, а не маркетинговом функционале и о том, что у мультиварок внутри.
Под катом много картинок, фотографий плова и борща, физический и химический ликбез и geek-porn
Total votes 382: ↑363 and ↓19+344
Comments244

Живые плитки Windows Phone

Reading time6 min
Views17K

Для нетерпеливых — речь пойдет о динамической генерации фоновых изображений для живых плиток, созданию прозрачных плиток для обновления 8.1 и локализации названий приложений.
Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments11

Обзор расширений Visual Studio для веб-разработчиков

Reading time4 min
Views38K
На конференции //build/ у меня был доклад о Visual Studio Web Tools и расширении Web Essentials. Вы можете найти этот доклад онлайн на сайте Channel9. Во время доклада я использовал несколько расширений, которые будут полезными для любого веб-разработчика Visual Studio 2013. Ниже вы найдете список этих расширений.

Web Essentials


logoСайт: http://vswebessentials.com
Загрузить: Web Essentials в галерее VS

Это расширение команды ASP.NET и Web Tools, которое является неофициальной площадкой для тестирования и обкатки функций. Само расширение развивается opensource-сообществом. Web Essentials предлагает огромное число новых возможностей для веб-разработчиков, такие как компиляторы LESS/Sass/CoffeeScript, дополнительные возможности работы с кодом JavaScript/CSS/HTML/JSON, валидаторы, генераторы спрайтов изображений и многое другое.

SideWaffle


imageСайт: http://sidewaffle.com
Загрузить: SideWaffle в галерее VS

Очень вкусное дополнение для Visual Studio. Это отличный набор шаблонов, который содержит как шаблоны проектов, шаблоны элементов, так и сниппеты для широкого круга сценариев: от создания приложений Angular.js, проектов Nancy FX и до плагинов Browser Link, расширений Chrome и многого другого.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments7

Новые бесплатные курсы виртуальной академии Microsoft Virtual Academy, июль 2014

Reading time5 min
Views12K
image

В этом обзоре мы поговорим про бесплатные курсы виртуальной академии Microsoft MVA, которые будут полезны как профессиональным разработчикам программного обеспечения, так и новичкам. Обратите внимание, что видео-плеер на сайте для ряда курсов, которые созданы на английском языке, содержит возможность включить русские субтитры.

Хит! Новичкам! Знакомство с игровыми подсистемами для Windows 8

Данный курс посвящен всем аспектам разработки игр для Windows 8, от определения целевой аудитории до получения прибыли от продукта. Вы узнаете об игровых подсистемах, упрощающих разработку, таких как Construct 2 от Scirra, GameMaker от YoYo Games и Unity. Данный курс предназначен для начинающих разработчиков игр и содержит демонстрации и многочисленные рекомендации, помогающие добиться успеха.

Сертификация! Приступаем к созданию веб-приложений ASP.NET MVC 4

Разработчикам для платформы Microsoft: прослушайте этот курс, если вы хотите начать создавать корпоративные веб-приложения или же просто требуется применить новые функции MVC либо обновить свою сертификацию Майкрософт. В рамках этого насыщенного курса вы узнаете все необходимые сведения. Он является продолжением курса Начинаем разработку на языке HTML5 с использованием JavaScript и CSS3. С его помощью также можно подготовиться к экзамену 70-486.

Хит! Новичкам! Английский. Windows Phone 8.1 Development for Absolute Beginners

Отличный и глубокий курс из 30 модулей посвященый всем аспектам разработки под мобильную платформу Windows Phone с учетом новинок самой свежей версии WP8.1. Курс на английском языке, но нагляден и вполне понятен и доступен.
Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments0

SQLite теперь для мобильных приложений на С# под любую платформу

Reading time4 min
Views22K
image

Совсем недавно вышла новая версия библиотеки, которая будет полезна С# разработчикам, разрабатывающим или планирующим разрабатывать кроссплатформенные мобильные приложения.

SQLitePCL может быть использована для реализации локальной базы данных в приложениях для Windows, Windows Store, Windows Phone, Android (Xamarin) и iOS (Xamarin). Она бесплатна и ее код открыт для всех желающих.

Я проверила ее в действии, чем и хочу с вами поделиться.
Читать дальше →
Total votes 42: ↑37 and ↓5+32
Comments24

Xamarin. За и против

Reading time4 min
Views61K
image

Наверное, каждый .NET разработчик, знакомясь с monodroid и monotouch, хочет узнать, что его ждет. Стоит ли тратить свои силы и время на изучение, какой потенциал платформы, не превратится ли разработка в тестирование фреймворка?

Уже больше года моей основной задачей является разработка на C# под Android и IOS, и я постараюсь ответить на основные вопросы, возникающие при выборе monotouch и monodroid. В статье будет много личного мнения и описания костылей, так как ответы по техническим вопросам можно легко найти на официальном сайте Xamarin: docs.xamarin.com

Поскольку Xamarin 3 вышел только недавно, мне не удалось полностью прощупать новые возможности и изменения в платформе. Тем не менее, почти все «особенности» разработки в monotouch и monodroid по-прежнему актуальны.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments31

Entity Framework и производительность

Reading time5 min
Views16K
В процессе работы над проектом веб-портала, я исследовал возможности улучшить производительность, и наткнулся на небольшую статью про микро-ORM Dapper, который был написан авторами проекта StackOverflow.com. Изначально их проект был написан на Linq2Sql, а теперь все критичные к производительности места переписаны с использованием означенного решения.
Недостаток этого, а также других подобных решений, которые я успел посмотреть, в том, что они уж очень незначительно помогают облегчить процесс разработки, предоставляя по большому счету лишь материализацию, скрывая работу с непосредственно ADO.Net. SQL запросы же нужно писать руками.

Linq2Entities синтаксис же располагает к более «чистому коду», позволяя как тестирование кода, так и его переиспользование. Кроме того, при изменении в базе данных, сразу после обновления контекста, компилятор сгенерирует ошибки, во всех местах где используется удаленное или переименованное поле, изменившаяся структура связей между таблицами подсветит те места, где используются соответсвующие navigation properties.
Далее
Total votes 21: ↑9 and ↓12-3
Comments26

Information

Rating
Does not participate
Location
Sydney, New South Wales, Австралия
Works in
Date of birth
Registered
Activity