• Установление соединения Java с MySQL 6.0.6

    Наверняка с проблемой установления соединения народ намучался, особенно новички. Все видеоуроки и туториалы 2-х и 3-х летней давности, а это предполагает некоторые танцы с бубном, для того чтобы приконнектить новенькую mysql к java. Новичку это особенно сложно дается, как впрочем и мне, с опытом программирования в 5 дней. Однако проблему эту победил и выкладываю полный маршрут для всех интересующихся.

    Начнем с того, что убедимся, какая версия mysql прописана в dependencies:

    <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.6</version>
            </dependency>
    </dependencies>
    

    Первое что я сделал — это попал на FabricMySQLDriver, он напрочь отсутствует в новых классах работающих с 6ым mysql.

    Получил ошибку «cannot resolve symbol FabricMySQLDrive».

    Спустя 30 минут нашлось решение:

    Connection connection = null;
    Driver driver;
    
    try   {
           driver = new com.mysql.cj.jdbc.Driver();
           DriverManager.registerDriver(driver);
           }
           catch (SQLException e1) {
                    System.out.println("Драйвер не зарегистрировался");
    		return;
    	}
    

    Читать дальше →
  • Проверка пустых полей формы: универсальный способ

    Те, кто занимается созданием сайтов, в какой-то момент сталкиваются с необходимостью проверки заполнения пользователем полей формы, размещённой на сайте. Для этого создаётся какой-то вариант проверки пустых полей, который используется в своих проектах. Но для каждого случая количество полей, которые необходимо проверить, может быть разным. Это приводит к тому, что созданный вариант проверки необходимо изменять в зависимости от конкретных условий, и в дальнейшем у нас появляется уже несколько его модификаций.
    Читать дальше →
  • Molecule — тестируем роли Ansible

    Доброго времени суток. На Хабре не раз упоминался ansible, но статей о тестировании его ролей при помощи molecule мной обнаружено не было, однако Я нахожу данный фреймворк крайне удобным и хотел бы поделиться этим с аудиторией Хабра.
    Но для начала немного о том, чем я пользовался прежде.
    Читать дальше →
  • Вы не знаете npm

    image

    Перевод и небольшое творческое переосмысление доклада Ashley Williams(человека из команды разработчиков npm) с конференции JavaScript fwdays'17, которая прошла 22 апреля 2017 года в Киеве, Украина. Целью статьи я не ставил дословно перевести выступление Ashley, для вас будет представлена выжимка основных моментов, а именно – фишки npm, о которых не все знают, но знать о которых полезно каждому. В подвале я оставлю ссылку на страницу выступления на сайте frameworksdays.com, где вы сможете найти видео выступления, презентацию и контакты самой Ashley, если они вам понадобятся.
    Читать дальше →
  • Ошибки в управлении стартапом

    9 причин провала:

    1. Расчет на поддержку, которой может не быть


    Некоторые предприниматели считают свой бизнес приоритетным направлением экономики, которое поддерживается государством или регионом. Иногда это правда, а иногда — заблуждение, но и просто малый бизнес в целом.

    Стартап может рассчитывать на:
    Читать дальше →
  • Общий вид дерева, реализация и не только

    Многие, наверное, пытались найти построение дерева общего вида, но поисковик находил только бинарные… Двоичное дерево поиска, обход двоичного дерева и многие другие алгоритмы.
    Да, действительно, дерево общего вида нигде не используется, обход медленный, варианты использования небольшие.

    Так вот, я задался этим вопросом и теперь поясню как все-таки дерево строится. Итак, в идеале структура дерева общего вида должна хранить три переменные:
    Читать дальше →
  • Альтернативная локализация в Silverlight

    Технология создания интерактивных web-приложений Silverlight является одним из современных средств взаимодействия пользователя с ресурсами сайта в сети Интернет. На сегодня успешные программы давно освоили механизмы адаптации своего интерфейса к разноязыковой публике — т.е. локализации. Например, в технологии WPF применяется механизм динамических ресурсов (Расширение разметки DynamicResource), позволяющих изменять надписи и изображения интерфейса при их отображении, а не компиляции программы. Так, при реализации интерфейса WPF достаточно указать в требуемом свойстве элемента через привязку (Binding) имя ресурса. Однако, не смотря на схожесть способа реализации графического интерфейса технологии WPF в Silverlight нет динамических ресурсов. Стоит отметить об известном способе автоматизации этой задачи основанный на INotifyPropertyChanged — как сказано здесь «заключается он в создании класса с набором свойств, являющихся ресурсами». Данный способ сложен, требует вводить новое свойство в класс для указания ссылки на него в интерфейсе под каждый элемент ресурса, а запись привязки (Binding) к свойствам такая же громоздкая, тем более, что каждое привязанное свойство необходимо программно с помощью цикла или поименно «заставлять» обновляться. Предлагается альтернативный способ локализации в Silverlight основанный на метках (Tag) элементов интерфейса и рекурсивном цикле принудительной замены значений их свойств (например, текстов надписей и картинок). Такой подход обеспечивает независимость от предлагаемых Микрософтом способах локализации, предоставляет надежный программный механизм гарантирующий замену значений указанных свойств элементов, является простым и компактным в реализации.
    Читать дальше →
  • Вычисляем животное китайского календаря

    Как определить, какое животное китайского кругового календаря соответствует любому году? Для начала, обнаружим некоторые закономерности.

    Пусть М = некоему набору исторических годов:

    int[] M = { 1905,1917,1941,1953,1989,2001,2013,2025,2241 };

    Тогда, для него справедлив следующий тест:

    
    //((1))
    	// Набор специальных исторических годов M
    	static int[] GetSpecialHistoryYears() {
    		int[] M = { 1905,1917,1941,1953, 1989,2001,2013,2025,  2241 };
    		return M;
    	}
    	
    //((2))
    	// Проверяем математические закономерности годов M
    	[Test]
    	protected void SpecialHistoryYearsMath() {
    		int[] M = GetSpecialHistoryYears();
    		
    		// A и B - индексы массива
    		// вкладывая A в B мы получаем возможность брать любую пару в массиве M.
    		for( int A = 0; A < M.Length; A++ ) {
    			for( int B = 0; B < M.Length; B++ ) {
    				// разница любой пары в наборе кратна 12
    				Assert.AreEqual( 0, Math.Abs(M[A]-M[B]) % 12, 
    				"Expected 12x differrence" );
    			}
    		}
    
    	}
    
    Читать дальше →
  • Кодировки в Windows

    В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет!!! Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!».

    Тем, кто ещё не понимает, о чём проблема, то вот Вам:

    image
    У меня такая же проблема...
  • Закат эпохи Steam Greenlight или как запрыгнуть в последний вагон

    Здравствуйте. Меня зовут Александр, я являюсь разработчиком компьютерных игр. Хочу рассказать о своем опыте получения «зеленого света» в Steam. А также поделиться с вами мыслями о новой системе публикации игр в данном интернет — магазине.

    Немного предыстории:


    В течение полугода мы с братом занимались разработкой игры. Я отвечал за компьютерный код, а он за 3D модели и текстуры. И вот мы наконец — таки разместили игру на Steam Greenlight, ожидая, что нас все похвалят и забросают лайками и восторженными комментариями! Но реальность была далека от наших ожиданий.

    image

    И так далее…

    Посыпался негатив такой, как будто мы влезли на частную территорию и предлагаем купить Нerbalife или установить им третью спутниковую тарелку. Вдруг мы узнаём, что в стиме не любят rolling ball игры и если нам и придется, что-то переделывать, так это всю игру, так как у нас как раз именно rolling ball.

    image

    Статистика игры в Steam Greenlight за первые 4 дня

    Как видно из графика, естественная реклама в стиме действует только 2-3 дня (забегая наперед, скажу, что уже 1-2 дня), а дальше игра попадает на вторую страницу списка игр, куда мало кто заходит. Набрав примерно 120 «за», наша игра почти встала на месте и продолжила набирать только по 1-2 «за» в день. И тут мы поняли, что без дополнительной рекламы «зеленый свет» нам не получить.

    image

    Красными стрелками отмечены пиар публикации на различных ресурсах

    Всю пиар компанию можно разделить примерно на 3 части.
  • Основы easygui python. Часть 1

    Это статья об основах модуля easygui для языка Python. Рекомендую использовать Python ветки 2-x, так как это позволит совместить табуляцию и пробелы. Конечно же, данный модуль не для написания программ, а в качестве дополнения. Статья написана для самых начинающих, поэтому будет много комментариев.
    Дать статье небольшой шанс
  • 5 причин почему мы перешли с Python на Go

    Всем привет! Это мой первый пост здесь. Решил выложить свой перевод статьи Tigranа Bayburtsyanа о том, как он и его стартап перешли с Python на Go. Статья мне показалась интересной, на medium она находится в топ-3 по тегу golang с начала этого года. Сразу скажу, она лишь отражает мнение и опыт автора, которые могут не совпадать с вашими, и это нормально — сколько людей столько и мнений. Итак, поехали.

    Gophers с сайта golang.org
    Gophers с сайта golang.org

    Python прекрасен! Особенно Python 3 с его асинхронной функциональностью. Но на деле Go не даёт никому шансов выжить в мире enterprise…

    Если вы прониклись этой цитатой, тогда вы, возможно, пробовали или хотя бы смотрели в сторону языка программирования Go, который, по моему мнению, является самым простым языком программирования, подходящим для разработки любых приложений. Да! Вы не ослышались, для меня изучить Go оказалось проще, чем Javascript. Я думаю, это главная причина того, что Go разошёлся такой популярностью всего за несколько лет.
    Читать дальше →
  • Сеть-шифровальщик или как я от нейросети странного хотел

    Идея использовать нейросети для шифрования информации витала в голове у меня давно (с конца 2000х). Но, как это водится, то времени не хватало, то желания. Так что пишу это только сейчас (хотя может материал уже и устарел).
    Читать дальше →
  • ZWCAD 2017: надо попробовать

    Впервые я заинтересовался альтернативными CAD пакетами, когда возникла тема с лицензированием. Конечно, помимо сравнимого функционала, хотелось найти программу, внешне максимально похожую на Автокад. С ним я знаком давно, еще с архитектурного института. Переучиваться на что-то другое совсем не хотелось.



    Самыми близкими к теме тогда оказались пакеты на базе IntelliCAD. Внешне они очень напоминали Аutocad, но все еще были беспомощны для профессионального использования. Попробовав что-то сделать по работе — отредактировать чертеж или 3D-модель, вывести файл на печать — в скором времени очень хотелось вернуться к Автокад. В каждой программе были какие-то шероховатости, недоделки. Предварительный просмотр вывода на печать был не таким удобным, не позволял приближать изображение, чтобы увидеть толщины линий. При зеркальном отражении не отображалось отслеживание оси между двумя указываемыми точками. В некоторых случаях не сохранялись пользовательские настройки после завершения программы. Я стал следить за обновлениями, сравнивал пакеты от разных разработчиков, надеясь все же найти «рабочую лошадку».
    Читать дальше →
  • Настройка и тест роуминга на wi-fi точках доступа CAP300

    Начнем с того, что Точки доступа CAP300 не дорогие (приблизительно 4400руб), но при этом эта точка доступа имеет полный функционал: управляется контроллером, может сама быть контроллером и управлять сетью до 8 точек доступа, имеет гигабитный Ethernet PoE 802.3af порт, поддерживает до 16 SSID, VLAN, Radius сервер и роуминг. CAP300 без проблем обеспечит поддержку до 50 пользователей. Вот так выглядит эта точка доступа:



    Читать дальше →
  • Стратегия и тактика тестирования мобильных приложений

    Тестирование мобильных приложений является затратным по времени и стоимости, но без него никак, если вы хотите добиться высокого уровня удовлетворенности клиентов. Важно, чтобы у всех ваших пользователей были хорошие впечатления от работы с приложением. Если вы его плохо протестируете, пользователи это сразу заметят. Клиенты не любят, когда на них экспериментируют — если в приложении произойдет сбой, они просто уйдут и не вернутся.

    Представим, что ваш разработчик написал отличный код и не сделал ни одной ошибки. Несмотря на это, приложение все равно нужно тестировать, потому что ваша цель состоит не в том, чтобы найти ошибки разработчика, а в том, чтобы понять насколько приложение качественное. Работает ли оно? Все ли функции реализованы как ожидалось? Соответствует ли оно потребностям клиентов и смогут ли они им пользоваться постоянно?
    Читать дальше →
  • Self Service — Начинающим SS'овцам посвящается, с чего начать и как с этим быть

    Привет Хабровчане! Я из разряда тех, кто много читает посты, статьи, комментарии и всякие полезности на Хабре, но не регистрируется, так сказать вью-режим. Появилось немного времени, и я решил запилить публикацию.

    image

    Как вы уже догадались, речь пойдет о самообслуживании, или о Self-Service (далее SS), это такая штука, с помощью которой клиент/пользователь/абонент/юзер (нужное подчеркнуть) получается сервис/информацию/данные не имея прямого контакта/диалога/встречи с представителем компании, будь то оператор/менеджер или кто либо еще. Целью SS является снижение нагрузки по обращениям в офисы компании, Call-center, и обращения за консультациями в digital-каналы (social, чат и т.д.) Более того, это большая работа по оптимизации бизнес-процессов работы в компании.

    Я расскажу как я все это дело понял и развивал на своем скромном опыте.
    Читать дальше →
  • О том как я optipng на shared hosting fozzy ставил

    Предисловие


    Привет, читатели. Это мой первый пост на хабре. Нахожусь в приподнятом настроении, поэтому решил поделиться знанием с миром, ну и для себя оставить, когда через месяц сложно будет вспомнить последовательность действий. Частенько мне приходилось уже изобретенное колесо изобретать снова. Получалось быстрее, тем не менее, мне это стоило обычно недюжинного напряжения ума.

    Многие, как и мы, хостят свои сайты на т.н. shared hosting. Наш хостер fozzy всем хорош, менять его желания никакого нет, поэтому, когда в google adwords поддержке нас ткнули носом в низкий рейтинг pagespeed insight на мобильной версии, пришлось снова вернуться к вопросу оптимизации изображений.

    Несколько месяцев назад этот вопрос уже возникал. Я пытался по всяким мануалам, в том числе с Хабра, добиться высокого рейтинга на pagepseed, но одно дело получить 100 баллов при загрузке страницы:

    <html><body>Hello world!</body></html>

    и совсем другое дело получить высокую оценку на странице интернет магазина, на котором куча скриптов, которые нельзя отключить или загружать асинхронно.
    Читать дальше →
  • Настройка Emacs для последователей Dlang

    Продвинутому в мире программирования человеку, коим скорее всего являешься ты, хабравчанин, пояснять, что такое язык D, нет смысла — о нем, хоть краем уха, но слышать был должен.

    Dlang — это настоящее благословение для бородатых мальчиков-программистов C++. И эта статья предназначена как раз им, программистам, открывшим для себя этот язык, но вставших на перепутье тернистого выбора той самой IDE, посредством которой они будут познавать как «ходить» без костылей.
    Читать дальше →
  • Увеличиваем объём Яндекс.Диска на 32 Гб навсегда за автозагрузку фото с телефона

    Весна вступает в свои полноправные права, планета крутится, люди трудятся. А Яндекс, в очередной раз обновив мобильное приложение Яндекс.Диска, объявил об акции.


    Читать дальше →