Pull to refresh

Новичок о переходе с iOS на Android

Reading time 2 min
Views 5.7K
Development for Android *
Перевод этого поста в гуглоплюсе.

Купил себе Nexus S. Программировал под Андроид несколько последних дней. Android API требует, чтобы пользователи являлись очень хорошими программистами. Абстракции Андроида намного более наворочены (раздуты, навязаны, переусложнены), чем их эквиваленты в iOS. Между тем, “intents” просто замечательны, но только если въехать в них.

Простите, все что дальше — поток сознания. tl;dr

Читать дальше →
Total votes 104: ↑73 and ↓31 +42
Comments 68

Hibernate Cache. Практика

Reading time 4 min
Views 18K
Java *
Итак, в продолжение предыдущей статьи я попробую на реальных ситуациях рассказать о проблемах, которые возникали у меня при работе в реальных проектах.

Миграционные скрипты

Пожалуй, одной из наиболее частых проблем при работе с кешем в моем приложении является необходимость накатывать миграционные скрипты на работающий сервер. Ведь если эти скрипты запускаются не через фабрику сессий работающего сервера, то кеш этой фабрики никак не узнает об изменениях, которые делаются в базу. Следовательно, получаем проблему несовместимости данных. Для решения этой проблемы есть несколько путей:
  1. Рестарт сервера — самый простой и, обычно, самый не приемлемый способ;
  2. Очистка кеша через определенные механизмы — пожалуй самый оптимальный по простоте и надежности метод. Этот метод можно вынести, например в JMX, на веб страничку или другой интерфейс и вызывать при необходимости. Гибкость метода в том, что пишется это один раз, а используется сколько угодно и где угодно. В случае, если Ваш провайдер кеша — EHCache и класс провайдер — SingletonEhCacheProvider, то Ваш код может выглядеть так:
    public String dumpKeys() {
        String regions[] = CacheManager.getInstance().getCacheNames();
        StringBuilder allkeys = new StringBuilder();
        String newLine = System.getProperty("line.separator");
        for (String region : regions) {
            Ehcache cache = CacheManager.getInstance().getEhcache(region);
            allkeys.append(toSomeReadableString(cache.getKeys()));
            allkeys.append(newLine);
        }
        return allkeys.toString();
    }
    

    Естественно что этот код должен выполняться в том же процессе что и хибернейт, статистику которого Вы хотите отследить. Подробней можно прочитать тут. Того же можно добиться используя фабрику сессий.
  3. Запуск миграционных скриптов, используя фабрику сессий работающего сервера. Это похоже на второй метод, с той лишь разницей, что мы не очищаем кеш, а пропускаем все миграционные скрипты через существующую фабрику. Таким образом все необходимые кеши обновляться сами. Этот метод рационально использовать в случае если кеш большой и дешевле его обновлять нежели создавать по новой;

Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 12

Проблема с подсветкой синтаксиса в Visual studio 2012

Reading time 1 min
Views 22K
Visual Studio *
Уже несколько раз сталкивался с одной и той же проблемой после установки финальной версии Visual Studio 2012. Проблема заключается в полном отсутствии подсветки синтаксиса и IntelliSense в коде.
image
Читать дальше →
Total votes 19: ↑11 and ↓8 +3
Comments 16

Простые Задачи и Функционально-Блондинистый Подход

Reading time 5 min
Views 25K
Programming *Scala *Functional Programming *
Tutorial
sad girl and lambda expression

Пару месяцев назад я взяла на себя обязательство по самопросвещению. Есть в иных конторах такая тема — сотрудника, раз в полгода ревьюят и говорят «давай к следующему ревью ты изучишь Spring, паттерны (какие?) и функциональное программирование!» Идея была бы неплоха если бы цели не ставили так размыто. Пропустим пока спринг и паттерны — на выходных я бросилась в атаку на ФП.

Общие-туманные сведения о ФП у меня конечно были — анонимные классы в Java я писать умею — с похожими способностями Python и JavaScript знакома.

Начну с простых упражнений на Scala — решила я. Выбрала Scala поскольку основной рабочий инструмент у нас Java — ну были еще варианты Clojure, Groovy и Java8 (что-то еще?) — но с ними авось попробую потом.

Поставила себе цели (а правильно ли я ФП поняла?):
  • Решать задачи в функциональном стиле
  • Т.е. по возможности не использовать явных циклов и ветвлений
  • А также избегать мутабельных коллекций и т.п.


Одни упражнения получались легко, другие мягко говоря не очень. Сейчас я попробую вкратце рассказать об этом — упорядочить новые познания. Трудно сказать, может ли эта статья кому-то в будущем помочь или, скорее, кто-то поможет мне самой, указав на ошибки или предложив улучшения.
Читать дальше →
Total votes 42: ↑31 and ↓11 +20
Comments 35

Задачка про парные числа

Reading time 2 min
Views 38K
Entertaining tasks Programming *Algorithms *
А вот задачка на выходные! Она плохо подходит, чтобы спрашивать на собеседовании, потому что слишком уж на инсайт (пожалуйста, никогда не задавайте такие на собеседованиях), и слишком простая для соревнований. Как раз чтобы доставить тот самый satisfying click в мозгу, за который мы любим программирование. Итак:

Есть большой массив из N 32-битных чисел. Каждое число встречается два раза, а два числа -- по одному. Найти эти два числа за один проход по массиву с константными затратами памяти (то есть не зависящими от размера массива).

Не забывайте использовать тег <spoiler> для решений в комментариях!
Оставшиеся формальности
Total votes 21: ↑14 and ↓7 +7
Comments 114

Most Popular Computer Problems We Are Facing Everyday

Reading time 2 min
Views 1.5K
IT Terminology Desktop PC's Systems engineering *
In today’s contemporary world the private computer has become a staple of daily life.
Even those few persons who don't use computers in their daily work life can possibly have access to a computer on that they perform alternative necessary tasks.

With all of the access to info that computers permit and with all of the work they will facilitate a personal perform, this trend of a computer in every home and in each workplace of business isn't shocking.

But what may be shocking, and downright aggravating, is when the computer you are working on suddenly shuts off, goes blank, or explodes in the dreaded blue screen of death.

These and other common computer problems are among the most frequently occurring issues that one might experience with their computers.

The following may be a list of 5 common Computer issues and what may be done to mend them.
Read more →
Total votes 18: ↑12 and ↓6 +6
Comments 0

The first static analysis report: the key problems and how to address them

Reading time 5 min
Views 318
PVS-Studio corporate blog

The main purpose of the static analyzer is to detect and report errors in code - so that you can fix them afterwards. However, reporting errors is not as simple as it may seem. Those just starting out to work with static analysis - and even experienced developers - may encounter a number of problems. In this article I'll talk about these problems and how to deal with them.

Read more
Rating 0
Comments 0