В этой статье я отклонюсь от традиционной для меня темы систем хранения FAS и подниму тему объектного хранения данных в системах NetApp StorageGrid WebScale. Если кратко, то объектное хранение — это третий тип хранения наряду с NAS и SAN. Представьте себе, что каждый файл состоит из данных и метаинформации (владелец, права, время модификации и т.д.), так вот объектное хранение позволяет разъединить эти части и хранить их в виде «ключ/значение». Такой подход хранения информации открывает возможности децентрализованного, распределённого хранения данных огромных масштабов с прозрачной миграцией данных, репликацией и прозрачным переключением конечных потребителей между нодами объектного кластера. В широком смысле объектное хранилище может быть реализовано как на уровне устройства (жесткого диска), при помощи специализированных SCSI команд (Object-based Storage Device Commands), так и на уровне протокола доступа к системе хранения, которая состоит из нескольких дисков (которые, в свою очередь, вовсе не обязаны быть объектными). В обоих случаях используется Ethernet для подключения и IP протокол для передачи данных. Примером реализации объектного хранилища на уровне устройства являются жесткие диски линейки Seagate Kinetic Open Storage platform. Примером систем хранения данных в облаке может быть Microsoft Azure BLOB, Amazon S3. В этой статье я остановлюсь на объектных СХД, которые можно развернуть у себя на сайте и при необходимости подключить к облаку.

Читать полностью »
Рубрика «swift» - 50
Объектное хранилище NetApp StorageGrid
2016-05-10 в 13:18, admin, рубрики: AltaVault, amazon, Amazon CloudFront, amazon s3, archive, backup, big data, blob, CDMI, ceph, CIFS, cinder, Citrix Sharefile, cloudfront, Commvault, Ctera, DDP, docker, Dynamic Disk Pools, E-Series, Egnyte, Erasure Coding, File share, File sync, Geo-EC, glance, Inktank, Inktank Ceph, kilo, kvm, NAS, NetApp, NetApp AltaVault, NetApp E-Series, NetApp StorageGrid, nfs, NTP software, object storage, OpenStack Heat, OpenStack Kilo, raid, RESTful HTTP, s3, SCSI, SGAPI, smb, SoftNAS, stealth, StorageGrid, swift, Swift API, Symantec Enterprise Vault, Анализ и проектирование систем, ит-инфраструктура, системное администрирование, хранение данныхДоступны Стэнфордские курсы CS193P Весна 2016: Разработка iOS 9 приложений с помощью Swift
2016-04-28 в 12:02, admin, рубрики: CS193P 2016, iOS 9, MVC шаблон проектирования, swift, Программирование, профессор Paul Hegarty, разработка мобильных приложений, разработка под iOS, метки: iOS 9 
Стэнфордский курс «Developing iOS 9 Apps with Swift» теперь доступен на iTunes. Это долгожданное обновление предыдущего курса по iOS 8 и Swift.
Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное.
Этот курс в течение 10 недель читает профессор Пол Хегэрти. Он не только высвечивает множество нюансов операционной системы iOS и языка программирования Swift, которые не так-то легко найти в документации, но и снабжает вас приемами программирования на iOS, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014, 2015). Он многократно сократит ваш путь изучения. Реально, он — гений в преподавании программирования на iOS.
Читать полностью »
Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator
2016-04-28 в 8:42, admin, рубрики: ios development, swift, uicollectionview, UITableView, Блог компании REDMADROBOT, разработка мобильных приложений, разработка под iOS 
Представим себе экран обычного мобильного приложения с уже заполненным списком ячеек. С сервера приходит другой список. Нужно посчитать разницу между ними (что добавилось/удалилось) и проанимировать UICollectionView.
«Простой» подход — полностью заменить модель с последующим вызовом reloadData. К сожалению, при этом теряются анимации и могут возникать другие нежелательные эффекты и тормоза. Куда интереснее редактировать списки аккуратно, анимированно. Попробовав это сделать несколько раз, я убедился, что это неимоверно трудно.
Раз проблема встретилась в нескольких проектах, нужно её обобщить и работать дальше с обобщённой реализацией. Интересная задача! Несколько дней борьбы с документацией, здравым смыслом, багами реализации таблиц в iOS, и получился код с достаточно простым интерфейсом, адаптирующийся к широкому кругу задач, про который я хочу рассказать.
Hackaton_weekend | Страх и ненависть в Ставрополе
2016-04-19 в 11:53, admin, рубрики: Hackathon, iOS, objective-c, php, swift, Блог компании WITHME, Карьера в IT-индустрии, командная работа, Медиа, Развитие стартапа, родина, стартапы; команда; опыт, управление проектами, хакатон 
У нас было два пакетика еды, 20 ядер, 26 гигабайт оперативки, 2 ящика редбулла и целое море разноцветных идей и решений…
Команда WITME готова отчитаться о хакатоне, который прошел в замечательном городе Ставрополе!
Участие стало для нашей команды своего рода тимбилдингом. О тимбилдинге мы уже писали в одной из наших статей, из нее вы знаете – у нас свой подход к таким вещам. Двухдневная диета, состоящая из энергетиков и холодной пиццы – это по-нашему!
В один прекрасный холодный мартовский день в общий чат пришло сообщение от одного из членов нашей команды:
«Предлагаю обсудить вариант съездить на хакатон в Ставрополь. Звучит безумно, но я уверен, это будет круто!»
Да, звучало, действительно, безумно. Но дух авантюризма напрочь отбил здравый смысл и решение о поездке было принято в тот же вечер.
Читать полностью »
Сравнение языков программирования относительно работы на фриланс-бирже upwork.com + опрос
2016-04-15 в 7:53, admin, рубрики: C#, c++, java, javascript, php, python, ruby, sql, swift, Программирование, языки программированияНедавно (в конце марта 2016 года) делал исследование перспективности языков программирования на upwork.com для одного из своих проектов и подумал, что это может быть интересно кому-нибудь ещё.
В первую очередь меня интересовало соотношение спрос/предложение по наиболее популярным ЯП, а так же уровень оплаты труда по каждому из них. Так же мне было любопытно какой уровень квалификации ожидают работодатели (и соответственно сколько они предполагают платить)

Процентное соотношение офферов по популярным языкам программирования
RxSwift шпаргалка по операторам (+ PDF)
2016-04-12 в 23:18, admin, рубрики: api, iOS, OS X, reactive programming, RxSwift, swift, разработка под iOS, Разработка под OS X, функциональное программирование 
Заинтересовавшись темой функционального программирования я встал на распутье, — какой фреймворк выбрать для ознакомления. ReactiveCocoa — ветеран в iOS кругах, по нему вдоволь информации. Но он вырос с Objective-C, и хотя это не является проблемой, но все же в данный момент я в основном пишу именно на Swift, — хотелось бы взять решение изначально спроектированное с учетом всех плюшек языка. RxSwift же порт Reactive Extensions, имеющего долгую историю, но сам порт свежий и написанный именно под Swift. На нем я и решил остановиться.
Но специфика документации по RxSwift в том, что описание всех команд ведет на reactivex.io, а там в основном дается общая информация, руки у разработчиков не дошли еще сделать документацию именно для RxSwift, что не всегда удобно. Некоторые команды имеют тонкости в реализации, есть те, о которых в общей документации нет ничего кроме упоминания.
Прочитав все главы вики с RxSwift гитхаба, я сразу решил поразбираться с официальными примерами, тут то и стало ясно, что с RX такое не пройдет, нужно хорошо понимать основы, иначе будешь как мартышка с копипастом гранатой. Я начал разбирать самые сложные для понимания команды, потом те, что вроде понятны, но задав себе вопросы по ним я понял, что лишь догадываюсь на то как верно ответить, но не уверен.
В общем ничтоже сумняшеся я решил проработать все операторы RxSwift. Лучший способ что то понять в программировании — запустить код и посмотреть как он отработает. Затем учитывая специфику реактивного программирования — очень полезны схемы, ну и краткое описание на русском. Закончив сегодня работу, я подумал, что грех не поделиться результатами с тем, кто лишь присматривается к теме реактивного программирования.
Много картинок и текста под катом, очень много!
Читать полностью »
Rust и Swift (третья, четвёртая, пятая и шестая части)
2016-04-12 в 20:29, admin, рубрики: Rust, swift, перевод, ПрограммированиеПродолжаю переводить цикл, в котором автор параллельно изучает Rust и Swift и сравнивает их между собой. Перевод вступления и первых двух частей вы можете найти тут. В этой части речь пойдёт о перегрузке операторов, манипуляциях со строками и коллекциях.
Архитектурные паттерны в iOS
2016-04-07 в 13:23, admin, рубрики: architecture, iOS, mvc, mvp, mvvm, objective-c, patterns, swift, viper, Блог компании Badoo, Проектирование и рефакторинг, разработка под iOSВведение в MVP, MVC, MVVM и VIPER. Что между ними общего и в чем разница.

Делаете все по MVC, а получается некрасиво? Сомневаетесь, переходить ли на MVVM? Слышали о VIPER, но не уверены, стоит ли оно того?
В этой статье я кратко рассмотрю некоторые популярные архитектурные паттерны в среде iOS и сравню их в теории и на практике. Больше информации вы найдете при переходе по ссылкам, указанным в тексте.
Читать полностью »
Релиз AppCode 2016.1: улучшенная поддержка Swift и C++
2016-04-05 в 11:35, admin, рубрики: c++, cocoapods, swift, Блог компании JetBrains, мобильная разработка, разработка мобильных приложений, разработка под iOSПривет!
На прошлой неделе вышел AppCode 2016.1. Изначально мы анонсировали его как 3.4, но потом совместно с другими десктопными продуктами JetBrains перешли на новую схему версионирования и теперь будем использовать ее.

С момента выпуска версии 3.3 прошло еще два минорных релиза, в которых появилось много полезного (например, Evaluate Expression и Set Value для отладчика в Swift). В 2016.1 мы в основном продолжали работать над поддержкой Swift — и вот что получилось.
Читать полностью »
Rust и Swift (вступление, первая и вторая части)
2016-03-27 в 19:50, admin, рубрики: Rust, swift, перевод, Программирование От переводчика: решил взяться за перевод цикла, в котором автор параллельно изучает Rust и Swift и сравнивает их между собой. Старался сохранить стиль и манеру письма оригинала, хотя местами и позволял себе сократить текст (надеюсь) без потери смысла.
Автор вначале кажется слишком предвзятым в сторону Rust, но потом его суждения становятся более взвешенными. Правда, сам я со Swift очень поверхностно знаком, а в Rust, хотелось бы думать, кое-что понимаю, так что тоже не являюсь беспристрастным в этом вопросе. Сравнение становится более интересным, начиная с четвёртой части, но, как говорится, из песни слова не выкинешь.
Rust и Swift
Сравнивая два увлекательных, новых и, очевидно, (хотя и не всегда) похожих языка программирования.
Предыстория
Летом 2015 года я начал изучать Rust. Затем, в сентябре 2015, я взялся за Swift. На первый взгляд, сходство между двумя языками очевидно, и они достигли стабильной версии примерно в одно время: релиз Rust 1.0 состоялся в мае 2015, а релиз Swift 2.0 (который фактически похож на 1.0, поскольку 1.0 служил публичной бетой) — в июне 2015. Оба вдохновлялись такими языками, как Haskell, в то же время сохраняя С-подобный (на самом деле, конечно, ALGOL-подобный) синтаксис, более привычный многим разработчикам, на которых ориентированы эти языки.
Так что, когда я начал книгу про Swift, я не мог удержаться от сравнения. Хотя оба языка кажутся очень похожими, они также очень сильно отличаются в терминах языкового дизайна и философии — и эти отличия очень интересны!
Читать полностью »
