Зачесались у меня тут руки узнать, что это за зверь такой Swift и с чем его собственно едят. Как и ожидалось проблем и подводных камней пока оказалось много, ну либо я совсем не умею этот Swift готовить. Самая большая проблема ожидала меня при попытке подружить этот самый Swift с CoreData — штука принципиально отказывалась работать. Обильное гугление не приводило к хоть каким-либо хорошим результатам — информация была либо крайне обрывочной, либо попахивала костылями. Посему в первый вечер терзаний я капитулировал и решил использовать самое тупое решение в работе с CoreData по-старинке — хранить весь код в старом добром Objective-C и уже к нему обращаться из Swift (например в интерфейсах). Однако, перфекционизм в душе не давал покоя и требовалось реализовать чистое одноязычное решение, что я собственно и смог сделать, хотя признаться и не без костылей тоже. Кому интересен процесс прошу под кат. Также попутно предлагаю собирать баги и не самые на мой взгляд удобные вещи, которые пришли вместе с новым языком. Возможно, что-то я сделал криво — буду благодарен комментариям и поправкам, а также обсуждению лучших практик. Читать полностью »
Метка «development»
Swift + CoreData + Немного напильника
2014-06-09 в 13:21, admin, рубрики: development, iOS, swift, xcode, напильник, разработка под iOS, метки: development, iOS, swift, xcode, напильникOculus выпускает новый DevKit Oculus Rift за 350$
2014-03-21 в 7:26, admin, рубрики: development, development kit, game development, oculus, Oculus Rift, Oculus VR, Гаджеты. Устройства для гиков, игры, интерфейсы, метки: development, development kit, oculus, Oculus Rift, Oculus VR, игры, интерфейсыНа прошлой недели на сайте Oculus пропала возможность заказа DevKit первого поколения. Многие ждали более совершенную замену этому комплекту, и вот она пришла.
Открыт заказ новой версии Oculus Rift, Development Kit 2. На официальном сайте можно заказать данный набор за 350$, напомню, что предыдущую версию можно было заказать за $300. Отгрузки для заказчиков улучшенной версии планируется начать в июле 2014 года.
Новая версия обладает улучшенными характеристиками, обновленным дизайном, и в общем она базируется на прототипе Crystal Cove, который был показан в начале года на CES.
Самое главное новшество Development Kit 2 состоит в улучшении экранов, теперь разрешение экрана для каждого глаза составляет 960×1080 и выполнены они по технологии OLED.
Читать полностью »
Tizen DevLab и Хакатон в Москве
2014-03-19 в 15:14, admin, рубрики: development, fruct, Hackathon, html5, intel, mobile development, Samsung, tizen, tizen devlab, Блог компании Intel, операционные системы, разработка, разработка приложений, тренинг, тренинги, хакатон, метки: development, fruct, Hackathon, html5, intel, mobile development, Samsung, tizen, tizen devlab, операционные системы, разработка, разработка приложений, тренинг, тренинги, Хакатон
Тренинги и хакатоны, целиком посвященные Tizen, уже состоялись в нескольких городах России. Скоро к такому списку добавится и Москва! Анонсу этого мероприятия и посвящено сообщение. Также в нем будет немного о результатах Tizen-хакатона, который проходил в Новосибирске.
Читать полностью »
Создание кастомного UIActivity для публикации фото и текста в социальной сети ВКонтакте
2014-03-04 в 14:00, admin, рубрики: development, iOS, iphone, iphone development, iphone sdk, mobile development, xcode, Программирование, разработка под iOS, метки: development, iOS, iPhone, iphone development, iphone sdk, vkontakte api, xcode, ПрограммированиеВо время работы над очередной версией приложения возникла задача сделать публикацию фото в социальной сети ВКонтакте через стандартный контроллер UIActivityViewController.
Поиск в сети дал следующие результаты:
- Готовой реализации не обнаружено
- Есть официальное sdk ВКонтакте: содержит механизмы авторизации, работы с картинками, но не имеет готового класса для загрузки через UIActivityViewController
- Есть документация Apple для создания кастомного UIActivity
Об открытости данных в Android-приложениях
2014-02-12 в 6:01, admin, рубрики: android, android development, development, mobile development, Блог компании EastBanc Technologies, Разработка под android, метки: android, android development, development, mobile development Немного информации о том, какие данные в вашем приложении могут быть доступны для других программ и какие меры можно предпринять, чтобы это предотвратить.
Как использовать функцию обработки входящей почты в SharePoint 2010 — пример из практики
2014-02-06 в 11:54, admin, рубрики: development, exchange, microsoft, sharepoint, zxing, Блог компании EastBanc Technologies, распознавание, штрих коды, Штрих-код, метки: development, exchange, microsoft, sharepoint, zxing, распознавание, штрих коды, Штрих-кодНередко бизнес-процесс компании включает в себя необходимость обработки документации, содержащей штрих-коды, с последующим занесением их в некую учетную систему. Это актуально, например, для сферы ЖД-перевозок и авиакомпаний: в штрих-код купона, присылаемого на электронную почту агентами компании, зашиты номера билетов. Операционисты вынуждены ежедневно обрабатывать и заносить во внутреннюю учетную систему тысячи таких купонов.
Работа рутинная, человеческий фактор провоцирует ошибки. Как автоматизировать процесс и избавить оператора от необходимости ручной обработки писем и их вложений? Мы нашли простое решение с использованием MS SharePoint. По своему обыкновению, мы постарались по максимуму задействовать имеющийся функционал систем, существующую библиотеку и немного своей программистской магии:)
Tizen DevLab и Хакатон в Новосибирске!
2014-02-04 в 9:02, admin, рубрики: development, fruct, Hackathon, html5, intel, mobile development, Samsung, tizen, tizen devlab, Блог компании Intel, операционные системы, разработка, разработка приложений, тренинг, тренинги, хакатон, метки: development, fruct, Hackathon, html5, intel, mobile development, Samsung, tizen, tizen devlab, операционные системы, разработка, разработка приложений, тренинг, тренинги, Хакатон
Наверняка кто-нибудь из участников, подписавшихся на хаб Tizen, уже заметил новое событие. В этом сообщении я расскажу немного подробнее о грядущем мероприятии в контексте уже прошедших тренингов и хакатонов по Tizen.
Читать полностью »
Публикация epub книг в iBookstore — реальный опыт
2014-01-14 в 17:28, admin, рубрики: apple, books, development, game development, iOS, книги, публикация, разработка, разработка под iOS, метки: apple, books, development, iOS, книги, публикация, разработка Многие знают о возможности публикации книг в Apple iBookstore.
Даже в рунете можно найти статьи, посвященные этому вопросу. Но при внимательном их изучении, они оказываются просто переводом общедоступных западных материалов и форумов.
При реальной же попытке создать и опубликовать книгу в iBookstore, на многих этапах приходится сталкиваться с нигде не описанными проблемами, осложненными тем, что мы являемся жителями СНГ.
Но наш пытливый славянский мозг не привык отступать.
И без лишней скромности могу сказать, что нам, одним из немногих, все таки удалось дойти до конца и получить в результате опубликованную книгу!
Пишем плагин для Maven
2013-12-10 в 12:40, admin, рубрики: development, java, maven, maven 3, plugins, плагины, Программирование, метки: development, java, maven, maven 3, plugins, плагины, ПрограммированиеЕсть у меня на некоторых maven-проектах профиль, с помощью которого производится копирование shared-библиотек с последующим перезапуском сервера Tomcat.
<profile>
<id>deploy-deps</id>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<useSubDirectoryPerScope>true</useSubDirectoryPerScope>
<excludeGroupIds>исключаем некоторые группы, попадающие в war-архив</excludeGroupIds>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>05-stop-tomcat</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-ssh</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>${putty.key}</argument>
<argument>${ssh.user}@${ssh.host}</argument>
<argument>${tomcat.dir.root}/bin/shutdown.sh</argument>
</arguments>
<executable>plink</executable>
</configuration>
</execution>
<execution>
<id>10-clean-shared-jars</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-ssh</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>${putty.key}</argument>
<argument>${ssh.user}@${ssh.host}</argument>
<argument>rm</argument>
<argument>-Rf</argument>
<argument>${tomcat.dir.shared}/*.jar</argument>
</arguments>
<executable>plink</executable>
</configuration>
</execution>
<execution>
<id>15-upload-shared-jars</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-scp</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>${putty.key}</argument>
<argument>${project.build.directory}/dependency/compile/*.jar</argument>
<argument>${ssh.user}@${ssh.host}:${tomcat.lib.shared}/</argument>
</arguments>
<executable>pscp</executable>
</configuration>
</execution>
<execution>
<id>20-start-tomcat</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<arguments>
<argument>-ssh</argument>
<argument>-4</argument>
<argument>-agent</argument>
<argument>-i</argument>
<argument>"${putty.key}"</argument>
<argument>${ssh.user}@${ssh.host}</argument>
<argument>bin/startup.sh</argument>
</arguments>
<executable>plink</executable>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
- Для всего статичного контента используется некий каталог за пределами webapps. В этот каталог «смотрит» Nginx и отдаёт по web-пути "/static/*"
- Все shared java-библиотеки (редко изменяемые) грузятся в каталог ${catalina.home}/shared, и в Tomcat в файле conf/catalina.properties настроена для этого переменная «shared.loader»
- Для каждого инстанса Tomcat создан свой системный пользователь
- Для доступа по SSH используются ключи и у каждого разработчика он свой
Соответственно, загрузка статичного контента и shared-библиотек это отдельные профили. Всё остальное собирается в war-архив и устанавливается через стандартный web-manager Tomcat-а.
А чтобы не плодить конфигураций, используется PAgent, в который уже и добавленые нужные нам private keys. Они же используются для подключения через Putty
Лежит себе профиль в pom.xml, не кусается вроде бы, даже пашет потихоньку на благо программера, но вот только есть в нём пара «минусов» — занимает много места при развёрнутом pom.xml да ещё и в новые проекты приходится вставлять.
И если от второго минуса можно избавиться написав шаблон в любимая_IDE или свой архетип наваять, то от первого минуса не так-то просто избавить.
Точно ли не так просто? может «обернём» этот профиль в виде плагина для Maven? Сказано, сделано.
Читать полностью »
Новые Хакатоны и тренинги по Tizen! И кое-что о прошедших…
2013-11-22 в 5:08, admin, рубрики: development, fruct, Hackathon, intel, mobile development, Samsung, tizen, tizen devlab, Блог компании Intel, операционные системы, разработка, разработка приложений, тренинг, тренинги, хакатон, метки: development, fruct, Hackathon, intel, mobile development, Samsung, tizen, tizen devlab, операционные системы, разработка, разработка приложений, тренинг, тренинги, Хакатон
Ассоциация FRUCT продолжает серию Developer Lab (тренингов) и Хакатонов по разработке под Tizen при поддержке Intel, с участием специалистов Intel и Samsung.
Читать полностью »