• Как реализовать хранение друзей в БД?

    difiso
    @difiso
    В параллельной вселенной я космонавт
    А что если хранить немного по другому?

    Например не создавать дублирующую запись в обратную сторону, а изначально использовать еще одно поле в троичной системе счисления: ± 1 когда один пользователь добавил другого (знак указывает направление заявки) и 0 когда заявка подтверждена.

    Тогда запрос будет один на выборку пары, а состояния отозвать/принять заявку и удалить из друзей будут определяться знаком числа в дополнительном поле.

    Из очевидных плюсов. Места занимать будет примерно в два раза меньше — мелочь, а приятно.
    Минусов не сразу не соображу.
    Ответ написан
    3 комментария
  • Прием звонка на андроиде

    darkdimius
    @darkdimius
    Также может помочь использование гарнитуры.
    Ответ написан
    Комментировать
  • Загрузка изображений и отображение без перезагрузки страницы?

    Стандартное решение:
    — Создаём форму отправки и скрытый iframe.

    <form enctype=multipart/form-data action=index.php method=post name=loadavatar target=hiddenframe> <input type=hidden name=MAX_FILE_SIZE value=64000> <input id=avatarfile name=avatarfile type=file> </form> <iframe id=hiddenframe name=hiddenframe style="width:0px; height:0px; border:0px"></iframe>

    Форма отправки может быть стилизована, как Вам угодно (своя кнопка отправки или выбора файла). На форме нужно обязательно расположить input [type=file] (выбор картинки) и input [name=MAX_FILE_SIZE](ограничитель размера файла). У формы target должен ссылаться на скрытый iframe (в примере hiddenframe). При отправке файла target выполнит перезагрузку (поэтому если не использовать скрытый iframe, то у нас перезагрузиться родительская страница).

    Далее всё предельно просто — либо по нажатию кнопки submit, либо по вызову document.forms["loadavatar"].submit() отправляем форму; скрытый iframe перезагружается и файл оказывается на сервере. После чего его можно запросом получить с сервера (или сразу вернуть в скрытый iframe) и отобразить.
    Ответ написан
    9 комментариев
  • События для динамически добавленных в DOM элементов?

    @relic
    используйте метод on
    $(document).ready(function() {
        ...
        $('.clickable-elements element').on('click', 'a', function(e){
            //Какое-то действие
        });
       ...
    });
    
    Ответ написан
    4 комментария
  • По какой причину KeyListener не реагирует на нажатия клавиш? Java Swing?

    BrightGenie
    @BrightGenie
    можно повесить обработку отдельных сочетаний на окно и всех его потомков:

    getRootPane().registerKeyboardAction(actionListener, «cancel», KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
    JComponent.WHEN_IN_FOCUSED_WINDOW);

    Правда в Документации написано, что метод устарел и вместо этого нужно использовать комбинацию:

    component.getInputMap().put(aKeyStroke, aCommand);
    component.getActionMap().put(aCommmand, anAction);
    Ответ написан
    3 комментария
  • Как пофиксить баг при работе с несколькими окнами? Java Swing?

    serso
    @serso
    Window синглетоном по дизайну?
    Помимо Window.getInstance() можно написать Window.getBareInstance(), внутри которого дёграть Window.getInstance() и зачищать данные от предидущего «окна», включая менюшки, контент и т.д.

    Ответ на вопрос: менюшки остаются поотому-что вы их сами добваляете в ОДИН экземпляр класса Window (внутри конструкторов FirstWindow и SecondWindow) и не очищаете. Выход — либо зачищать объект window по выходу из вью (в вашем случае по переходу между окнами), либо по входу в новую вью (то что я написал выше)
    Ответ написан
    2 комментария
  • [решено] На каких платформах можно размещать свой html-сайт?

    holyorb2
    @holyorb2
    Сайты Google – это бесплатный способ создавать веб-страницы и предоставлять к ним доступ.
    www.google.com/sites/help/intl/ru/overview.html
    Ответ написан
    1 комментарий
  • Пример JAVA-приложения с использованием MVC?

    serso
    @serso
    Например:
    class MyView extends JFrame {
        ...
        JButton button = new JButton();
        button.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                Controller.getInstance().fireEvent(Events.OPEN_WINDOW);
            }
        });
        ...
    }
    


    В контроллере:
    void fireEvent(Event event) {
        for (Listener listener: listeners) {
            listener.onEvent(event);
        }
    }
    


    Сам контроллер может быть event слушателем:

    Controller implements Listener {
    ...
       void onEvent(Event event) {
            if ( event.equals(Events.OPEN_WINDOW) ) {
                // put here code for initializing and opening the window
                // NOTE: new window also can be listener of specific events
            }
        }
    ...
    }
    


    И работа с моделью:
     class MyView extends JFrame {
        ...
        JButton button = new JButton();
        button.addOnTextChangeListener(new TextChangeListener() {
            public void textChanged(TextChange e) {
                Controller.getInstance().fireEvent(new Event(Events.TEXT_CHANGE, e.getNewText()));
            }
        });
        ...
    }   
    
    Controller implements Listener {
    ...
       void onEvent(Event event) {
            if ( event.equals(Events.TEXT_CHANGE) ) {
                // find and update the module
                getTextContainer().setText(event.getData());
            }
        }
    ...
    }
    


    Естественно, TextChangeListener придуман для упрощения понимания, не знаю есть ли такой в Swing'e
    Ответ написан
    9 комментариев
  • Пример JAVA-приложения с использованием MVC?

    serso
    @serso
    Всё просто — контроллер координирует действия. В вашем случае я бы сделал класс который умеет регистрировать слушателей и управлять событиями.

    Окошки с кнопками — это вьюхи. Они регистрируются на некоторые события в контроллере, и сами вызывают контроллер для посылки события.

    Модели в вашем примере — нет. Можно добавить модель, например, объект, который будет храниться в контроллере и содержать текст из первого окна. Этот объект соответственно должен обновляться контроллером по событию окна с текстовым полем, а также текст в окне с текстовым полем должен выставляться из этого объекта контроллером.
    Ответ написан
    3 комментария
  • Книги о современной веб-верстке

    m08pvv
    @m08pvv
    http://htmlbook.ru/ — отличный сайт.
    Ответ написан
    Комментировать
  • Чем отличаются ленты?

    @WikiLeaks
    Все — очевидно это все новые посты, за исключением тех которые размещены в закрытых блогах.
    Лента — это только те блоги к которым вы присоеденились, и отображение постов из которых включили в настройках (они сбоку).
    Тематические — Туда (я могу ошибаться, поправьте) попадают посты из блогов тематика которых напрямую относится к IT и соответственно к хабру.
    Ответ написан
    Комментировать
  • Карты с магнитной полосой - кодирование/декодирование

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Если хотите, то можете позадавать вопросов мне — постараюсь ответить.
    Ответ написан
    1 комментарий
  • Карты с магнитной полосой - кодирование/декодирование

    mariofag
    @mariofag
    Магнитная карта — лишь носитель, что на ней хранить — дело ваше и зависит лишь от ваших конкретных желаний и условий.
    Если вы хотите — можете хранить там только номер карты, а всё остальное получать от сервера. Если хотите, чтобы к некоторым данным получить доступ можно было моментально (например, имя клиента и срок действия карты) — сохраняйте на карте и их.
    PIN хранить на карте крайне не желательно, но если уж вам очень хочется — можете хранить его хэш. Но помните, что всю информацию на картах с магнитной полосой можно считать и скопировать.
    Ответ написан
    1 комментарий