All streams
Search
Write a publication
Pull to refresh
23
0
Семён Солдатенко @SamSol

User

Send message
Под программным переключением я подразумеваю возможность задать положение кнопки из программы. Т. е. в кнопке должен быть какой-нибудь минимальный привод.
Кто-нибудь встречал в продаже готовые дополнительные кнопки? Интересуют:
  1. Отдельные большие кнопки (размером со спичечный коробок).
  2. Переключатель (2-х, 3-х позиционный) чтобы на ощупь определялась позиция, желательно с программным переключением положения. (под переключатель раскладки клавиатуры)
  3. Блоки по 4-5 кнопок в ряд небольшого размера (чтобы пальцами одной руки можно было нажимать)
А я изучал по книжке «Hacking Secret Ciphers with Python» (доступна в pdf). Тоже рекомендую.
Неприятно, когда .gitignore встречается во вложенных папках. Проверяю так:
$ find . -iname .gitignore
Только подумал, щаз конкретика попрёт, даже IDLE открыл, а статья кончилась. Жду продолжения.
ИМХО, они маскируются. Пишут на плюсах, яве, пхп, но браинфак-стиль даже не пытаются скрыть.
В концах jsp страниц какие-то странные фрагменты, похоже на запакованный javascript. Малварь?
Для этой задачи, я бы рекомендовал определить интерфейс сервиса, и отдать его программистам использующим сервис. А реализацию этого интерфейса поручить другому программисту.
Определяем интерфейс сервиса:
public class MyServerException extends RuntimeException {
// ...
}

public interface PhotoInfo {
// ...
}

public interface MyServerSession {
    void login(String username, char[] password) throws MyServerException;
    boolean isLoggedIn();
    List<PhotoInfo> getUserPhotos(int userId) throws MyServerException;
    void uploadPhoto(Bitmap photo, int userId) throws MyServerException;
}


Реализацию поручаем другому программисту.
class MyServerSessionImpl implements MyServerSession {
    MyServerSessionImpl(String serverUrl) {
    }
    // ...
}


Дублирование кода — не происходит.
Параллельная работа как минимум двух программистов — происходит.
Протокол взаимодействия с сервером — сокрыт от всей системы.
Возможность независимо юнит-тестировать обе части системы — в наличии.
Самодокументирующийся код — очень похоже.
Музычка на видео про лондон — кайф!
И раскрашено здорово.
Недавно пытался сформулировать требования к инструментам подготовки документации. То что получилось запостил вопросом habrahabr.ru/qa/47956/
Ваше «не бояться каждый день» это «потребность в безопасности» — второй уровень потребностей по модели Маслоу. Безопасность можно достичь только с помощью социальных институтов (родовая община, дружина, братки, менты, регулярная армия, совбез оон). Строительство таких институтов — политическая деятельность.

Так что выбор невелик. Терпите коррупцию и произвол, уходите в юрисдикцию других стран, или занимайтесь политикой и развивайте российское общество.
Действия любой власти описываются законами социологии и политологии. Учите матчасть и вперед. Можно начинать с простенького FDTD_Russian.pdf. (От диктатуры к демократии).
Что-то я не могу придумать ни чего, что можно было бы положить в «Психология программирования», но нельзя в «Программирование». Оккам?
Ищи подстроку '.pem' в статье выше.
Вот здесь приятного вида безкулерный i7 в корпусе-радиаторе.
www.tinygreenpc.com/microsvr.aspx
Приятно читать такие статьи. Кратко, но достаточно подробно.
Мне лично не хватило строчки как запускать такие тесты. Но это легко находится на главной странице летюза:
user@machine:~/Projects/my-project$ lettuce features/

Спасибо
Спасибо за статью и задание. Всегда полезно лишний раз проверить свою квалификацию.
bitbucket.org/ssoldatenko/wavetesttask
Сделал на java + swing. MVC, но Controller не выделен в отдельный класс, вместо него onMouseCliecked() и onTimerTick()
Использовал массив, волну рисовал целиком (в невидимой левой части), сдвигал — System.arraycopy()
«заработало» через 1.5 часа. На приведение в порядок и заливку в онлайн еще чуть больше 2х часов.
Регулируется ресайзом окна, и параметрами коммандной строки.
В суммировании ряда вам важнее будет задать правильный интерфейс.
// 1
int summarize(int[] values);
// 2
int summarize(List<Integer> values);

Более эффективный интерфейс — первый. (И вот у вас уже известно сколько элементов).

Но второй вариант может быть обусловлен каким-то внешним требованием. Тогда:
int summarize(List<Integer> values) {
    Integer[] a = values.toArray(new Integer[values.size()]);
    return summarize(a);
}

int summarize(Integer[] values) {
    int[] a = new int[values.length];
    for (int i = 0; i < values.length; i++) {
        a[i] = values[i];
    }
    return summarize(a);
}

int summarize(int[] values) {
    // Тут ваш суперскоростной код
}

И вот у вас снова массив примитивов, а первые два метода во-первых достаточно простые и прямолинейные чтобы не быть источниками багов и скорость их выполнения целиком на совести компилятора (и jit-компилятора).

Если пишете «числодробилку» — используйте массивы примитивов.
Если НЕ пишете «числодробилку» используйте штатные SDK-шные коллекции.
Не занимайтесь преждевременной оптимизацией.
Если вы не знаете сколько будет элементов — используйте штатные коллекции.
В «числодробилках» необходимо знать «сколько будет элементов» чтобы построить эффективный алгоритм.
Все остальное — «преждевременная оптимизация».
Кавычки следовало вокруг плюсы поставить.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity