Контакты

Достижения

Все достижения (2)

Наибольший вклад в теги

Все теги (13)

Лучшие ответы пользователя

Все ответы (33)
  • Как изучить язык баз данных SQL?

    akaish
    @akaish
    Стек Java\Android
    К сожалению, чтобы Вам что-то посоветовать - необходимо узнать Ваш личный "фундамент". Хоть указанная Вами книга и будет полезной (даже с учетом того, что она писалась для MySQL версии 4.х, фундаментально как в СУБД, так и в SQL и в конкретном синтаксисе MySQL последнее, наверно, десятилетие, ничего не менялось), я бы посоветовал следующий алгоритм обучения:

    1) Знакомство с основами реляционной алгебры, нормальными формами и реляционной моделью. Без фанатизма, прочтение и осознание статей даже на Википедии хватит за глаза.

    2) Знакомство с спецификацией SQL2008. Опять же, без фанатизма. В любом случае, работать Вы будете впоследствии с определенным диалектом языка.

    3) Выбор диалекта языка. Подбор литературы (практически любой, за исключением книг из серии "{0} для чайников" и "100 и одно решение для {0}"). На этом этапе важно определиться также с инструментарием, который Вы будете использовать в дальнейшем. Для начала подойдет любой онлайн интерпретатор SQL кода, к примеру sqlfiddle. Но по мере изучения Вам понадобятся более сложные инструменты.

    4) Знакомство с UML. Точнее, если по минимуму, с той частью, которая затрагивает прототипирование БД. SQL и СУБД - это инструменты, которые позволяют автоматизировать процессы бизнес логики. UML позволяет эти процессы описать и на основе этих процессов создать прототип схемы БД, от которого уже можно идти к конкретной реализации.

    Итак. Четыре базовых шага выполнены. Дальше все просто, перевариваете информацию и занимаетесь практикой от простого к сложному (в комментариях уже указывали вполне годные наборы задачек). Попутно узнаете особенности программной реализации выбранной Вами СУБД. И внимательно читаете документацию от разработчика. На примере SQLite, у них подробно разобрана семантика запросов: SQLite CREATE. Под MySQL найдете сами.

    Теперь поясню, почему все четыре шага важны.
    1) Без базовых фундаментальных знаний вы просто не поймете, почему, к примеру, в ячейке столбца номера нельзя указывать два номера телефона, или как работают ограничения на целостность данных.
    2) Хоть диалекты SQL и отличаются от стандарта SQL:2008, следует понимать, что знание стандарта позволит Вам в случае необходимости переключиться с одной СУБД на другую. Также, хорошая реляционная SQL СУБД должна быть совместима с этим стандартом априори.
    3) Тут на Ваш вкус. Посмотрите изложение автора перед покупкой, посмотрите списки того или иного программного обеспечения. Но факт остается фактом, что прочтение только стандартов, мануалов и официальной документации - путь явно не для всех. Кому-то просто необходимо "художественное" изложение, да и просто из книг можно почерпнуть реальные примеры из опыта автора.
    4) Надо понимать, что реляционные СУБД всего лишь инструмент для хранения и обработки данных, обеспечивающий определенные бизнес-процессы определенной предметной области. И под бизнес-процессами следует понимать не как какую-то эфемерную для простого человека вещь, а то, что закладывается под этим словом в оригинальном языке, т.е. совокупность процессов\действий, направленных на создание продукта\предоставление услуги. А средства UML позволяют все это описать в стандартизированной графической форме. Чтобы знать SQL не надо знать UML, не надо знать, что такое и, к примеру, ЖЦ программного продукта. Но со временем, если Вы захотите расти дальше, Вам нужен будет инструмент прототипирования. Также, как если вы дорастете до архитектора БД, вам нужно будет представление о том, как эти БД проектировать, начиная с описания предметной области и заканчивая организационной точкой зрения. Стандарты ГОСТ 34.601-90 и ISO/IEC 12207:2008.

    Я, как и многие, начинал с какого-то полу прочитанного учебника и примеров из сети. Сейчас я понимаю, что просто потратил время практически впустую. Как ни странно, хоть и принято ругать наше образование, но список курсов для специальностей "ПИ" подобран не просто так. Помимо самого языка следует знать математический "бэкенд" и как его использовать для реализации задач предметной области. Я отношусь к SQL потребительски, это не мой основной язык, но сейчас я понимаю, что если бы уделил ему больше внимания не как языку, а, в первую очередь, как к одному из инструментов СУБД, работающих на основе реляционной алгебры для обеспечения бизнес-процессов, я бы избежал кучу потерянного времени, костылей и ошибок. Надеюсь, мой ответ будет Вам полезен.
    Ответ написан
    3 комментария
  • Как реализовать скачивание картинки на телефон в Android Studio?

    akaish
    @akaish
    Стек Java\Android
    Причем тут Android Studio?
    Делается это следующим образом: получаете контекст приложения, по id ресурса получаете InputStream, из полученного InputStream копируете байты в OutputStream свежесозданного файла, куда хотите сохранить картинку.
    Ну и не забывайте указать в манифесте приложения разрешение на доступ к файлам на SD карте и внутренней памяти устройства. Перед процессом копирования запрашиваете у пользователя доступ вашего приложения к данному разрешению.
    Или Вам готовый сниппет нужен?
    Ответ написан
    1 комментарий
  • Почему частично не видно Fragment?

    akaish
    @akaish
    Стек Java\Android
    Есть проблемка, вы выкладываете обрезанный скриншот и лэйаут только элемента списка и не формулируете вопрос по человечески.
    UPD. Скорее всего проблема заключается в том, что некорректно определяется высота вложенного списка в SrollView. Там вообще не очевидный вопрос, с чем-то похожим уже сталкивался, но запамятовал. Если я Вас правильно понимаю, проблема в том, что список, завернутый в ScrollView не скроллится? Если так, копайте в сторону этого ответа на Stack Overflow. Что-то похожее уже решал, но, увы, уже просто не помню и особо не подскажу. Насколько я помню, там все упиралось в некорректную работу метода по определению общей высоты элементов вложенных списков.
    Ответ написан
    Комментировать
  • Насколько безопасен Android 6.0.1?

    akaish
    @akaish
    Стек Java\Android
    Пользуйтесь спокойно. Если сторонних приложений нет, а разрешения настроенные, шанс потерять денежные средства с карточки минимальный. Это уже из разряда паранойи. Если всё-равно нервничаете - пользуйтесь самой свежей версией стороннего браузера (к примеру, Mozilla), отключите JS для всех веб сайтов кроме доверенных и поставьте антивирус + файрвол.
    Если желаете - поищите новые прошивки на нужное устройство. Если совсем параноите и новых прошивок больше нет - шейте кастом ром на основе образа из Android SDK
    А так, повторюсь, практического смысла в этом нет. Уязвимости есть всегда. Только обычных людей никто ломать спецом не будет. А даже, если этот конкретный планшет будет взломан, двухфакторная аутентификация не позволит злоумышленнику воспользоваться Вашими средствами.

    Лучше задумайтесь об использовании мобильного телефона (мобильный банк, передача конфиденциальной информации посредством телефонной связи). Алгоритм A5 (используется до сих пор в стандарте GSM) ломается после 8 секунд разговора, а подмена базовой соты делается проще простого. А если Вы перезагрузите телефон из-под подмененной базовой соты, злоумышленник без проблем получит Ваш iccid и imsi и сможет эмулировать вашу симкарту со всеми вытекающими. И Вы этого даже не поймете. Во дворе припаркован фургончик, а телефон даже и не поймет, что подключен к левой базовой станции. А кто-то уже обчищает вашу карточку переводами через смс банк.
    Ответ написан
    Комментировать
  • Можно ли замаскировать android x86?

    akaish
    @akaish
    Стек Java\Android
    Нельзя. Если часть программ не поддерживают x86 архитектуру, то даже если заставить систему выдавать информацию о том, что используется ARM, такие приложения работать не будут. Разные архитектуры.
    Ответ написан
    Комментировать