Дата | Видеоурок | Результат | |
---|---|---|---|
Новогодний python Подарки: рефакторинг и перемещение без рисования | + 5 | ||
5:43 - без оператора turtle.pendown() в строке 22 прямоугольник тоже отрисовывается Применили передачу аргументов в метод. Повторение получается более осмысленным, это радует |
|||
Новогодний python Подарки: цвет коробки с подарком | + 4 | ||
метод color ожидаемо красит линию и заполнение в зависимости от имен переданных аргументов Вместо скобок джавы, пайтон использует табуляцию для определения строк кода в цикле. С прошлых подходов это выглядит диковато, но привыкаешь без труда В одиннадцатой строке кода (иллюстрация номер ноль) успел накуролесить на пустом месте. При вызове метода эндфилл забыл указать скобки и не мог понять, почему цветом не заливает. |
|||
Новогодний python Подарки: вызов черепашки | + 4 | ||
черепаха ходит как прикажут. Вызовы методов для объекта в виде черепахи возвращают рисунок движения на расстояние переданное в форвард и повороты в градусах |
|||
Новогодний python Подарки: создание проекта | + 3 | ||
оператор print возвращает в консоли текст внутри двойных кавычек F5 и экранная кнопка успешно запускает дебаггер |
|||
Новогодний python О курсе и инструменты | + 3 | ||
С новым годом, товарищи! Установил python и IDE на старый пыльный лаптоп с операционной системой Windows 7 Starter. По этой причине свежий релиз пайтона не запустился, однако версия 3.8.6 встала и работает без нареканий. VisualStudioCode оказался менее привередлив к операционке. Этот инсталлировал самый свежий на текущий момент ver. 1.63.2 Перестать лениться. |
|||
Дневник успеха 2020-11-01 : Много спать – дело не знать. | + 5 | ||
За эту неделю: − Я не проверил ни одного отчёта :)) − Я не написал ни одного сообщения :o( + Я набрал 1 текст: 1 => «Java - Запуск / String[] args», 9 ошибок − Я не решил ни одной задачи :)) − Я не выполнил ни одного видеоурока :)) − Я не собрал ни одного Мегахеша :)) |
|||
Дневник успеха 2020-10-25 : Земелька черная, а белый хлеб родит. | + 6 | ||
Периодически заглядываю на сайт посмотреть на развитие проекта. Вижу среди участников ни одного KF. Отменили эту фичу или у них закрытый клуб в ином месте? Но тренажер слепого набора как и прежде прекрасен. За эту неделю: − Я не проверил ни одного отчёта :))) − Я не написал ни одного сообщения :))) − Я не набрал ни одного текста :))) − Я не решил ни одной задачи :))) − Я не выполнил ни одного видеоурока :))) − Я не собрал ни одного Мегахеша :))) |
|||
Дневник успеха 2021-01-31 : Живет на горке, а хлеба ни корки. | + 6 | ||
Размять пальцы - это ещё привлекает. Остальное застыло в граните здесь. Даже дядя Валера забросил свой курс по Доске объявлений, хотя он был перспективным. За эту неделю: + Я проверил 10 отчётов у 4 формулистов. − Я не написал ни одного сообщения :) + Я набрал 1 текст: 1 => «Java - Вывод данных / Калькулятор», 1 ошибка − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-10-18 : Труд человека кормит, а лень портит. | + 7 | ||
За эту неделю: + Я проверил 68 отчётов у 3 формулистов. − Я не написал ни одного сообщения :) + Я набрал 1 текст: 1 => «C# набор / Первая программа», без ошибок − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) "Дивлюсь я на небо" Украинская народная песня Музыка В.Заремба Слова М. Петренко Дивлюсь я на небо та й думку гадаю: Чому я не сокіл, чому не літаю, Чому мені, Боже, ти крилець не дав?- Я б землю покинув і в небо злітав! Далеко за хмари, подалі від світу, Шукать собі долі, на горе - привіту, І ласки у зірок, у сонця просить, У світі їх яснім все горе втопить. Бо долі ще змалку здаюсь я не любий,- Я наймит у неї, хлопцюга приблудний; Чужий я у долі, чужий у людей! Хіба ж хто кохає нерідних дітей?.. Кохаюся лихом і щастя не знаю. І гірко без долі свій вік коротаю; Й у горі спізнав я, що тільки одна - Далекеє небо - моя сторона... Й у горі спізнав я, що тільки одна - Далекеє небо - моя сторона... |
|||
Дневник успеха 2020-10-11 : Кто любит труд, того люди чтут. | + 6 | ||
За эту неделю: + Я проверил 21 отчёт у 8 формулистов. − Я не написал ни одного сообщения :) + Я набрал 1 текст: 1 => «Java - Запуск / Скоростная Java», 1 ошибка − Я не решил ни одной задачи :) + Я выполнил 1 видеоурок: 1 => «Дневник успеха / 2020-10-04 : На чужой работе и солнце не движется.» за 10 мин. Какая отличная поговорка! Наблюдал коллег, жаловавшихся на тянущееся на работе время. А тут и поговорка в тему прилетела. Не знал о ней. Век живи - век учись. Не перепутай ) − Я не собрал ни одного Мегахеша :) На прошлой неделе знакомился с английской разговорной речью, на следующей продолжу в том же духе. |
|||
Дневник успеха 2020-10-04 : На чужой работе и солнце не движется. | + 5 | ||
За эту неделю: + Я проверил 9 отчётов у 5 формулистов. − Я не написал ни одного сообщения :) + Я набрал 1 текст: 1 => «Java - Запуск / Скоростная Java», 1 ошибка − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) Любопытно, эти Мегахеши ещё кто-нибудь майнит? |
|||
Дневник успеха 2020-09-27 : Лучше тихо да вперед, чем скоро да потом назад. | + 4 | ||
За эту неделю: + Я проверил 32 отчёта у 8 формулистов. + Я написал 2 сообщения 2 формулистам общим объёмом 1 килобуква + Я набрал 1 текст: 1 => «Java - Запуск / Class!», без ошибок − Я не решил ни одной задачи :))))) − Я не выполнил ни одного видеоурока :))))) − Я не собрал ни одного Мегахеша, Биткоина, Этериума, Лайткоина, Дэша, Зэткэша, Верткоина, Битшары, Риппла, и прочая, и прочая, и прочая и несть им числа :))) |
|||
Дневник успеха 2021-02-28 : Уменье и труд все перетрут. | + 6 | ||
https://www.youtube.com/watch?v=c6_iI_3ea-o За эти тридцать лет: − Я не проверил ни одного отчёта :o( − Я не написал ни одного сообщения :o( − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( − Я не выполнил ни одного видеоурока :o( − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-09-20 : Цыплят по осени считают. | + 5 | ||
С любопытством наблюдаю со стороны, практика слепого набора до сих пор привлекает на сайт. Всем успехов! За эту неделю: + Я проверил 6 отчётов у 2 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом 1 килобуква + Я набрал 1 текст: 1 => «C# набор / Звездочки», 1 ошибка − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2021-01-24 : Без дела слабеет сила. | + 6 | ||
Потренировался в слепом наборе - руки помнят Марафон. Спасибо отцу-основателю мегапроекта. За эту неделю: + Я проверил 1 отчёт у 1 формулиста. − Я не написал ни одного сообщения :) + Я набрал 1 текст: 1 => «Java - Запуск / String[] args», 3 ошибки − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-09-13 : Дай земле, то и она тебе даст. | + 9 | ||
Хороший заголовок у урока, грех не вспомнить навыки ) Недельный счетчик баллов всех курсантов проекта дотянет ли до одной тысячи, вот вопрос. Бывало под десятку тысяч шкала набегала, то-то движуха здесь была. Иван Воронин метал молнии в проштрафившихся студентов )), Валерий жёг глаголом, Гена Кравченко из Луганска радовал буйством красок в отчетах. Роботика Джава, трансформировавшаяся в робота Шарпа подкидывала заковыристые вопросы, накрыв клавиатуры полотенчиками, курсанты почти в прямом эфире демонстрировали чудеса владения клавиатурой. Молодежь дерзила старшим, те в свою очередь делились знаниями, океан учебы бурлил. Не знаю, так ли сейчас, посмотрю отчеты, может там и живенько, судил по количеству баллов в недельной таблице, может и неверные выводы сделал. Вот побил по клавишам, вспомнил как это делается, дабы не забывать. Всем успехов в учёбе и здоровья! За эту неделю: − Я не проверил ни одного отчёта :) − Я не написал ни одного сообщения :) + Я набрал 2 текста: 1 => «Java - Запуск / Главное заклинание», 4 ошибки 2 => «Java - Вывод данных / Калькулятор», 6 ошибок − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-09-06 : Старание и труд к счастью ведут. | + 5 | ||
Сенсей Валерий фотокарточкой в осеннем пензенском лесу напомнил о видеошарпе и его плюшках. Попрактиковался десятипальцевым набором в тренажере, на удивление даже выбил пару баллов. С удивлением увидел турнирную таблицу, Анатолий не на первом месте в недельном зачете, сдал первую позицию, вай ) В Кирове зверствует корона, в магазины без маски не зайти, точнее зайти можно, но на кассе упорно требуют надеть на уши аксессуар. Холодает, на неделе обещают первый снег. Пока снега не видели с весны. Сегодня сухо и солнечно, пахнет морем. Откуда, непонятно, до ближайшего моря тысячи километров, а от нашей мелководной Вятки морским духом пока не пахло. С деревьев опадают последние желтые листья. Листвы в эту осень очень много. Говорят обильная листва к обильному снегу. Проверим, верно ли говорят. Что здесь нового? Затишье или бурная жизнь кипит где-то под ковром? Всем успешного обучения! Будьте здоровы. За эту неделю: − Я не проверил ни одного отчёта :) − Я не написал ни одного сообщения :) + Я набрал 1 текст: 1 => «C# набор / Ввод элементов матрицы», 3 ошибки − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-08-30 : Не все те повора, у кого ножи длинные. | + 7 | ||
Однажды один фотограф обедал в гостях у одной очень милой супружеской пары. Те, желая сделать комплимент, сказали - Ваши фотографии очень красивые. У вас, наверное, очень дорогой фотоаппарат. Фотограф только мило улыбнулся в ответ и после обеда он подошел к хозяйке и тоже похвалил ее за обед. - Обед был очень вкусным. У вас, наверное, очень дорогие кастрюли. |
|||
Дневник успеха 2020-08-16 : Землю красит солнце, а человека труд. | + 6 | ||
За что ценю этот ресурс, так это за разбуженные мозги и прививку к учебе. Ну и за слепой десятипальцевый метод набора русского и английского текста - однозначно! Слава Евгению! За эту неделю: + Я проверил 112 отчётов у 15 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом 1 килобуква + Я набрал 3 текста: 1 => «YESOLO on the Keyboard / 5 lesson», без ошибок 2 => «Java - Запуск / Static», без ошибок 3 => «Java - Запуск / Main», 1 ошибка − Я не решил ни одной задачи :) + Я выполнил 2 видеоурока: 1 => «Дневник успеха / 2020-08-23 : Под лежачий камень и вода не течет.» за 1 мин. 2 => «Дневник успеха / 2020-08-09 : С курами ложись, с петухом вставай.» за 1 мин. − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-08-09 : С курами ложись, с петухом вставай. | + 6 | ||
Вставать надо рано, но не с петухом ) За эту неделю: + Я проверил 112 отчётов у 15 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом 1 килобуква + Я набрал 3 текста: 1 => «YESOLO on the Keyboard / 5 lesson», без ошибок 2 => «Java - Запуск / Static», без ошибок 3 => «Java - Запуск / Main», 1 ошибка − Я не решил ни одной задачи :) + Я выполнил 1 видеоурок: 1 => «Дневник успеха / 2020-08-23 : Под лежачий камень и вода не течет.» за 1 мин. − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-08-23 : Под лежачий камень и вода не течет. | + 5 | ||
Если я в десятке, то есть о чем подумать, не так ли Кэп? За эту неделю: + Я проверил 112 отчётов у 15 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом 1 килобуква + Я набрал 3 текста: 1 => «YESOLO on the Keyboard / 5 lesson», без ошибок 2 => «Java - Запуск / Static», без ошибок 3 => «Java - Запуск / Main», 1 ошибка − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-08-02 : Сей овес в грязь — будет овес князь, а рожь хоть в золу, да в пору. | + 6 | ||
В Неваде тучки и горы и хорошие дороги. Трава почти везде выцвела - стояла жара. За эту неделю: + Я проверил 122 отчёта у 14 формулистов. − Я не написал ни одного сообщения :) − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) + Я выполнил 1 видеоурок: 1 => «Дневник успеха / 2020-07-26 : Без труда не выловишь рыбку из пруда.» за 1 мин. − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-07-26 : Без труда не выловишь рыбку из пруда. | + 6 | ||
За эту неделю: + Я проверил 122 отчёта у 14 формулистов. − Я не написал ни одного сообщения :) − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-07-19 : За двумя зайцами погонишься - ни одного не поймаешь. | + 3 | ||
Каждый сам себе – глухие двери, сам себе преступник и судья, сам себе и Моцарт и Сальери, сам себе и желудь и свинья. За эту неделю: + Я проверил 158 отчётов у 14 формулистов. + Я написал 3 сообщения 2 формулистам общим объёмом несколько макбуков. − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) + Я выполнил 2 видеоурока: 1 => «Дневник успеха / 2020-07-12 : Торопливый дважды одно дело делает.» за 10 мин. 2 => «Дневник успеха / 2020-07-05 : Ест за вола, а работает за комара.» за 2 мин. − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-07-12 : Торопливый дважды одно дело делает. | + 3 | ||
Окончилась неделя адской жары, когда от перерева смартфон отключался в анабиоз. Слежу за делами на Видеошарпе - вижу, подтянулись котики. Вот что жара животворящая делает. Я снова в десятке, что немало удивляет. За аккумуляторы ноутов узнал следующее - боятся они холода. После зимы и хранения на морозе аккумулятор стал держать как тот комар из предыдущей поговорки, а есть продолжает за вола. Держит не более часа, а заряжается часов пять. Вот тебе и мак про. Снова надо менять, но тут я уже буду его оберегать от замораживания. В машине на морозе не надо ноут бросать, если аккум дорог. Такой урок вынес. Попрактиковался в слепом наборе десятипальцевым хотя бы здесь. Уже практика. На следующей неделе продолжу наблюдать за сонным Видеошарпом, может дождусь пробуждения. Валерий может новый курс выдать на гора, что все встрепенутся, а то и новый марафон увлекательный подтянется. Не все же мне бездельнику в десятке быть. Видели и другие времена здесь ) Всем удачи!! За эту неделю: + Я проверил 143 отчёта у 13 формулистов. + Я написал 3 сообщения 2 формулистам общим объёмом несколько буков. − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) + Я выполнил 1 видеоурок: 1 => «Дневник успеха / 2020-07-05 : Ест за вола, а работает за комара.» за 2 мин. − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-07-05 : Ест за вола, а работает за комара. | + 7 | ||
Покатался по стране, постучал молотком, вернулся посмотреть, как дела на интеллектуальном фронте. За эту неделю: + Я проверил 107 отчётов у 11 формулистов. − Я не написал ни одного сообщения :) − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-06-28 : Дуб – железо селянина. | + 4 | ||
Если я в десятке, то есть о чём задуматься товарищу прапорщику. За эту неделю: + Я проверил 72 отчёта у 12 формулистов. + Я написал 4 сообщения 2 формулистам общим объёмом 1 килобуква − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-06-21 : Одна пчела мало меда нанесет. | + 7 | ||
За эту неделю бетонировал отмостку загородного дома: + Я проверил 64 отчёта у 14 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом несколько буков. − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( − Я не выполнил ни одного видеоурока :o( − Я не собрал ни одного Мегахеша :o( На следующей неделе буду продолжать играть с клинкером, гравием и водой в бетономешалке ) |
|||
Дневник успеха 2020-06-14 : Пашню пашут, руками не машут. | + 6 | ||
За эту неделю: + Я проверил 77 отчётов у 15 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом несколько буков. − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-06-07 : Без труда нет плода. | + 7 | ||
За эту неделю: + Я проверил 104 отчёта у 14 формулистов. + Я написал 2 сообщения 1 формулисту общим объёмом несколько буков. − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-05-31 : Делу время, потехе час. | + 3 | ||
2020 год заставил переформатировать и эту поговорку из заголовка урока. Потехе у нас был отнюдь не час, и не день и не неделя и даже не месяц. Потеха началась в марте, а у кого и раньше, и заканчивается (?) 1 июня прогулками по расписанию в намордниках и без. И финал ли это, неясно. Между тем, окно дало больше времени на занятия, джаваскрипт еэс шестой всё более понятен, хотя и осознание величины изучаемого предмета дает понимание, как глубока кроличья нора. За эту весну успел отойти от бабушконабора на клавиатуре и заставил-таки себя клацать глядя исключительно на экран. Лишь пароли тыкаю смотря на клаву - это ещё один барьер, что надо преодолеть. Скорость невысока, но удовольствие от набора слепым методом пришло наконец. Уже не через силу. За эту весну был отремонтирован мак, клава на нем больше не куролесит, можно кодить без затруднений. Разобрался заодно и со сбоем тачпада - через время он переставал прожиматься. Оказывается, там есть регулировочный винт, отвечающий за глубину прожатия кнопки ЛКМ и ПКМ. Помимо его регулировки и подклеивания во избежание раскручивания, выяснилось, что основной причиной был не он, а раздувшийся умирающий аккумулятор - его тушка упиралась с внутренней стороны в тачпад и не давала клацнуть. Пришлось подрезать пластик, подложить любимой синей изоленты )))) и тач снова клацает, как у молодого. За эту весну понял разницу между фронтом и бэком, кто что разруливает. Прежде чем идти на глубину, стоит оценить всю шахматную доску, чтобы понимать зачем то или иное делается. Здесь дается много практики, но с теорией надо разбираться самостоятельно. Если это игнорировать, ни о каком профессиональном росте можно и не мечтать. Одной практикой сыт не будешь. И основное, до чего эта весна привела - фулстек девелопер не может быть суперэкспертом во всех областях - или фронт или бэк просядут. Объемы и постоянное обновление технологий не оставят времени на остальную жизнь, если их все изучать, либо приоритет будет отдан одному. Или больше во фронт или в серверную сторону. Скакать с курса на курс, если они в разных непересекающихся плоскостях нецелесообразно. Если курс про гитхаб пойдет всем, то мешать джаву с сишарпом годно лишь для общего саморазвития. Один язык мультиплатформенный и хорош на немайкрософтовских осях, а шарп на маке не даст полной отдачи - даже Visual Studio там встает урезанная. Тем интереснее. За эту неделю: + Я проверил 80 отчётов у 19 формулистов. + Я написал 1 сообщение 1 формулисту общим объёмом несколько буков. − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-05-24 : Не хвались наперед, погляди в конец: каков делу конец будет. | + 5 | ||
Если не терять время в машине, можно получить сертификат об окончании курсов https://vk.com/wall343388328_1821 В sololearn узнал, что не стоит отказываться от бросаемых там тебе вызовов - это как поединок со случайным курсантом, кто победит в нескольких раундах, тот получает поставленные на кон байты. Время ограничено - приходится напрягать извилины по РНР или JS резче. Нет времени тупить ) Там же познакомился с React, оказалось это разработка парней из Фейсбука. За эту неделю: + Я проверил 91 отчёт у 16 формулистов. + Я написал 5 сообщений 4 формулистам общим объёмом несколько буков. − Я не набрал ни одного текста :o) − Я не решил ни одной задачи :o) − Я не выполнил ни одного видеоурока :o) − Я не собрал ни одного Мегахеша :o) |
|||
Дневник успеха 2020-05-17 : Кто раньше встает, тот грибки соберет, а сонливый да ленивый идут после за крапивой. | + 3 | ||
Заменил наконец-таки клавиатуру на макбуке про 13 с русифицированной неисправной (глюки на кавычках и правой верхней части клавиатуры) на новую английскую. Пишу с нее и латиницей и по-русски. Опасения, что не будет русского текста оказались напрасны - только расположение клавиш надо помнить. А это помнится, благодаря Марафону по СОЛО. Теперь могу полноценно работать с кодом и на этом компе. На неделе грыз JavaScript на следующей будет то же самое ) За эту неделю: + Я проверил 95 отчётов у 17 формулистов. + Я написал 9 сообщений 4 формулистам общим объёмом 7 килобукв + Я набрал 1 текст: 1 => «C# набор / Вывод элементов массива», 9 ошибок − Я не решил ни одной задачи :o) − Я не выполнил ни одного видеоурока :o) − Я не собрал ни одного Мегахеша :o) |
|||
Дневник успеха 2020-05-10 : Кто ни чего не делает, тот ни когда не имеет времени. | + 2 | ||
Забавная поговорка. Если к ней применить булево отрицание, получается ещё смешнее - кто всё делает, тот всегда имеет время ) Что-то практика такое не подтверждает. Помнится, ничего и никогда слитно пишутся. Сейчас шел к рабочему месту по Кирову и вспоминал детское " Как вы отдыхаете? - А я не напрягаюсь". Если сидеть на мамкиной шее и тянуть из нее карманные - так не напрягаться, конечно получится. А вот если дело делать, время куда-то исчезает. Смотрю на эти поговорки и не все они так однозначно верны. Ну и безграмотность рулит миром, это не отнимешь. Потому, учиться, учиться и ещё раз. И от бабушкиного набора глядя на клавиатуру надо отвыкать, не супер это, клацать, как первоход ))) На неделе грыз JavaScript с удовольствием и ходил на собеседование. После решения начальника 12 числа могут и взять. За эту неделю: + Я проверил 140 отчётов у 18 формулистов. + Я написал 11 сообщений 5 формулистам общим объёмом 11 килобукв + Я набрал 1 текст: 1 => «C# набор / Определение массива», 7 ошибок − Я не решил ни одной задачи :o) − Я не выполнил ни одного видеоурока :o) − Я не собрал ни одного Мегахеша :o) |
|||
Дневник успеха 2020-05-03 : Мало хотеть, надо уметь. | + 4 | ||
На прошлой неделе решал задачки по JavaScript и бил себя по рукам при возникновении рецидивов попытки набора на клавиатуре двумя пальцами с подглядыванием на клаву. Только пароли пока набираю по-старому. Из задачек узнал для себя, что в джаваскрипте Set - это уже знакомый HashSet из Java. Названия чуть отличаются, суть примерно одна - не допустить в наборе (типа массива) повторяющихся айтемов. Единица намбером и единица стрингом пролезут, а одного типа повторы - хренушки ) Спасибо курсу ЕВ по джаве ) Следующая неделя - задачки по джаваскрипту к решению, очень уж они сочные, как пельмешки) За эту неделю: + Я проверил 151 отчёт у 22 формулистов F1 на старте. + Я написал 8 сообщений 6 формулистам F1 общим объёмом 4 миллибуквы на питстопах − Я не набрал ни одного текста :) − Я не решил ни одной задачи :) − Я не выполнил ни одного видеоурока :) − Я не собрал ни одного Мегахеша :) |
|||
Дневник успеха 2020-04-26 : Всякая работа мастера хвалит. | + 7 | ||
Решение прогалов между плашками на сайте (как здесь, к примеру -> https://www.videosharp.info/video/techno=web ) оказалось проще, чем предполагал. Знание - сила. Да и забираться в консоль браузера, как выяснилось, лишает джавобоязненности и открывает многая тонны информации о том, как же работает веб. Победа над ленью и оседлание технологии, которая понравится, дает удивительные плоды. Если инфа не заходит - смените курс или инструменты. Даже с английским языком рекомендуют, если появилось ощущение борьбы, сделайте перерыв, учеба может приносить даже удовольствие, если в меру и в нужном русле. За эту неделю: + Я проверил 116 отчётов у 16 формулистов. + Я написал 10 сообщений 4 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o) − Я не решил ни одной задачи :o) − Я не выполнил ни одного видеоурока :o) − Я не собрал ни одного Мегахеша :o)))) |
|||
Дневник успеха 2020-04-19 : Кто в слове скор, тот в деле редко спор. | + 7 | ||
Решаю с азартом задачки по JS. Принуждаю себя отказаться от набора с клавиатуры бабушкиным двупальцевым методом в пользу десятипальцевого набора со взглядом на экран монитора. Удовольствие от отказа взора вниз на клаву стоит того. Клава на ноуте перестала(?) глючить отчего появилась надежда на полноценный набор текста. Test -> +_»|{}*** Пока не сбоит - посмотрим что будет дальше, я так-то в саморемонт оборудования не верю ) За эту неделю: + Я проверил 101 отчёт у 24 формулистов. + Я написал 9 сообщений 6 формулистам общим объёмом 3 килобуквы + Я набрал 1 текст: 1 => «Java - Запуск / Class!», 1 ошибка − Я не решил ни одной задачи :o( − Я не выполнил ни одного видеоурока :o) − Я не собрал ни одного Мегахеша :o) |
|||
Дневник успеха 2020-03-08 : Что пожнешь, то и сколотишь, что сколотишь, то и в амбар положишь. | + 7 | ||
За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 10 видеоуроков: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-03-01 : На работу он сзади последних, а на еду — впереди первых.» за 2 мин. 3 => «Дневник успеха / 2020-02-23 : За много дел не берись, а в одном отличись.» за 1 мин. 4 => «Дневник успеха / 2020-02-16 : Умелец да рукодельник и себе и людям радость приносит.» за 1 мин. 5 => «Дневник успеха / 2020-02-09 : Жизнь дана на добрые дела.» за 1 мин. 6 => «Дневник успеха / 2020-02-02 : Один с сошкой, а семеро с ложкой.» за 1 мин. 7 => «Дневник успеха / 2020-01-26 : С охотой можно и в камень гвоздь забить.» за 2 мин. 8 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 9 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 10 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-03-01 : На работу он сзади последних, а на еду — впереди первых. | + 6 | ||
За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 9 видеоуроков: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-02-23 : За много дел не берись, а в одном отличись.» за 1 мин. 3 => «Дневник успеха / 2020-02-16 : Умелец да рукодельник и себе и людям радость приносит.» за 1 мин. 4 => «Дневник успеха / 2020-02-09 : Жизнь дана на добрые дела.» за 1 мин. 5 => «Дневник успеха / 2020-02-02 : Один с сошкой, а семеро с ложкой.» за 1 мин. 6 => «Дневник успеха / 2020-01-26 : С охотой можно и в камень гвоздь забить.» за 2 мин. 7 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 8 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 9 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-02-23 : За много дел не берись, а в одном отличись. | + 6 | ||
За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 8 видеоуроков: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-02-16 : Умелец да рукодельник и себе и людям радость приносит.» за 1 мин. 3 => «Дневник успеха / 2020-02-09 : Жизнь дана на добрые дела.» за 1 мин. 4 => «Дневник успеха / 2020-02-02 : Один с сошкой, а семеро с ложкой.» за 1 мин. 5 => «Дневник успеха / 2020-01-26 : С охотой можно и в камень гвоздь забить.» за 2 мин. 6 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 7 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 8 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-02-16 : Умелец да рукодельник и себе и людям радость приносит. | + 6 | ||
За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 7 видеоуроков: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-02-09 : Жизнь дана на добрые дела.» за 1 мин. 3 => «Дневник успеха / 2020-02-02 : Один с сошкой, а семеро с ложкой.» за 1 мин. 4 => «Дневник успеха / 2020-01-26 : С охотой можно и в камень гвоздь забить.» за 2 мин. 5 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 6 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 7 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-02-09 : Жизнь дана на добрые дела. | + 6 | ||
За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 6 видеоуроков: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-02-02 : Один с сошкой, а семеро с ложкой.» за 1 мин. 3 => «Дневник успеха / 2020-01-26 : С охотой можно и в камень гвоздь забить.» за 2 мин. 4 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 5 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 6 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-02-02 : Один с сошкой, а семеро с ложкой. | + 5 | ||
Тема про разделение труда ) За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 5 видеоуроков: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-01-26 : С охотой можно и в камень гвоздь забить.» за 2 мин. 3 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 4 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 5 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-01-26 : С охотой можно и в камень гвоздь забить. | + 5 | ||
Гвоздь в камень это круто ) За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 4 видеоурока: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-01-19 : Конец – всему делу венец.» за 1 мин. 3 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 4 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-01-19 : Конец – всему делу венец. | + 5 | ||
Code is the Law. За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 3 видеоурока: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня.» за 1 мин. 3 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-01-12 : Не откладывай на завтра то, что можно сделать сегодня. | + 5 | ||
Долой хвосты! За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 2 видеоурока: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. 2 => «Дневник успеха / 2020-01-05 : Семь дел в одни руки не берут.» за 1 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-01-05 : Семь дел в одни руки не берут. | + 5 | ||
Хвосты долой ) За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 1 видеоурок: 1 => «Дневник успеха / 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом.» за 9 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-04-12 : Не хлеб за брюхом ходит, а брюхо за хлебом. | + 6 | ||
За эту неделю: + Я проверил 142 отчёта у 24 формулистов. + Я написал 6 сообщений 2 формулистам общим объёмом 3 килобуквы + Я не набрал ни одного текста :) + Я не решил ни одной задачи :) + Я не выполнил ни одного видеоурока :) + Я не собрал ни одного Мегахеша :) Собирая проект "Доска объявлений" на ПК без подключения к Интернету, подключил успешно RBAC без композера (ему нужен Инет для закачивания фичи) и убедился в его работоспособности. С гитхаба скачал зип и положил его разархивировав в папку vendor\yii2mod\yii2-rbac затем подключение и использование в коде как в уроке и инструкции по ридми на гитхабе. А с виджетом календарика в "Расширенном поиске" advsearch этот же фокус не прокатил - не видит класс DatePicker и баста. Курю Интернет в поисках и этого вопроса. |
|||
Дневник успеха 2020-04-05 : Белые руки чужие труды любят. | + 5 | ||
За эту неделю: + Я проверил 124 отчёта у 22 формулистов. + Я написал 6 сообщений 4 формулистам общим объёмом 1 килобуква − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( − Я не выполнил ни одного видеоурока :o( − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-03-29 : Срубил дерево - посади два. | + 4 | ||
За эту неделю: + Я проверил 124 отчёта у 19 формулистов. + Я написал 2 сообщения 2 формулистам общим объёмом 1 килобуква − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( − Я не выполнил ни одного видеоурока :o( − Я не собрал ни одного Мегахеша :o( |
|||
Дневник успеха 2020-03-22 : Запас человека не портит. | + 7 | ||
За эту неделю: + Я проверил 113 отчётов у 22 формулистов. + Я написал 4 сообщения 2 формулистам общим объёмом 2 килобуквы − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( − Я не выполнил ни одного видеоурока :o( − Я не собрал ни одного Мегахеша :o( На неделе заметил, что фотографии на доске объявлений с хостинга в формате jpg отображаются лишь в браузере с ПК. При открытии сайта на планшете, живее оказываются картинки в формате png Джипег отчего-то не грузится. Получается, png-формат предпочтительнее для оформления сайта. |
|||
Дневник успеха 2020-03-15 : С мастерством люди не родятся, а добытым ремеслом гордятся. | + 5 | ||
За эту неделю: + Я проверил 251 отчёт у 28 формулистов. + Я написал 15 сообщений 6 формулистам общим объёмом 6 килобукв − Я не набрал ни одного текста :o( − Я не решил ни одной задачи :o( + Я выполнил 2 видеоурока: 1 => «Доска объявлений / Пользователи и роли - роли через RBAC - вносим действия в план» за 24 мин. 2 => «Доска объявлений / Пользователи и роли - роли через RBAC - реализация плана» за 1 день 36 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Доска объявлений Пользователи и роли - роли через RBAC - реализация плана | + 4 | ||
таблицы создаются при запуске файла в браузере успешно. Аргументы передаются по очереди, первый кому присваивается роль, второй аргумент - какая роль присваивается. Роль может присваиваться именем другой роли, в этом случае все права указанной роли наследуются целиком. При сохранении проекта на гитхабе отчего-то не сохраняется папка vendor Вчера проект просто не стартовал, не понял почему, сегодня сверил содержимое проекта с архивным и нашел, что снова отсутствует в проекте папка vendor, подложил её и всё взлетело с первого раза. Взял вопрос на контроль, то ли по моему упущению она не загружена была на гитхаб, то ли есть иные причины, мне неизвестные пока Победить и эту багу было приятно. Валерию творческих успехов, всем бобра и качественных мопедов ))) |
|||
Доска объявлений Пользователи и роли - роли через RBAC - вносим действия в план | + 7 | ||
от простого к сложному Любой пользователь без регистрации может знакомиться с контентом сайта Зарегистрировавшись можно создавать, публиковать, редактировать и снимать с публикации ТОЛЬКО СВОИ объявления про мопед Модератору добавлены права на редактирование и публикацию всех объявлений Админ может дополнительно удалять объявления и рулить темами Суперюзеру добавлен доступ напрямую в БД |
|||
Доска объявлений Пользователи и роли - роли через RBAC - тесты и практика | + 6 | ||
создали новое представление - в контроллере новую функцию плюс файл РНР в представлениях и по ссылке можно уже открывать вьюшку В \controllers\SiteController.php создали экземпляр объекта authManager В этом экземпляре присвоили права, создали пару тестовых ролей и привязали их к двум пользователям (учетным записям из БД) Понять, что для выполнения скрипта надо не просто обновлять страницу проекта, а именно http://bull.local/site/authinit обновлять и запускать скрипт тем самым )) Не сразу дошло |
|||
Доска объявлений Пользователи и роли - роли через RBAC - теория, установка и миграции | + 9 | ||
Миграция прошла успешно на втором ноуте, тютелька в тютельку Композитор не кривлялся, скачал нужные библиотеки и установка прошла на ура. Таблицы созданы. В былые годы Игромистр рекомендовал сбыть на просторы старые ноуты и купить один на все вырученные сольдо. А тут старый ноут оказался целесообразнее новых двух. Вот и думай ) Отчего на соньке вайо не грузится компоузером сомпонента RBAC остается пока неясным. Вернусь домой попробую снова и опубликую скрин с ошибкой. Любопытно же понять, что не так. |
|||
juqery пользовательский интерфейс Полезные виджеты - строка прогресса и слайдер | + 8 | ||
для функции .progressbar( доступен параметр {value:77}) который отвечает за текущее состояние полосы прогрессбара, а его анимацией занимается джаваскрипт Для слайдера в параметрах доступен параметр шага (step:любое цифровое значение до 100) отвечающее за разовое перемещение ползунка по шкале Окончание курса пришло так неожиданно, но отношусь к этому с пониманием - цель была показать технологию джиквери, вводный курс более чем понятен, дальше читаем техдокументацию и пробуем на практике. Не всё же в клювике от преподавателя в уютном гнёздышке получать знания, надо и самостоятельно развивать тему. Автору спасибо за свежий курс по незнакомой технологии и удачи в творческом росте! Курсантам - легкого прохождения и новых знаний! Курс несложный, всё работает и крутится как надо. |
|||
juqery пользовательский интерфейс Полезные виджеты - диалоговое окно - свойства | + 6 | ||
autoOpen: true в параметрах .dialog() заменяет $("#dialog").show(); И так и так окно будет выведено в видимый стиль Высота и ширина диалогового окна указывается в пикселах без явного прописывания px |
|||
juqery пользовательский интерфейс Полезные виджеты - диалоговое окно - инициация | + 6 | ||
модальное окно в отличие от диалогового окна не позволяет вернуться в родительское (в котором это окно было вызвано) Помимо создания окна потребовалось поменять ему стиль дисплея с нан на шоу, иначе окно создавалось, но не демонстрировалось |
|||
juqery пользовательский интерфейс Полезные виджеты - аккордеон | + 6 | ||
$("#accordion").accordion({ в джаваСкрипте создает анимированные строки, открывающиеся по клику мышью Параметры для аккордеона пробовали такие: collapsible=True - не сработал, почитал в сети, рекомендуют при ошибках задавать жестко размеры панелей в px (не пробовал) active:1, - здесь устанавливается открывающаяся панель при обновлении страницы браузера animate:1000, - время в миллисекундах на открытие панели за 1 секунду Слишком большое значение не сработает, но даже 20000 у Валерия начало отрабатывать(на видео видно в 8:49 панель начала сползать потихоньку как и задано за 20 секунд) |
|||
juqery пользовательский интерфейс Полезные виджеты - вкладки | + 12 | ||
(li>a)*3 + Tab при запущенном Эммете даст три заготовки для закладок если по идентификатору обращение то диез или решетка, если по классу - то точкой начинай div*3 + Tab Эммет создаст три заготовки для блоков див Если что-то не работает - проверь, не стоит ли инициализация объекта после задания его параметров - сначала объявление, затем строки с деталями, иначе не сработает |
|||
juqery пользовательский интерфейс Полезные виджеты - календарь | + 11 | ||
$("#dtr").datepicker(); без параметров при нажатии на окно с идентификатором dtr возвращает целый календарь! массив monthNames в параметрах позволяет заменить дефолтные имена месяцев dayNamesMin меняет дни недели firstDay решает проблему разницы первого дня недели в разных странах в dateFormat указываем нужный нам формат вывода даты Для SQL, к примеру, актуален вид даты yyyy-mm-dd |
|||
juqery пользовательский интерфейс Параметры перемещения | + 11 | ||
параметр cursor:"grab" для функци draggable меняет стрелку курсора на руку с пальцем axis:"y" ограничивает зону действия по вертикали, икс - по горизонтали helper:"clone" создает под нажатой ЛКМ дубликат обЪекта helper: позволяет порождать и выполнение function с параметрами (event){ где можно указывать свойства объекта при возникновении события в скобках |
|||
juqery пользовательский интерфейс Перемещение блока | + 8 | ||
$ - в РНР с этого начинается переменная $ - в джаваскрипте с этого начинается код jQuery Диез # в каскадных таблицах стилей обращается по идентификатору id Не сразу догадался, что таскать надо не за кнопку, а за поле справа от неё |
|||
juqery пользовательский интерфейс Подключение jquery и jquery_ui | + 7 | ||
анимации и эффектов, а также набор виджетов подключаются с помощью скрипта jquery-ui.min.js Стили как нетрудно догадаться подтягиваются линком на jquery-ui.css Скачать с первого раза архив с официального сайта, возвращал ошибку на сервере и просил пробовать качать через фью минитс |
|||
juqery пользовательский интерфейс Программа на javascript | + 7 | ||
папка js с файлом main.js внутри оной, должны располагаться в папке проекта (если это не соблюдено, скрипт не будет найден в том виде как мы его указали) У браузера не должны быть в настройках заблокированы всплывающие окна - пришлось с этим повозиться И главное - вызывать надо функцию, не переменную в ней (поскольку имена похожи у функции и переменной у меня была путаница, с которой пришлось разобраться как повар с картошкой) |
|||
juqery пользовательский интерфейс Создание проекта | + 9 | ||
Старину Эммета нашел без затруднений, брэкетс скачался и встал как литой ) Отображение изменений происходит лишь после контрол + S Помню, с помощью Brackets нам удавалось создавать прелестнейшие сайты, оттого и не затягивал с прохождением урока! Спасибо за новый стартап и удачи в написании новой сотни уроков! |
|||
Доска объявлений Пользователи и роли - фильтры контроля доступа ACF - фильтруем всё | + 7 | ||
функция behaviours через указание имен функций этого же класса позволяет перекрывать или предоставлять доступ по ролям Собака - зарегистрированные пользователи, знак вопроса - все прохожие По аналогии продолжил перекрывать доступ в контроллерах, начиная с фотоконтроллера |
|||
Доска объявлений Пользователи и роли - фильтры контроля доступа ACF - теория и эксперименты | + 10 | ||
роли, помеченные @ - это зарегистрированные пользователи, помеченные знаком вопроса ? относятся ко всем юзерам поголовно behaviours - как я помню на заморском языке не что иное как поведения, задают эти поведения правила работы сайта с пользователем Добавив через запятую в 28-ой и 31-ой строках иллюстрации номер ноль строковую ссылку на расширенный поиск мы получаем переадресацию незарегистрированного пользователя на форму залогинивания после нажатия выпадающего меню "Расширенный поиск" |
|||
Доска объявлений Пользователи и роли - планирование ролевой модели | + 9 | ||
как вариант, можно предусмотреть роль забаненного пользователя Продолжить рассмотрение темы можно с учетом активности как подтвержденных продавцов, так и учеток, замеченных в мошеннических операциях |
|||
Доска объявлений Работа с документацией Yii2 | + 8 | ||
добавил хеширование пароля пользователя bcrypt через функцию crypt для генерации и проверки пароля Пишут, что алгоритмы md5 или sha1 уже недостаточно защищённые, что требует дополнительных мер безопасности Дополнительно подправил отображение карточки объявления (там где картинка накладывается на текст справа) - надо освежить в памяти бутстрап, жестко привязывать размер изображения в угоду лишь своему монитору - это половинчатое недорешение |
|||
Доска объявлений Расширенный поиск - генератор поиска - показать, что нужно | + 9 | ||
для актуализации состояния радиокнопки после возвращения результата расширенного поиска применили дополнительную переменную, которая принимает текущее состояние оператором в свичкейсе, это состояние и присваивается радиокнопке в представлении для пользователя, дабы не вводить его в заблужение В представлении \views\site\advsearch.php применили тернарный оператор для выбора состояния радиокнопки Запись ($adv->radio_=="1" ? true : false) читаем как "если поле радио в переменной адэвэ эквивалентно единице то ИСТИНА (кнопка активна) По аналогии добавили правила установки активной кнопки в контроллере \controllers\SiteController.php которые затем визуализировали пользователю в представлении \views\site\advsearch.php |
|||
Доска объявлений Обратная связь - свой сайт объявлений | + 7 | ||
1. Как Вы назовете свой сайт объявлений? Название пока напрашивается для сайта "Чижик" в память о бывшей барахолке в Чижах (район города Кирова) во времена СССР. Сейчас никаких барахолок там давно уже нет, естественно ибо времена и нравы изменились. Если центральный рынок и сохранился, то такие как барахолка в Чижах, она лишь в памяти народной. 2. Какое доменное имя в сети у него будет? На первое время для работы в режиме тестирования и дальнейшего углубления в тему доменное имя будет как можно более кратким. В бытность мою сисадмином в одном банке с названием из тринадцати букв у меня был почтовый адрес, который мне крайне нравился своей краткостью. За давностью лет, думаю никакой тайны не открою и прежних инструкций не нарушу, если назову его без домена первого уровня. Адрес был такой da@wscb. и так далее. Прелесть короткого доменного имени в простоте запоминания. Просто в телефонном разговоре передать собеседнику имя из двух литер вместо нагромождения из "как доллар", низкое подчеркивание, йот как кочерга и прочих сложностей. Чем проще имя, тем легче запоминание. Вэка точка ком или fb.com лучшие тому подтверждения. В идеале я возьму доменное имя da.ru Но, понятно, что это дорого и пока нереально ) Посмотрел этот самый http://da.ru/ на предмет занятости - там уже продаваны доменных имен сидят ))) 3. Почему Вы так назвали свой сайт Название должно быть простым и запоминающимся. У имени есть предыстория, есть от чего оттолкнуться. Плюс для зацепки вспоминается песенка про чижика-пыжика, которому даже памятники есть в Ленинграде ) |
|||
Доска объявлений Расширенный поиск - генератор поиска - три вида цены и один POST | + 7 | ||
Если нужна новая переменная, инициализируй (объявляй её), записывай в рулез, и лишь затем используй Радиокнопки прописаны здесь - \views\site\advsearch.php В ветвлении свич-кейс не забываем ставить брейки, иначе помимо нужного, будет выполнено и дальее по строкам ниже |
|||
Доска объявлений Расширенный поиск - генератор поиска - ограничивающие даты | + 6 | ||
карточка объявления создается здесь - \views\site\bulletin.php Конкатенация в РНР не плюс равно, а точка - не забывай особенности персонал хоум пейджа Хочешь посмотреть, что возвращает сиквел-запрос, подправь имя переменной, чтобы вернулась ошибка - там и найдешь текст запроса для контроля его правильности создания |
|||
Доска объявлений Расширенный поиск - генератор поиска - возвращение к SQL-запросу | + 7 | ||
findBySql() позволяет возвращать выборку по правилам SQL .= или точка и равно - это оператор конкатенации добавляющий к переменной то, что справа от знака равно Создание запроса выполнено конкатенацией условий поиска в сиквел-запрос в случае если поле окажется не пустым |
|||
Доска объявлений Расширенный поиск - результаты выборки - частичное представление | + 5 | ||
<?=$this->render('выведет любую вьюшку имеющуюся в проекте по имени Запись <?php for ($x=1; $x<4; $x++) { ?> <?=$this->render('test',['x'=>$x]) ?> <? } ?> вернет циклом три строки с содержимым вьюшки с именем тест и конкатенирует к её содержимому переменную х три раза по возрастанию |
|||
Доска объявлений Расширенный поиск - дата публикации - виджет извне | + 9 | ||
впервые понюхал композер ) Сие есть установщик пакетов для РНР и фреймворков Плясать надо от файла в нетбинсе D:\OSPanel\domains\bulletin\composer.json В раздел "require" через запятую добавляем ссылку на наш новый виджет Следующим шагом - в консоль проекта и вводим команду composer update - будет закачка обновлений и установка нового, если указал |
|||
Доска объявлений Расширенный поиск - цена - невидимые поля | + 10 | ||
добавив поля в инициализацию переменных не забудь дописать их и в рулез Великая сила скрыта в стилях и классах - задал по имени класса display:none; и после обновления страницы элементы этого класса есть, но их не видно, как сусликов .ready функция отрабатывает по загрузке страницы .on('click' функция выполняется по клику ЛКМ |
|||
Доска объявлений Расширенный поиск - цена - выбор варианта | + 6 | ||
переключение подсветки текущей кнопки (аналог действия радиобатон) выполнили через джаваскрипт Класс прайсселект по кликувыполняет два оператора: первый удаляет класс Эктив у всех носителей класса прайсселект второй присваивает текущему прайсселекту класс Эктив Всё просто до безобразия ) Знание - сила! |
|||
Доска объявлений Расширенный поиск - дизайн текстовых полей и кнопки | + 6 | ||
при клике на меню Расширенный поиск работает функция actionAdvsearch() сайтКонтроллера где создается в переменную $advSearch новая форма отсюда D:\OSPanel\domains\bulletin\models\AdvsearchForm.php Затем в рендер через запятую добавили эту переменную в виде ассоциированного массива ключом adv и значением в виде нашей новой переменной, получающей форму ($advSearch) Кнопку создали хелперами Html::submitButton После этого посмотрел код объекта кнопка (иллюстрация номер 0) хелперы создают тот же батон типа сабмит только своими средствами. а в итоге приводят туда же |
|||
Доска объявлений Расширенный поиск - стили и форма | + 6 | ||
Валерий дал хинт: если есть косяк со стилями (цвет не тот, размер иль шрифт) беги снова по F12 курсором в виде стрелки (вверху есть в стилях) к тому объекту, который требует вмешательства, смотри его идентификатор(по классу, id) копируй или записывай и бегом в файл стилей \bulletin\web\css\site.css и там прописывай желаемый стиль для этого объекта хоть отдельным, хоть через запятую добавь к уже имеющимся Создали форму для расширенного поиска, там проинициализировали переменные и функцию описывающую типы полей и их месаджи |
|||
Доска объявлений Расширенный поиск - заготовки и план | + 6 | ||
план создал прямо в файле РНР потренировавшись в разметке HTML Не так и сложно тегами разбивать на строки, куда сложнее разбираться в переплетениях РНР кода и разметки, вот тогда внимательность не помешает, чтобы не прозевать открытые и закрытые конструкции в правильной структуре |
|||
Доска объявлений Расширенный поиск - группировка пунктов главного меню | + 5 | ||
менюхи на главной странице выполнены в виде виджета навбар через ассоциированные массивы ярлык(лейбл) => Название менюхи на пятой минуте видео очень жаль, что подсказки по поиску лишней скобки не принимаются ))) Но процесс творческий сложнее ученического, просто смотрим и учимся, как же на самом деле ищут ошибки, как идут не всегда верным путем, и тот кто не сдается ошибку находит На восьмой минуте лишняя скобка обнаружена и аннигилирована! Проблема крылась в копировании готового оператора- захватили лишний знак при копипасте Внимательность - наше всё. |
|||
Доска объявлений Глобальный поиск - ищем глобально | + 4 | ||
при наличии в Представлении ссылки на отсутствующий Контроллер, переход по такой ссылке вернёт привычный код 404 'AND' это логическое умножение(булевское) принимает ИСТИНА если верно и первое значение операнда и второе одновременно 'OR' - булево сложение, тут для ИСТИНЫ достаточно хотя бы одного из операндов |
|||
Доска объявлений Глобальный поиск - поле поиска в меню | + 5 | ||
видишь ошибку - чеши в F12 браузера и смотри стили - в имени класса ищи адрес, толкай его в файл стилей (у нас это D:\OSPanel\domains\bulletin\web\css\site.css) и задавай этому классу те свойства, что считаешь правильными Открывая ActiveForm() бегином не забывай и закрывать оную эндом Параметры открытия указывай в круглых скобках не забыв ещё и квадратные |
|||
Доска объявлений Связи объявлений и тем - темы, которых не будет | + 6 | ||
добавил в представлении addtheme гиперссылку href="/bulletins/deletetheme... - иди в контроллер делать активацию работы этой гиперссылки Контроллер выбери BulletinController и там добавляй одноименное действие (функцию) с предшествующим словом экшн в названии Контроллер таким образом оживляет вьюшку приказывая системе что предпринять при нажатии пользователя на эту гиперссылку В функции контроллера ищем тему по идентификатору, обязательно одну, не массивом, применяем к ней функцию удаления и редиректим на ту же страницу с текущей темой Конкатенация в РНР указывается точкой - не забывай тчк между строкой и переменной |
|||
Доска объявлений Связи объявлений и тем - темы, которых не было | + 7 | ||
удаление из выпадающего меню уже добавленных тем к текущему объявлению выполнили так: В модели в функции получения листа тем в переменную записали все темы, у которых идентификатор приходит из параметров функции Если не нужны все поля, а только одно, то применяется селект Если требуется псевдоним или алиас, поле можно переименовывать через AS так: 'themes_id as id' Выборка по ->where(['in','id',$tb]) применяет три параметра через запятую - "включительно", "по какому полю", "имя переменной-источника" Обратное включительному будет "not in" |
|||
Доска объявлений Связи объявлений и тем - добавление новой темы | + 6 | ||
После создания модели с рулезами и атрибутами не забываем создать экземпляр этой модели в контроллере В контроллере в функции добавления темы создали экземпляр того файла и передали его в рендер для представления пользователю Ошибка Class 'app\models\Bulletins' not found говорит о том, что в модели \models\ThemesbulletinsRecord.php неверно указаны в рулезах целевые классы |
|||
Доска объявлений Связи объявлений и тем - заготовка | + 8 | ||
открывая теги не забывай их закрывать (я отключил автозаполнение в нетбинсе, и за этим приходится следить самому) Добавив кнопку в представление, идем делать модель с правилами для этой кнопки Заодно в контроллере \controllers\BulletinsController.php создаем функцию по обработке нажатия кнопки "Темы" Invalid argument supplied for foreach() - такая ошибка возвращается, если в фориче накалякал <?php foreach ($currBulletins->themesbulletins as $tb) вместо <?php foreach ($currBulletin->themesbulletins as $tb) |
|||
Доска объявлений Разделы (темы) - администрирование - рефакторинг и валидация | + 7 | ||
перенося операторы в другой файл обращайся к ним через название функции, в которую их там поместил Оператор либо сразу возвращай ритёрном, либо помещай в переменную, которую не забудь в конце функции вернуть Проверка на обязательное заполнение добавлена в модели ThemesForm.php в функции rules() |
|||
Доска объявлений Разделы (темы) - администрирование - сохранение темы | + 5 | ||
сохранение новой добавленной темы выполняется в ThemesController функции actionAdd В указанной функции после двух проверок(на метод пост и на валидность ввода) выполняются четыре оператора: в переменную инициализируется новый объект ThemesRecord туда же записывается текущий ввод темы сохраняется и редиректится на новый экран Поскольку в модели ThemesRecord ещё не было функции setNewRecord - добавили и её Редактирование темы выполняется там же, в actionAdd |
|||
Доска объявлений Разделы (темы) - администрирование - волшебный выпадающий список | + 5 | ||
через переменную $items загрузили в выпадающее меню поля id и title из ThemesRecord ArrayHelper мапит в переменную $items содержимое всех записей из модели ThemesRecord ЗЫ Утром в газете - вечером в куплете. Только сегодня читая "РНР7 в подлиннике" про селекты и опшны, вечером это же вижу в уроке! Теория подкрепляется практикой. Спасибо! |
|||
Доска объявлений Разделы (темы) - администрирование - "темное" представление | + 8 | ||
заголовок в форме добавления и редактирования тем выполнили бутстрапом и хлебными крошками Чтобы использовать переменные в представлении, не забудь передать их из контроллера \controllers\ThemesController.php Передача полей делается в функции function actionAdd контроллера тем (иллюстрация номер ноль) Заметил что CTRL+S сохраняет лишь в открытом окне, нажатие же на дискетку сохраняет изменения во всех окнах нетбинса |
|||
Доска объявлений Разделы (темы) - исправление подсчета и отображение текущей темы | + 7 | ||
Степан и Ефим - самые активные курсанты на курсе "Доска объявлений" Степан обнаружил ошибку, Ефим локализовал Суть ошибки - при отключении просмотра объявления (перевод его в статус редактируемого черновика без публикации) в кнопке темы это объявление не минусуется Получается, пользователю сообщают о всех объявлениях, показывая не все из них Подсчет вызывается здесь \models\ThemesRecord.php Победили проблему вызвав функцию счета для другого метода, где темы с опубликованными топиками (getBullCurrTheme()) - иллюстрация номер ноль Попрощались с "Добрый день, tolya34!" в банере в угоду функциональности - вывели на его месте название выбранной темы Банер удалили здесь - \views\layouts\main.php Новый вывод создали флешкой в контроллере сайта (иллюстрация 1) |
|||
Доска объявлений Разделы (темы) - администрирование - Обычный ThemesForm | + 5 | ||
в представлении domains\bulletin\views\layouts\main.php если из оператора 'url'=>['/themes/index'], убрать квадратные скобки, то серая подсветка активного раздела деактивируется http://bull.local/themes/add возвращает 404, такой страницы ещё не создавали, надо вьюшку, контроллер и модель Контроллер в файле \controllers\BulletinsController.php - это новая функция actionAdd Представление - это будет \bulletin\views\themes\add.php для вывода на экран После создания двух вышеописанных объектов уде можно открывать страничку добавления темы (иллюстрация номер 0) Дальнейшее движение - создание правил для добавления темы (создаем модель с правилами - \models\ThemesForm.php ) В модели прописали правила (рулез) и атрибуты В спешке вместо фигурных скобок открывая и закрывая функцию, поставил квадратные - поправил сначала на круглые, снова не то )) Лишь увидев от меня фигурные скобки, Нетбинс угомонился |
|||
Доска объявлений Разделы (темы) - администрирование - удаление разделов и чистка связей | + 5 | ||
при удалении на сайте темы, не забывай удалять кроме экранных форм ещё и связи с таблицей setDeleteThemesBullRecord() удаляет тему в БД $theme->delete(); удаляет экранные формы сайта |
|||
Доска объявлений Разделы (темы) - администрирование - подтверждение удаления | + 6 | ||
ссылки от представления ведут в Контроллер - там этим ссылкам соответствуют одноименные функции с предваряющим словом action в названии Если действие в контроллере выполняется над одной записью, то не забываем в эту функцию передать аргументом переменную с идентификатором Чтобы добраться до предыдущей страницы сайта используй конструкцию \Yii::$app->request->referrer; помещая её в переменную |
|||
Доска объявлений Разделы (темы) - администрирование - все темы в таблицу | + 6 | ||
Валерий Владимирович увеличил шрифт - стало удобнее считывать ввод с экрана Список тем для представления предоставляет ThemesController.php Полученный список в виде переменной (которые у нас без доллара не указываются ни при каких обстоятельствах) передается в рендер следующим аргументом, после индекса в квадратных скобках в виде поле =>имя переменной Указав тейбл-хавер через даблъю - думаю, чего это у меня полет над строками не подсвечивается - посмотрел, исправил на латинскую ви - вуаля, полет нормальный! |
|||
Доска объявлений Разделы (темы) - администрирование - теория и заготовки | + 4 | ||
администрирование сайта предоставляется пользователям по ролям, простой зарегистрированный пользователь не должен иметь доступа ко всему функционалу на сайте Создав во вьюшке новую кнопку не забудь создать для нее свой Контроллер Ошибка Class 'app\controllers\Controller' not found говорит об отсутствии подключения библиотек (use Yii и так далее) - иллюстрация 0 |
|||
Доска объявлений Разделы (темы) - полезные переходы | + 7 | ||
в гиперссылку кнопки передается переменная $prev_url Переменная создается в контроллере базовыми функциями Yii::$app->request->referrer; Кнопки тем переделали из кнопок баттон в блок а с добавлением гиперссылки на адрес /site/index?id=<?=$thb->themes->id?> |
|||
Доска объявлений Разделы (темы) - тематические выборки | + 7 | ||
гиперссылка представления должна обращаться к контроллеру в URL после знака вопроса указываются параметры Присвоение = один знак равно Эквивалентность == два знака равно array_push() - функция добавления элемента массива Лидирующий слеш обязан быть в составном URL |
|||
Доска объявлений Разделы (темы) - меню тематик | + 7 | ||
в роли коровы для темы Детям у меня оказался кошак - он ближе по сущности к животным Функция getThemesBullCount() из модели вызывается успешно и счетчик при добавлении связей в таблицу themesbulletins успешно инкрементируется |
|||
Доска объявлений Разделы (темы) - вывод тем в объявлении | + 7 | ||
<h2>Темы</h2> задает средний заголовок с текстом Темы В админке не надо второй раз кликать вперед )) Иначе запись добавляется дважды и кнопок с темой становится по количеству кликов - можно хоть весь экран кнопками замостить. Не сразу понял, отчего сначала кнопка с темой не появлялась, причина была в том, что старому объявлению делал связь, не тому на которое смотрел, а затем найдя нужное кликал по два раза - смотрю - кнопок с темой две. Решение - просто удалить повторную запись в админке |
|||
Доска объявлений Обратная связь - мозговой штурм - внештатные ситуации | + 7 | ||
создав архив папки D:\OSPanel\domains\bulletin\ ты не сохранишь тем самым БД - она хранится не там d:/ospanel/userdata/php_upload/ - место по умолчанию куда упадет дамп БД, но лишь после принудительного экспорта, ИЛИ куда укажешь в диалоге сохранения (результат у нас получился под именем bulletinsdb.sql ) SQLSTATE[HY000] [1049] Unknown database 'bulletinsdb' - такое увидишь, если полетела БД Для восстановления БД создай пустую базу под тем же именем и импортируй в неё таблицы из предварительно сохраненного дампа 1) ...проблемы при просмотре главной страницы и объявлений Аватар не сохраняет пропорции высоты к ширине, причем, те, что взяты из интернета ведут себя по разному - кошак обрезан, но не исказился, а девушка с коляской сжата по горизонтали, фото моего авто взятое с экшн-камеры также сжато по горизонтали. Причины пока не нашел (иллюстрация номер ноль) Когда делал скриншот, увеличил масштаб до 125% - коляска исправилась в пропорциях, а фото автомобиля нет 2) ...проблемы при добавлении объявлений? ...корректно ли... объявление, если ... будет HTML-код или JS скрипт? а если в тексте объявления будет php-код? Объявления добавил три штуки с внесением между привет и медвед кода HTML, JS, PHP. Добавление и публикация без проблем, вкрапления джаваскрипт и HTML попали в текст объявления, РНР код вообще никак не повлиял на текст объявления, но делая скриншот уменьшил масштаб - объявления идут неровно, есть пустые участки страницы между ними - выглядит неаппетитно (иллюстрация номер ноль) 3) ... о загрузке файлов изображений - сбоев не возникло 4) ...SQL-инъекции - экранирования слешей мы не делали, следовательно защиты у нас пока нет 5) ...еще ошибки - в детализации объявления (иллюстрация номер один) фото накладывается на таблицу с описанием товара к примеру здесь http://bull.local/site/view-bulletin?id=3 |
|||
Доска объявлений Разделы (темы) - миграции с внешними ключами | + 6 | ||
http://bull.local/gii/model - автогенератор моделей Результат можно проверить в нетбинсе или иной IDE Аналогично, ни в какую не хотела проявляться в дереве нетбинса ThemesRecord.php Менюшек для рефреша не нашел, так же перезапустил нетбинс - после этого модель подхватилась |
|||
Доска объявлений Разделы (темы) - немного теории | + 7 | ||
организуя связи между таблицами выделяют главную или родительскую таблицу (primary key table / master table) и зависимую, дочернюю таблицу Дочерняя таблица зависит от родительской Внешний ключ - это один или несколько столбцов из одной таблицы, являющийся ключом из другой таблицы Поле themes-id таблицы Themesbulletins будет ключеваться с полем id таблицы Themes А поле bulletins-id таблицы Themesbulletins будет связано с полем id таблицы Bulletins |
|||
Доска объявлений Главная страница - оформление - оповещения через баннер | + 5 | ||
банеры нужны для принудительного предоставления информации пользователям Та информация, которой они интересуются находится ими методом серфинга по сайту, а вот то, чего они знать не могли, но мы хотим им донести - вот для этого и будет нужен банер. Это как банеры вдоль дороги - мы едем себе по своим делам, нам Толи и Васи с их днями рождения и свадьбами неинтересны, но мы про эти события узнаем из банеров. Не злоупотребляйте банерами, коллеги! Не становитесь спамерами ))) А вот банер, который сообщает о ремонтных работах на проезжей части лучше не игнорировать - это вопрос Вашей же безопасности. ...\views\layouts\main.php - орудуй здесь, если хочешь, чтобы виджет был виден на всех страницах сайта. |
|||
Доска объявлений Главная страница - оформление - стильный логотип | + 5 | ||
http://v1.iconsearch.ru/ - масса готовых пиктограмм (иконок) D:\OSPanel\domains\bulletin\web\favicon.ico - источник пиктограммы в закладке браузера D:\OSPanel\domains\bulletin\views\layouts\main.php - путь к пиктограмме уже в окне браузера, не в закладке 7:10 видео - "...и у нас куда-то делось название" (Я вместо ctrl+F5 сделал обновление страницы просто через F5 и увидел иную картину (скриншот номер ноль) - видимо название у Валерия тоже съехало вниз из-за добавления пиктограммы) Пишу это ещё не досмотрев видео до конца, интрига сериала продолжается... Логотип также как у Степана отражается лишь на главной, на внутренних страничках вместо доски также слово home Может вопрос во времени обновления всего сайта, комп тормозит, бывает не с первого обновления вижу изменения Посмотрю, как дальше будет вести себя эта иконка. Вкладка "Статистика и отчеты" помогает хорошо - видишь кто с чем сталкивался. |
|||
Доска объявлений Главная страница - оформление - смотрим все изображения | + 8 | ||
ночами лучше работается - урок записан Валерием в половину третьего ночи 9 октября! Вот кто рано встаёт... РНР код разрывается, если внутри нужна HTML-разметка так <?php........здесь код пиашпи {?> тут разметка страницы <? }?> - так закрыли блок Ховер прекрасен - обновляется картинка даже если окно неактивно (лежит под другим как на иллюстрации за номером 1) |
|||
Доска объявлений Главная страница - оформление - ловим цвет пикселя | + 7 | ||
цвета по палитре #FFF - черный #000 - белый пипетка онлайн гуглится Если не годится встроенная в Мозиллу пипетка, можно воспользоваться онлайн анализаторами цвета, тоже прекрасно работают Понять, зачем в разделе "Самостоятельная работа" пункты 3. 4. 5. ведь они пустые! |
|||
Доска объявлений Главная страница - оформление - дизайн элементов базовой страницы | + 6 | ||
D:\OSPanel\domains\bulletin\views\layouts\main.php - основная вьюха, отвечающая за хидер и футер NavBar::begin - хелпер, создающий строку в меню navbar-inverse дает черный фон с белым текстом D:\OSPanel\domains\bulletin\assets\AppAsset.php - базовые параметры, откуда грузится проект, где подтягиваются стили и где лежит джаваскрипт Каскадные таблицы стилей требуют, чтобы стиль по идентификатору начинался с диеза #bulltopmenu Стили по классам начинаем с точки |
|||
Доска объявлений Главная страница - оформление - дизайн объявления | + 5 | ||
после перенесения блока информации <?=$bulletin->info?> в отдельный див убрали у него блок параграфа за ненадобностью <span class="badge"> дает на странице прекрасный овал фоном В таблице обязаны быть <tr> - тейблроуы) То есть строки и тейблдаты - <td> в которые уже и помещаем информацию таблицы |
|||
Доска объявлений Главная страница - подробности - расширяя информацию | + 4 | ||
функция safeDown() в теле миграции нужня для отката неудачного изменения обратно либо просто информирования об ошибке Второй фильтр на длину пояснения к объявлению стоял здесь D:\OSPanel\domains\bulletin\models\BulletinsRecord.php В методе рулез грохнули этот оператор , 'max' => 255 ибо он ограничивал длину текста даже для ЛОНГТЕКСТА не более 255 символов $this->info= nl2br($bull->info); исправляет форматирование абзаца текста |
|||
Доска объявлений Главная страница - подробности - больше подробностей | + 4 | ||
тег источника картинки не требует обязательного закрытия, судя по финалу видео <img src= у Валерия в конце видео без закрывающего > отрабатывает на ура У себя закрыл этот тег, на скриншотах видно, и тоже отрабатывает без вопросов Видимо не всякий тег требует непременного закрывающего > |
|||
Доска объявлений Главная страница - подробности - ссылки и заготовка представлени | + 7 | ||
из представления D:\OSPanel\domains\bulletin\views\site\index.php сделали ссылку на контроллер для оживления нашего ховера "Подробнее" Применяй в гиперссылке на индексе дефис между словами, которые в Контроллере у тебя с большой буквы в названии вызываемой функции |
|||
Доска объявлений Изображение - удаление - удаление файла и записи | + 6 | ||
создав в аяксе url:"setdelete", не забывай в фотоконтроллере сделать функцию экшнСетделет В который раз пишу для себя - следи за именами классов и переменных, не забывай давать доллары долларовладельцам, а переменным в РНР - значки доллара! Иначе ничего у тебя, дружище, работать просто не будет! Проверено электроникой ) Многострочный комментарий в нетбинсе начинай с /* и заканчивай так */ Следующая забава, возможно подстерегающая не только меня, заключается в моменте видеоурока 9 минута 35 секунд - когда мы алертом получаем путь до переменной возвращая $photoRec->link; В браузере Мозилла Файрфокс возвращается ошибка, а в ГуглХроме - прекрасно возвращается путь, как у Валерия! (иллюстрация к уроку номер 0) Если кликнуть по трилистнику в браузере внизу справа, то открывается окно дебага http://bull.local/debug/default/index Тут вся подноготная -читай да анализируй на славу |
|||
Доска объявлений Изображение - удаление - ни шагу без подтверждения! | + 7 | ||
реализовали проверку удаления с алертами сообщающими о выборе |
|||
Доска объявлений Изображение - аватарка - как стать главной | + 6 | ||
удалили из проекта повторяющиеся фото - искать проще по добавленному времени создания в миллисекундах которое - выбираем из одинаковых начинающихся названий фото то, у которого время миллисекунд меньше - фото было добавлено раньше и грохаем его Кнопке "Сделать главной" добавили в свойства класс, идентификатор фото и идентификатор текущего объявления Вызов функции в джаваскрипте выполняем по классу - имя класса указываем с лидирующей точкой |
|||
Доска объявлений Изображение - аватарка - работа над ошибками связей | + 6 | ||
в ФотоКонтроллер добавили проверку на авторизацию пользователя и если не регистрировался - изволь, заполняй формуляр) |
|||
Доска объявлений Изображение - аватарка - вывод на главной странице | + 6 | ||
чтобы отобразить аватар объявления на главной странице - поставили тестом тройку идентификатор фото в поле аватар таблицы объявлений в строке о продаже авто - добавили в модели объявлений в метод рулз поле аватар - в лейблы также добавили отсутсвующий аватар Вызов метода(функции) отличается от вызова поля наличием круглых скобок после имени метода(функции) |
|||
Доска объявлений Изображение - JS - извлечение методом ajax | + 4 | ||
перезагрузка страницы оператором $('body').load('/photo/index') приводит к отключению функционала кнопки записи комментария в базу замена его на оператор location.reload(); приводит к автоматическому обновлению страницы |
|||
Доска объявлений Изображение - JS - сохранение информации в базу | + 4 | ||
ctrl+F5 - обновление страницы с подчисткой кэша Значения переменных в массивах указываются через двоеточие Видишь двоеточие в массиве - после него значение той переменной, имя которой указано до двоеточия В сотый раз себе напишу - перед именами переменных РНР не забывай доллары вписывать, а то переменные работать без долларов отказываются |
|||
Доска объявлений Изображение - JS - глобализация | + 4 | ||
писал-писал весь урок комментарии, нажал эф5 и всё коту под хвост по уроку всё прошло успешно |
|||
Доска объявлений Изображение - JS - немного теории и пижонства | + 4 | ||
изначально javaScript писался для браузера NetScape Сервис -> Параметры -> Редактор -> "Автозавершение кода" и "Подсказки" - место для посмотреть, если достали нетбинсовские подсказки вечно всплывающие и накидывающие не то что надо Блок джаваскрипта внутрь блока РНР вставляем через такое обозначение: $script = <<< JS ... JS; При указании обращения к объекту по идентификатору не забывай перед именем указать диез # |
|||
Доска объявлений Изображение - управление картинками | + 5 | ||
отбутстрапили форму добавления фото (я всё прилично выражаюсь))) <div> - контейнер для размещения объектов на странице поблочно data-toggle - атрибут переключающий данные, к примеру выпадающее меню получится, если присвоить ему значение дропдаун <span> очень похож на элемент <div>, но <div> является блочным элементом, в то время как <span> является строчным <ul> - маркированный список, у которого каждый элемент должен начинаться с тега <li>. Если к тегу <ul> применяется таблица стилей, то элементы <li> наследуют эти свойства <li> - отдельный элемент списка <a> - предназначен для создания ссылок |
|||
Доска объявлений Изображение - сохранение пути в базу | + 5 | ||
грохнули добавленные на позапрошлом уроке фото из проекта здесь D:\OSPanel\domains\bulletin\web\images\DSC06577_1578419736.jpg и т.д Для отображения аватара добавленной картинки требуется лидирующий слеш в указании источника картинки <img src="/<?=$photo_->link?>" alt="no_photo" > Помимо добавления фото на сайте и в проекте, записи о добавленных фото заносятся в БД bulletins |
|||
Доска объявлений ПРОМЕЖУТОЧНЫЙ ВИДЕО ОБЗОР | + 8 | ||
работа на разных компах приводит к неожиданным результатам Чему научился за отчётный период имею доложить следующее: Код РНР встраивается в документ HTML и наоборот. О границах: начало кода РНР можно распознать по слитному сочетанию пяти знаков <?php то есть меньше, знак вопроса и три малые литеры php Окончание кода РНР может отсутствовать, но если начинается блок HTML-разметки, то обязательно встретится слитное (без пробелов) сочетание двух знаков "вопроса" и "больше" вот так: ?> YII(yes it is) использует концепцию MVC Модель рулит правилами View - видит пользователь в браузере Контроллер передает правила от Модели к Представлению Работа крайне аккуратно должна выполняться - один лишний пробел или незакрытая скобка, не тот регистр в имени переменной или класса и всё - код нерабочий, страница не отображается Но есть плюшка - встроенный дебаггер, подсказывающий в каком файле искать и на какую строку обратить внимание, выводимый вместо сбойной страницы после обновления Нравится краткость видеоуроков, при их продолжительности удобнее подбирать время для занятий Сейчас выходные, но они не вечны и скоро краткость Валерия будет на вес золота с приходом будней, когда звонит звонок и надо всё бросить и лететь куда скажут ) В проект хочу добавить хостинг и покупку домена, в прошлом году такое делал, надо повторить и поиграть с боевым сайтом, составить конкуренцию Авито ))) Догнать и перегнать, как учила нас партия))) Продолжение такого яркого курса конечно же нужно, интересно посмотреть на реализацию способностей коллег Всем удачи и сбычи мечт в области интеллектуального роста! Звук пришлось накладывать в ютубе - ноут, что делает сейчас работы по курсу с виндой 32 бита, микрофон в системе отсутствует, записал на нём видеоряд, аудио наложил в редакторе ютуба Мак, где со звуком всё в порядке, пока не заборол миграции, оттого видео не с него |
|||
Доска объявлений Изображение - загрузка файла на сайт | + 8 | ||
научили класс PhotoForm загружать в проект картинку time() возвращает текущее количество миллисекунд от создания ОС Юникс Ошибка добавления фото на 10-ой минуте добивается до победы в 16:24, помимо подсказки Степана, она тоже помогла и обнадежила, последней гранатой в окоп врага, простите, ошибки кода, было удаление слеша перед images/ в переменной 'imagePath' в файле конфига D:\OSPanel\domains\bulletin\config\params.php |
|||
Доска объявлений Изображение - загрузочное представление | + 7 | ||
чтобы контроллер мог оперировать моделью фотоФорм и фотоРекорд - пишем юзинги про них в контроллере Выбор картинки реализовали блоком РНР fileInput() - определяет файл с изображением textarea() - создает текстовое поле для комментария к изображению submitButton() с аргументами рисует кнопку подтверждения добавляемой картинки |
|||
Доска объявлений Изображения - модель формы | + 6 | ||
юзинги указываются после неймспейса(пространства имен) Если при создании РНР-файла в контексте выбирать не просто файл РНР, а РНР-класс, в заготовке сразу появляется шапка из пространства имен и шаблон класса Для картинок будут использоваться три поля - имя $file, путь $link и пояснение $info |
|||
Доска объявлений Изображения - где живут картинки | + 5 | ||
определили папку для фотоиллюстраций к объявлениям D:\OSPanel\domains\bulletin\web\images Место для хранения глобальных параметров здесь: D:\OSPanel\domains\bulletin\config\params.php В контроллере создали переменные, принимающие данные о пути и имени картинки из параметров и передали их модели через рендер В индексе после этого в блоке РНР путь стал таким - '<?=$path.$no_photo?>' Коротко и удобно |
|||
Доска объявлений Работаем над ошибками - YII2 в помощь | + 5 | ||
отладчик ошибок включается здесь D:\OSPanel\domains\bulletin\web\index.php А) syntax error, unexpected '->' (T_OBJECT_OPERATOR) такое сообщение с указанием на имя файла возвращается когда перед this забудешь поставить знак $ Перед переменной $this не пропустишь знак начала имени переменной, в РНР это знак доллара и ошибка устранена (нулевая иллюстрация - эта ошибка и возврат фреймворка о ней Б) В следующей иллюстрации мы видим ошибку закравшегося пробела в строке 13 <? php - если между знаком вопроса и тремя литерами php окажется пробел - код не парсится и возвращается ошибка Решение - не допускать пробел при открытии блока РНР, вот так правильно - <?php скриншот одной из ошибок и ее анализ (что за ошибка, в какой строке видна, из-за чего она, как исправили) |
|||
Доска объявлений Изображения - работа с моделью | + 5 | ||
['bull_id'=>'id'] эта запись значит, что ассоциированный ключ 'bull_id' принимает значение => этого аргумента 'id' |
|||
Доска объявлений Изображения - снова MVC | + 6 | ||
модель создаем с помощью браузерного мастера новых моделей /gii/model В результате его работы создается файл models\PhotoRecord.php Важно: один-ко-многим == одно объявление может включать много фото Но, одно фото не может принадлежать многим объявлениям! Реализация в коде выглядит так: $this->hasMany(PhotoRecord::classname, ['bull_id','id']); Для перехода по ссылке в проекте должен быть в наличии соответствующий контроллер $this->render('index'); А представление(вьюшка) уже займется выведением всего вышесозданного в браузер |
|||
Доска объявлений Изображения - микс из миграций | + 5 | ||
миграцией создали новую таблицу --fields=avatar:integer в качестве параметра консоли для команды миграции создает заготовку добавления поля в имеющейся таблице yii migrate без дополнительных параметров стартует ранее подготовленные миграции в работу |
|||
Доска объявлений Объявление: запрос - в функцию & кнопка для изображений | + 7 | ||
если в сигнатуре функции аргумент уже указан со значением по умолчанию, то при вызове этой функции для случая значения по умолчанию, аргумент в круглые скобки не пиши - излишне Выполняя действия над данными в функции, не забывай присваивать результат обработки какой-либо переменной и в конце возвращай её из функции, иначе результат обработки повиснет в воздухе Можно и сразу возвращать ритёрном, без переменной, если не ошибаюсь, по аналогии с Джавой |
|||
Доска объявлений Объявление - рефакторинг редактирования | + 6 | ||
способ отключения функции по умолчанию - присвоить переменной отрицательное значение(из разряда невозможных в нормальной работе кода)- вариант -1 равнозначен отключению по умолчанию при этом значении работы функции до присвоения ей принудительно действительно актуального значения идентификатора Добавили ветвление в функцию actionAddbulletin - в зависимости от статуса и идентификатора выполняются разные действия над выбранным объявлением |
|||
Доска объявлений Объявление - статусный рефакторинг | + 6 | ||
рефакторинг актуален и в РНР Выбор варианта выполнили ветвлением ифами-элзами с передачей ключевого аргумента в метод(указали его вторым аргументом в сигнатуре) Теперь вместо повторяющегося кода в функциях экшенов всего лишь меняли статус выбирая объект по идентификатору и применяя ему значение в одинарных апострофах setStatus($id, 'public'); - вызываемому методу передаются здесь два аргумента в скобках, а именно переменная(в РНР они пишутся со знака доллара обязательно) и значение(значения указываются в одинарных кавычках или апострофах) |
|||
Доска объявлений Объявление - скрыть нельзя удалить | + 7 | ||
D:\OSPanel\domains\bulletin\views\bulletins\index.php - представление со списком объявлений для публикации, редактирования и удаления Добавили функционал удаления и восстановления объявлений |
|||
Доска объявлений Объявление - публикация на главной странице | + 7 | ||
D:\OSPanel\domains\bulletin\views\site\index.php - это представление стартовой страницы col-sm-6 это колСмолл6(база равна двенадцати, значит если стоит такой класс для смолл устройства(планшетики), то колонок будет у них две) col-md-4 - при базе 12 будет три колонки для средних устройств типа небольших мониторов col-lg-3 - для лардж скринов (самые большие мониторы) 12\3=4колонки Всё вышеописанное про колэсэм, эмдэ, и элгэ - это про Бутстрап для резиновости страниц <p>Информация</p> - пэ это параграф https://placeholder.com/ - сервис предоставляющий готовые заглушки изображений на сайт |
|||
Доска объявлений Объявление - всё на публику | + 5 | ||
для публикации находится одна запись по id, выполняются функции setPublic(); и save(); а затем перекидывает на /bulletins/index |
|||
Доска объявлений Объявление - список | + 3 | ||
сохранение в БД != наличию записи на сайте, об этом надо позаботиться отдельно Гостю не дозволено будет добавлять объявления, в этом случае перенаправляем его на страницу авторизации <?php { ?> затем может быть куча строк с html-разметкой а затем где-то ниже будет так <? } ?> С непривычки дико выглядит и сначала сбивает с толку |
|||
Доска объявлений Объявление - сохранение в черновик | + 4 | ||
в контроллере объявлений добавили проверку на метод отправки нового объявления post Запись в БД про дом Гусляра добавилась - счастье в сердце почувствовал )) |
|||
Доска объявлений Объявление - форма добавления объявлений | + 4 | ||
Format в контекстном меню выравнивает весь открытый файл по правилам форматирования разметки для удобства чтения В контейнеры див передаётся переменная форм как поле с атрибутами модели и её поля с выводом в текстовое окно ввода |
|||
Доска объявлений Объявление - поля для пользовательских форм | + 3 | ||
массивами задали новые поля в форме создания объявления главное - не запутаться в квадратных скобках и открывая их, не забывать закрывать |
|||
Доска объявлений Объявление - ограничение доступа | + 3 | ||
чтобы неавторизованный пользователь не создавал объявлений сделали в контроллере оператор редиректа на страницу авторизации для юзеров которые isGuest tr == table row строка таблицы td == table data данные таблицы |
|||
Доска объявлений Объявление - функциональный дизайн страницы | + 4 | ||
статусы объявлений предусмотрены в трех видах - черновик, опубликованное и удаленное Оператор hover позволяет применять к объекту вебдизайна свойство(какое привяжешь) которое активируется при наведении на него указателя мыши (ховеркрафт - по великобритански это вертолёт, как бы мышь пролетает над тем объектом и отрабатывает действие, которое ты привязал к этому событию ховера) |
|||
Доска объявлений Объявления - контроллер, представление и много записей | + 4 | ||
один пользователь может создать много объявлений, но одно объявление может создать лишь один пользователь, не двое и не трое Один ко многим делается в D:\OSPanel\domains\bulletin\models\UserRecord.php методом хэзМэни Снова запнулся за регистры при наименовании методов - public function actionIndex() - не так регистры при том же имени и вуаля - пейдж нот фаунд к Вашим услугам! |
|||
Доска объявлений Объявления - создание базы и модели | + 4 | ||
миграции отработали, в генераторе модели создали новую модель, проверили её наличие в нетбинс Миграция создает пхп файл в нетбинсе, его правим как надо и после запуска результат виден в БД через phpMyAdmin |
|||
Доска объявлений Что доступно Юпитеру? | + 3 | ||
начали использовать созданную прежде авторизацию на сайте - разграничили области видимости базового представления (менюшки Контакты) Расположение для редактирования - D:\OSPanel\domains\bulletin\views\layouts\main.php Восклицательный знак перед оператором привычно означает логическое отрицание |
|||
Доска объявлений Красивая аутентификация на сайте | + 3 | ||
русифицировали страницу входа на сайт с помощью функции attributeLabels() взяв часть полей по образцу юзерФорм Часть настроек была выполнена в файле D:\OSPanel\domains\bulletin\views\site\login.php |
|||
Доска объявлений Новый пользователь - сохранение нового пользователя | + 7 | ||
путь к экземпляру \app\models\ можно прописать в юзингах сверху, тогда указание на этот экземпляр доступно в краткой форме Too few arguments to function app\models\UserRecord::createUser() == Слишком мало аргументов для функции app \ models \ UserRecord :: createUser () Маловато предоставили - вот и ругается Добавление после передачи аргумента в createUser($newUser); упёрлось в ошибку Искал причину и не находил. Отправил отчет с ошибкой и помощь пришла. Была вероятность, что отчет будет сминусован с невменяемыми и безответными комментариями и отправка его окажется мартышкиным трудом. Но, к счастью, отчет попался на глаза коллегам, которые увидели мою оплошность и указали мне на неё. Вот здесь я и снова прочувствовал пользу от прохождения курса коллективно - ошибка оказалась в написании имени переменной с ошибкой, а я видимо замыленным глазом смотрел и не видел, ведь пересматривал же я этот участок кода и бесполезно. Поправил регистр одной лишь буквы и всё сработало! Спасибо, это было поучительно! |
|||
Доска объявлений Новый пользователь - дизайн формы: поля и колонки | + 4 | ||
как хорошо, когда ты уже проходил уроки Валерия по бутстрапу! Хотя бы тут нет вопросов ) Только написал вышеприведенную строку и давай пробовать как там бутстрап отработал - не отработал смотрю, нет двух колонок (нулевая иллюстрация) Ы-ы-ы, думаю, делил шкуру непойманного, только похвалился и вот те на - облом ) Потом вспомнил, что смотрел не на полный экран, а ведь бутстрап, он же про резиновую вёрстку, дай посмотрю на полный экран - вуаля! (первая иллюстрация - всё прекрасно делится на два поля |
|||
Доска объявлений Новый пользователь - дизайн формы начало | + 4 | ||
ошибка в одной букве - и всё, нет отображения твоих изменений Хлебные крошки в коде написал как бредкрамПс вместо бреадкрамБс - искал, чего это у меня нет менюшек Будь внимателен, пиашпишник ) Наличие одного лишь пробела между стартом строки <? и знаком равно приводит к неинтерпретируемому коду РНР - нулевая иллюстрация(неверный код с пробелом) и первая(годный код и пробел удален) |
|||
Доска объявлений Новый пользователь - модель для формы | + 4 | ||
alt+shift+F - форматирование кода в нетбинс по правилам(хоткИ или "горячая клавиша" для причёсывания того, что наваял Начали создавать форму для заведения нового пользователя(форма регистрации) Поля сделали обязательными для заполнения, при обратном будет выведено сообщение |
|||
Доска объявлений Новый пользователь - заготовка и меню | + 3 | ||
информация по пользователю выводится на основании номера идентификатора, взятого из текущей сессии Двойное двоеточие :: это оператор разрешения области видимости ("Paamayim Nekudotayim"). Эта лексема, разрешает обращаться к статическим свойствам, константам, переопределенным свойствам, методам класса. views - layouts - main - это хидер(навбар) и футер, то что не меняется вслед за изменением контента страницы в центре |
|||
Доска объявлений Пользователь - кто зарегистрирован сейчас? | + 3 | ||
кнопка "Статистика и отчеты" к уроку - Ваш кладезь мудрости впередиидущих курсантов Столкнулся с проблемой вызова нестатического метода, возникла ошибка(иллюстрация номер ноль) Просмотрел, перенабрал - не помогло. Почитал комментарии с иллюстрации с ошибкой - причины в силу малоопытности не понял Стал смотреть отчеты впередиидущих - и о чудо, Степан уже в это упирался и даже при его заявленной неопытности в заморских языках, он нашел что метод(здесь они функциями называются) не имеет экземпляра и его просто можно в сигнатуре указать статическим и всё взлетит Так и сделал(следующая иллюстрация) - и всё взлетело. Остались два вопроса: - как Степан при том, что пишет в языках не силён, нашел ответ про сделать метод статиком - как у Валерия без статика всё сработало. Загадок две, ответа пока не нашел. |
|||
Доска объявлений MVC - информация о пользователе | + 3 | ||
$currUser - в коде РНР не забывай, что переменные (имена) указываются начиная с символа доллара Видишь символ доллара в начале имени в РНР - это переменная Краткая форма вкрапления РНР кода в HTML разметку отделяется по краям так <? ?> Переменную $currUser получили из модели UserController методом find по номеру идентификатора 2, взяли одну запись Спасибо подсказкам - наз на хэз поменял ))) |
|||
Доска объявлений MVC - немного теории | + 9 | ||
представления - это странички сайта, которые вызываются из модели контроллером |
|||
Доска объявлений Информация о пользователе | + 9 | ||
миграции работают - но тут много чести нет, просто поднял всё на окнах UserRecord создал, связь с UserinfoRecord тоже добавил |
|||
MVC шаблон MVC - PhoneBook - ViewList | + 9 | ||
соорудили дочернее окно для добавления записей Временно вывели его вместо родительского для теста В нём три объекта - текстовое поле, окно JList<String> для записей и кнопка закидывания в БД приготовленной в этом окне записи До встречи в следующем десятилетии, товарищи! |
|||
MVC шаблон MVC - PhoneBook - User Struct | + 11 | ||
модель и представление не должны зависеть друг от друга по концепции MVC Как передать в одном аргументе сразу три поля из карточки телефонной книжки? - Ответ прост - создай структуру или класс и помещай в него всё что объявишь. А экземпляр этого класса уже и передавай как один аргумент Если хочешь перекрыть доступ к редактированию поля textID.setEditable(false); - вот такой сетЭдитабл с фолзом применяй смело в Джаве! Observer - это слушатель, который оповещается об изменениях |
|||
MVC шаблон MVC - PhoneBook - ViewCard | + 11 | ||
операторы выполняются компилятором сверху вниз и слева направо Это стоит учитывать, когда располагаете свои строки с операторами, если вывод на экран сделать раньше инициализации элементов, их просто не будет видно и пользователи Вашей программы будут дико ржать над незадачливым автором кода ) В уроке эта ситуация рассматривается на примере перемещения оператора setVisible(true); по строкам кода |
|||
MVC шаблон MVC - PhoneBook - Вступление | + 10 | ||
узнал о существовании аналога https://www.draw.io в виде вебсервиса https://app.moqups.com/sign-up Сделал свой набросок в дроуИо, поскольку там не требовалась регистрация |
|||
Дневник успеха 2019-12-29 : Чтоб в почете быть, надо труд свой полюбить. | + 4 | ||
Подходит к концу год, десятилетие, подписка полугодовая и день за окном. На удивление, всё перечисленное, было проведено недаром, с пользой и удовольствием. Не в последнюю очередь благодаря коллективу ВидеоШарпа, его основателю Евгению Витольдовичу, славному сыну Советской Прибалтики, как её перечисляли в прогнозе погоды программы "Время" в моём детстве, благодаря яркому жителю города Пенза, Валерию Владимировичу, показавшему горизонты веб-программирования и занятного языка Пайтон. Благодаря ему познакомился с талантливыми парнями из Британии, ставшими музами для создателей ЯП Пайтон. Много других толковых парней и девчонок хотелось бы поздравить с этим новым рубежом годовой развилки. Где наш экс-журналист и полиглот Виктор Тютюн из солнечного Киева? Где толковый Геннадий Кравцов, радовавший палитрой красок в своих отчетах? Где строптивая Анастасия орудовавшая здесь под ником ДоминэйшнАгенда? Где севастопольский Дмитрий выдававший на гора отличные отчёты? Кого куда раскидал год, отчего ушли в туман? Всех с Новым годом и новым десятилетием! Здоровья и творческого роста! Ибо ходить на работу для того, чтобы ждать конца рабочего дня - суть каторга для Человека. За отчетный период посещения https://www.videosharp.info/ имею доложить: - познакомился с сишарпом, джавой, пайтоном, джаваскриптом, сиэсэс, вёрсткой, бутстрапом, гитом, средами разработки в этих культурах ))) - лишь здесь благодаря Марафону начал набирать с удовольствием слепым методом - мерси Шахиджаняну и Видеошарпу - перестал бояться открывать новый урок и педалить код - познакомился с массой творческих и интересных людей - стал начинать утро будней с физзарядки И вся эта движуха лишь поэтому - стены и цепи излишни когда тюрьма в голове определяет размеры свободы... Не возводишь стены и не вешаешь цепей - жизнь продуктивнее. С новым годом, товарищи! За эту неделю: + Я проверил 100 отчётов у 21 формулиста. + Я написал 38 сообщений 9 формулистам общим объёмом 14 килобукв + Я набрал 1 текст: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок + Я решил 8 задач: 1 => «По цифрам / Разные цифры» на 100% 2 => «По цифрам / Палиндромы» на 100% 3 => «По цифрам / Счастливый билет» на 100% 4 => «По цифрам / Простые цифры» на 100% 5 => «По цифрам / Четные цифры» на 100% 6 => «Матрёшки / Числовой треугольник» на 100% 7 => «Матрёшки / Звездный квадрат» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 14 видеоуроков: 1 => «Facade / Facade - Motivator - Program» за 3 час. 21 мин. 2 => «Facade / Facade - Motivator - Plan» за 2 час. 7 мин. 3 => «Facade / Facade - Motivator - Methods» за 2 час. 11 мин. 4 => «Facade / Facade - Motivator - Image» за 3 час. 25 мин. 5 => «Facade / Facade - Motivator - Back Paint» за 10 час. 9 мин. 6 => «Facade / Facade - Motivator - Picture Border» за 37 мин. 7 => «Facade / Facade - Motivator - Text Center» за 3 час. 52 мин. 8 => «Facade / ФИНАЛЬНЫЙ УРОК» за 10 мин. 9 => «MVC шаблон / MVC - Counter - ViewFrame» за 32 мин. 10 => «MVC шаблон / MVC - Counter - ModelPlus» за 2 час. 25 мин. 11 => «MVC шаблон / MVC - Counter - ControllerPlusFrame» за 57 мин. 12 => «MVC шаблон / MVC - Counter - ControllerPlusConsole» за 1 час. 4 мин. 13 => «MVC шаблон / MVC - Counter - ModelDuplex» за 41 мин. 14 => «MVC шаблон / MVC - Counter - ControllerDuplex» за 1 час. 4 мин. − Я не собрал ни одного Мегахеша :o( |
|||
MVC шаблон MVC - Counter - ControllerDuplex | + 4 | ||
Модель описывает бизнес-логику ( к примеру спекулянтскую, она проще для понимания - покупаем рога и копыта оптом по рублю, торгуем этим же в розницу с накруткой 80 пр0центов, кричим всем про громадные пятидесятипроцентные скидки, акции, розыгрыши и прочий шум, живем на 30 процентов маржи) Представление - это то, что видит покупатель Контроллер - это наш механизм обработки рогов и копыт по извлечению маржи для ведения предпринимательской деятельности, имеющей целью извлечение прибыли, то есть работу контроллера Рога с копытами никак не связаны с покупателями, а связующее звено - это и есть контроллер, то есть контора "Рога и Копыта" Решением по первичному выведению стартового значения в фрейм и консоль было удаление конструктора в модели и замена его на метод инит, присваивающий счётчику стартовое значение и оповещающий об этом контроллер В видеовставке немного юмора, надеюсь на предновогодние улыбки да и воскресенье на дворе ) |
|||
MVC шаблон MVC - Counter - ModelDuplex | + 5 | ||
создание контроллера: - объявить поле модели - объявить поле представления создать конструктор, принимающий аргументами вышеобъявленные поля - присвоить текущим экземплярам полей значения аргументов "thisами" - текущему экземпляру модели добавить addObserver с передачей аргументом текущего экземпляра представления - текущему экземпляру представления добавить addListener или слушателя с передачей ему аргументом текущего экземпляра метод экшнПерформд запускает у модели метод дуплекс (вышеописанное проиллюстрировано на картинке за номером нуль) Про непередачу аргумента в notifyObservers(multi); класса ModelDuplex (нижняя иллюстрация справа внизу этот класс) заметил ещё в момент написания класса и был удивлён этой ошибке, которая возвращала null после компиляции (шестая минута видеоурока) Вот ведь! Школа не прошла даром ) |
|||
MVC шаблон MVC - Counter - ControllerPlusConsole | + 4 | ||
при создании разных контроллеров при одной модели, работа их в программе происходит синхронно - и счет в цикле выполняется и там и там одинаково, и кнопка по окончании работы цикла приводит к увеличению показаний счетчика и на экранной форме и в окне консоли Заметил ещё одну особенность при создании скриншотов. В былое время, работая на ноуте Вайо под управлением ОС Windows, чтобы отработал скриншот, ось ждала окончания работы цикла, и лишь потом делала скриншот, здесь же, ось мака ХайСиерра 10.13.6 позволяет делать скриншот прямо в момент выполнения цикла, не дожидаясь его окончания. Это вспомнилось, когда играл с циклом в этом уроке А синхронность работы программы объясняется тем, что поле private int counter; хранится в Модели, а она у нас одна и для представления Консоли и для представления Фрейма, и в ней прописано оповещать всех Слушателей об изменениях |
|||
MVC шаблон MVC - Counter - ControllerPlusFrame | + 4 | ||
контроллер == связующая нить (НЕ КАНАТ) между Моделью(MODEL) и Представлением(VIEW) Контроллер связывает функционал одного Представления и одной Модели, чем проще, тем целесообразнее, не надо усложнять нить до состояния причального каната межконтинентального лайнера Вариант вывести ноль со старта программы - мой фантазийный вариант - методом, выполняющим однократно инкремент до единицы и тут же декремент до нуля однократно - тогда при запуске будет выведен ноль сразу |
|||
MVC шаблон MVC - Counter - ModelPlus | + 7 | ||
задействовали библиотеки java.util.Observable; и java.util.Observer; тем самым установив оповещение консоли и экранной формы классом ModelPlus.java который умеет хранить значение счётчика и увеличивать его методом plus() |
|||
MVC шаблон MVC - Counter - ViewFrame | + 5 | ||
по традиции оформили JFrame и потестили приём им аргументов java.util.Observable и java.util.Observer Эклипс уже помечает как устаревшие (предлагает пометить Suppress Warnings("deprecation") - Подавить предупреждения («устаревание») ), но работе программы это не мешает |
|||
Facade ФИНАЛЬНЫЙ УРОК | + 9 | ||
за десять уроков по 5-10 минут соорудили программу, создающую с помощью встроенной джавовской двадэ графики готовый мотиватор или демотиватор, в зависимости от фантазии художника Уроки короткие, Эклипс не капризничала, картинок и цитат в сети вагоны - всё шло как по маслу Основная забота теперь - знакомиться с библиотеками системными джавы, брать на вооружение её классы и помнить, какой что умеет и как может преобразовывать твои объекты Фасад - создай простой класс с минимумом функционала( в идеале один метод) и прикрути к нему, как под капотом всё необходимое Подозреваю, что psvm в сути своей тоже является неким фасадом любой программы джава или сишарпа |
|||
Facade Facade - Motivator - Text Center | + 6 | ||
для хорошего текстового комментария надо написать как минимум 5 операторов Font font = new Font ("Tahoma", Font.PLAIN, 30); - создали экземпляр шрифта с названием font, которому передали аргументы: в кавычках строковое название шрифта, тип шрифта и размер graph.setFont(font); - для объекта graph применили метод сетФонт с передачей ему аргументом вышесозданный экземпляр int text_width = graph.getFontMetrics().stringWidth(text); - int text_height = graph.getFontMetrics().getHeight(); - создали пару переменных целочисленных для вычисления ширины и высоты текста graph.drawString(text, (width - text_width)/2, PADDING + IMAGE_HEIGHT + (TEXT_HEIGHT - text_height)/2 + text_height); - на объект графа указали нарисовать строку с тремя аргументами: сам текст, ширина и высота |
|||
Facade Facade - Motivator - Picture Border | + 8 | ||
новый класс для меня из библиотеки java.awt.BasicStroke.BasicStroke Создает сплошной линией BasicStroke с указанной шириной и значениями по умолчанию для верхних и нижних стилей. Параметры, которые можно указать: ширина BasicStroke Бросает ошибки: IllegalArgumentException - если ширина отрицательна Загрузка фото прошла без запинок |
|||
Facade Facade - Motivator - Back Paint | + 7 | ||
new ProcessBuilder(IMAGE_APPLICATION, resultFilename).start(); запускает процесс (приложение, указанное нулевым аргументом) и передает в этот процесс следующий аргумент В нашем случае запускается программа для просмотра картинок и ей передается наш мотиватор error=13, Permission denied - пробовал и скопировать в каталог проекта запускной файл и поменять права - в системном каталоге отказ в доступе, хоть и под админом работаю и пароль рута вводил. Защиту пока не сломал, открывал вручную успешно и в /Applications/Preview.app и в /Applications/Google Chrome.app, а из кода валит иксепшн Cannot run program "/Applications/Google Chrome.app": error=13, Permission denied |
|||
Facade Facade - Motivator - Image | + 9 | ||
область видимости полей и методов, да и любых сущностей ограничивается фигурными скобками Это стоит помнить в момент объявления полей - если надо их использовать за пределами метода, значит объявлять их надо никак не в самом методе, а выше - в классе |
|||
Facade Facade - Motivator - Methods | + 9 | ||
написанное вчера на русском языке перевели на язык java По пунктам описывающим действия алгоритма создали методы (один пункт алгоритма == один метод) Добавили константы для хранения размеров картинки, отступов и текстового поля |
|||
Facade Facade - Motivator - Plan | + 5 | ||
алгоритм действий будет такой: 1 - создаём рисунок img 2 - заполняем цветом фон #abcdef 3- загружаем картинку 640 х 480 из файла image.jpg 4 - разместить картинку от 20, 20 5 - нарисовать рамку 20, 20 640+20, 480+20 6 - вывести текст под картинкой 7 - сохранить результат в файл motivator.jpg 8 - отобразить результат на экране Попотеть придётся, полагаю над всеми пунктами, чтобы не вкривь да вкось, чтобы текст приятным шрифтом подобрать Думаю ни один из пунктов не будет реализован "одной левой" )) |
|||
Facade Facade - Motivator - Program | + 8 | ||
шаблон Фасад - это кнопка, которую так искал Урри За одним рубильником в нашем проекте будет скрываться целый комплекс по производству мотиваторов и демотиваторов Создали новый проект ( в Эклипсе они все в дереве каталогов слева - очень удобно) и добавили в него класс с точкой входа |
|||
Дневник успеха 2019-12-22 : Не учи безделью, а учи рукоделью. | + 9 | ||
На этой неделе соблазнился курсом Валерия Владимировича, даже что-то преодолел. Вспомнил о редакторе нано, о команде судо для того, чтобы этот редактор вошел в режим доступа к записи на диск, нашел для себя сабститьют OpenServer в виде МАМР. Не без задиров, но продвигался до вчерашнего дня. Миграцию ниасилил - терминал или консоль команды не принимала, пока не понял что не так. Плюс вчера добавилась проблема доступа к phpMyAdminу - при наличии пароля к учетку root не пускал еситизовский gii-генератор ActiveRecordа, когда же грохнул пароль к phpMyAdminовской учетке root - пустил и даже сформировал требуемый по уроку ActiveRecord, но заткнув дыру в одном месте, получил пробоину в другом - теперь phpMyAdmin не пускает войти. Правки файлов конфига на пустой пароль или обратно на пароль рут оживить вход в админку phpMyAdmin не помогли на сегодня. Думаю, надо прекращать выпендриваться и начать курс на другом ноуте с седьмой виндой, а на маке при всей его мощи аккумулятора(можно в машине заниматься в будни) пилить уже вдогонку виндовому прохождению курса. Раздел Джава спасает - ежедневную норму добиваю на нём. Спасибо Евгению Витольдовичу за краткие и ясные уроки. Как говорил капитан Тиг, хранитель пиратского кодекса, Code is the Law! Всем удачи в поисках подарков на НГ ) За эту неделю: + Я проверил 57 отчётов у 17 формулистов. + Я написал 20 сообщений 11 формулистам общим объёмом 11 килобукв + Я набрал 2 текста: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок 2 => «Java - Запуск / Class!», без ошибок + Я решил 7 задач: 1 => «Любимые циклы / Фибоначчи» на 100% 2 => «Любимые циклы / Тройная степень» на 100% 3 => «Любимые циклы / Метод Горнера» на 100% 4 => «По цифрам / Числа по цифрам» на 100% 5 => «По цифрам / Три цифры» на 100% 6 => «По цифрам / Цифры по возрастанию» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 14 видеоуроков: 1 => «Factory / Factory - Storage - Файл и Сканер» за 27 мин. 2 => «Factory / Factory - Storage - Запуск» за 18 мин. 3 => «Factory / Factory - Storage - Фабрика» за 1 час. 31 мин. 4 => «Factory / Factory - Storage - Фабричные цеха» за 2 час. 5 мин. 5 => «Factory / ФИНАЛЬНЫЙ УРОК» за 4 час. 9 мин. 6 => «Доска объявлений / О проекте и про инструменты» за 4 час. 26 мин. 7 => «Доска объявлений / Создание проекта YII2» за 5 час. 50 мин. 8 => «Доска объявлений / Комфортная конфигурация» за 28 мин. 9 => «Доска объявлений / Схема базы данных» за 2 час. 45 мин. 10 => «Доска объявлений / Подключение к базе данных пользователя и миграция пользователей» за 2 час. 31 мин. 11 => «Доска объявлений / Аутентификация - захешированный пользователь из БД» за 3 час. 36 мин. 12 => «Facade / Facade - Computer - Program» за 22 мин. 13 => «Facade / Facade - Computer - Devices» за 14 мин. 14 => «Facade / Facade - Computer - Power» за 48 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Facade Facade - Computer - Power | + 6 | ||
один класс концентрирует в себе организацию запусков агрегатов подкапотного пространства - это и есть шаблон проектирования Фасад Дополнительное задание сделал, благо оно несложное и особо репу чесать не пришлось - больше писанины (тренировка слепого метода набора с клавиатуры) плюс наблюдение, как по мере создания (реализации) прописанных методов, пропадали подчеркивания Эклипса об ошибках в этих методах При всей простоте, полезный урок для понимания взаимосвязи методов в разных классах |
|||
Facade Facade - Computer - Devices | + 8 | ||
классы созданы Цель - сборка подкапотного пространства запуска компьютера |
|||
Доска объявлений Аутентификация - захешированный пользователь из БД | + 8 | ||
генератор ActiveRecord не пускал ругаясь на наличие пароля у пользователя root - первый заслон Это преодолел, поменяв пароль этого пользователя в phpMyAdmin на отсутствующий, и о чудо, в генератор http://localhost:8888/gii/model зайти и создать новую модель удалось Но после этого phpMyAdmin остался недоволен моими правками пароля пользователя root и ждет решения. в config.inc.php замена $cfg['Servers'][$i]['password'] = 'root'; на $cfg['Servers'][$i]['password'] = ''; войти в админку phpMyAdmin не помогла, пишет в ответ MySQL said:Documentation Cannot connect: invalid settings. Но вход в phpMyAdmin - проблема частная, не думаю, что не удастся забороть ) |
|||
Доска объявлений Подключение к базе данных пользователя и миграция пользователей | + 11 | ||
таблица user с пятью полями в базе данных bulletinsdb создана успешно, но лишь в самом PHPMyAdmin Консоль с миграцией дружить не захотела, по ходу пьесы буду разбираться с этим вопросом Либо консоль не ту запускал, либо в другом каталоге орудовал, хотя переключение в каталог bulletinsdb в строке консоли отражалось, что вселяло надежду на успех Однако, финальная цель была достигнута, пусть и другим путем |
|||
Доска объявлений Схема базы данных | + 8 | ||
собрали план битвы для создания запросов SQL по первичному сооружению БД Приятно, когда получается! Тут песен просили - добавил в отчет ) Понять, что локальный сервер запустить на макОси не так уж и сложно при нынешней легкости доступа к информации |
|||
Доска объявлений Комфортная конфигурация | + 7 | ||
локальный сервер поднял с помощью МАМР, преттиЮРЛ и заголовок "Доска объявлений" кириллицей установил .htaccess отвечает за базовые настройки сервера RewriteRule . index.php [L] обрезает index.php в адресной строке RewriteCond %{REQUEST_FILENAME} !-d урезает путь до директории RewriteCond %{REQUEST_FILENAME} !-f урезает путь до файла Мак сдался и запустил локальный сервер на МАМР - тот же пиашпиМайАдмин посмотрел, там доступен Буду пилить сайт дальше! |
|||
Доска объявлений Создание проекта YII2 | + 15 | ||
Apache NetBeans IDE 11.2 подключил к YII, не с первой попытки, но всё же Ключ cookieValidationKey внёс внутри апострофов, сохранил Осталось решить вопрос с локальным сервером Нашел статьи на хабре и не только - это будет не ОпенСервер, но суть локального сервера будет |
|||
Facade Facade - Computer - Program | + 10 | ||
шаблон проектирования Фасад - суть реализация инкапсуляции - создать панель управления сложным процессом, дав пользователю простые органы управления, без необходимости каждый раз ему лезть под капот Фасад годится в управлении транспортом - дай водителю кнопку старта, чтобы он не лазил под капот с отверткой и не замыкал втягивающее реле на стартере, не запускал вручную бензонасос, не подключал цепи электропитания - это всё сложно и ненужно Нажми на кнопку - получишь результат ) |
|||
Доска объявлений О проекте и про инструменты | + 14 | ||
среду поставил без особых затруднений, поругался на безопасность, но это было преодолено без труда Среда на сегодня скачивается эта: Product Version: Apache NetBeans IDE 11.2 Updates: Updates available Java: 12.0.2; Java HotSpot(TM) 64-Bit Server VM 12.0.2+10 Runtime: Java(TM) SE Runtime Environment 12.0.2+10 System: Mac OS X version 10.13.6 running on x86_64; UTF-8; ru_RU (nb) User directory: /Users/dmitrysinitsin/Library/Application Support/NetBeans/11.2 Cache directory: /Users/dmitrysinitsin/Library/Caches/NetBeans/11.2 А вот с опенсервером не подружимся на маке, как я понял, он заточен лишь на винду Надо что-то будет придумывать. Не занимался этим на макОси, но орешек знаний твёрд и всё же мы не привыкли отступать ) Советы по локальному серверу на макОси приветствуются! |
|||
Factory ФИНАЛЬНЫЙ УРОК | + 10 | ||
курс несложен для понимания и по времени (продолжительности видеоуроков) ненапрягающий ни разу То, что давалось в общей программе, как сам понял, рассказал без особых затруднений Жаль, что дополнительное задание не осилил, будет день - посмотрим новым взглядом и может быть посмеемся над собственной желторотостью ) Как бы то ни было, курс пройден чуть ли не на одном дыхании, стал себе позволять два урока в день В идеале курсы хорошо проходить компанией, когда есть с кем обсудить новый материал и увидеть его под новым углом Курсы Валерия этим привлекают - там народ тусит ) Помнится, Видеошарп таким запросом и был найден - гуглил «где тусуются C#», или что-то близкое к этому Следующим курсантам - успехов и новых вершин! |
|||
Factory Factory - Storage - Фабричные цеха | + 10 | ||
по рутине всё хорошо, ошибок не нарисовал самостоятельно Предложение перенести криэйтРидев в класс Фабрики завалил (нижняя иллюстрация) Пользуясь подсказками Эклипса так и эдак прилаживал, почти уже думал победил - но нет, не взлетело То статик ошибкой, то оверрайд убери, пока не понял, как это правильно дополнительное задание сделать чтобы код стал рабочим Оставлю иллюстрацию с моими тестами в этом отчете на будущее, может позже удастся свежим взглядом понять что было не так |
|||
Factory Factory - Storage - Фабрика | + 9 | ||
отсутствие обработки ридерсканера в классе Фабрики методом init решили следующим образом: в Фабрике создается экземпляр ридерсканера, затем ему приказывается обработаться методом init и только после этого из Фабрики возвращается экземпляр ридерсканера 1. создай экземпляр 2. обработай его нужным методом 3. верни готовый экземпляр |
|||
Factory Factory - Storage - Запуск | + 9 | ||
впервые создал текстовый файл из Эклипса, без применения файл-менеджеров Для использования класса ReaderFile пришлось передавать в файлРидер аргументом название файла, созданного по пути FactoryStorage/ В ином случае операнды вводились с клавиатуры, дополнительных аргументов не требовалось |
|||
Factory Factory - Storage - Файл и Сканер | + 10 | ||
считыватель из файла использует последовательно класс считывателя и класс буферизированного считывателя Результат их работы передается в строковую переменную, а затем парсится в целочисленный инт Метод инит не переносим в абстрактный класс из-за разной сигнатуры этих методов в классах чтения с клавиатуры и из файла |
|||
Дневник успеха 2019-12-15 : Через силу и конь не везет. | + 8 | ||
9 декабря 2019 года истёк срок действия моих прав на машину, поменял на новые снова на срок 10 лет. В поликлинике оставил 1045 рублей и 25 минут своего времени (обязательная медсправка на три года) и в ГИБДД оставил 2045 рублей + около часа времени. Но это рулетка, очереди бывают и покруче, не все так гладко бывает. Медики намеряли высокое давление, перестал жрать от этой новости мясо, соль сахар, колбасы и всякое жиросодержащее. Есть нельзя практически ничего кроме веганского ))) Так от возраста становишься жалким вегетарианцем. Давка за неделю ушла повышенная, заниматься легче, могу сидеть часами, чего не позволял себе в банковские времена, когда ломила спина и шея. Вот что воздержание животворящее делает. Как же хорошо было молодым пияницей гулять ночи напролёт... Сегодня попробовал поменять клавиатуру у ноута на новую - остановился на знакомом откручивании аккумулятора у мака - дальше не всё очевидно надо пересмотреть видеоинструкцию снова. Жамкаю пока по старой клаве, но вслепую ))) Благо кириллица работает без сбоев. Новая неделя принесет морозы в Киров, судя по прогнозу, посмотрим, как это отразится на успеваемости. Тут ещё и предновогодний ажиотаж начнётся... В пятницу вечером сходили на Джуманджи в триДэ, впервые напялил на себя очки поляризационные. Если бы плотно поел перед этим, был бы конфуз ))) Эффект объема увидел, но фанатом его не стал. Дуэйн Джонсон и Джек Блэк прекрасны, как и прежде. Ухало, бахало, все у Голливуда получается на 5 баллов. Программисты там свой хлеб едят недаром, эффекты впечатляют. Всем удачной новой недели! За эту неделю: + Я проверил 69 отчётов у 21 формулиста. + Я написал 16 сообщений 6 формулистам общим объёмом 8 килобукв + Я набрал 2 текста: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок 2 => «C# набор / Формирование массива», без ошибок + Я решил 8 задач: 1 => «Математика / Формула» на 100% 2 => «Математика / Дробная таблица» на 100% 3 => «Математика / Таблица» на 100% 4 => «Математика / Параметрическая функция» на 100% 5 => «Любимые циклы / Барабанная дробь» на 100% 6 => «Любимые циклы / Гармония» на 100% 7 => «Любимые циклы / Двойной факториал» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 14 видеоуроков: 1 => «Factory / Factory - Shapes - Три фигуры» за 22 мин. 2 => «Factory / Factory - Shapes - Абстракция» за 29 мин. 3 => «Factory / Factory - Shapes - Созидатель» за 24 мин. 4 => «Factory / Factory - Shapes - Список» за 23 мин. 5 => «Factory / Factory - Shapes - Interfactory» за 33 мин. 6 => «Factory / Factory - Storage - Читатель» за 20 мин. 7 => «Strategy / Strategy - Person - Program» за 1 час. 19 мин. 8 => «Strategy / Strategy - Person - Format - Context» за 36 мин. 9 => «Strategy / Strategy - Person - Format - Strategy» за 1 час. 6 мин. 10 => «Strategy / Strategy - Person - Save - Context» за 23 мин. 11 => «Strategy / Strategy - Person - Save - Strategy» за 19 мин. 12 => «Strategy / ФИНАЛЬНЫЙ УРОК» за 57 мин. 13 => «Strategy / VIP - Strategy - Person - UML» за 30 мин. 14 => «Strategy / VIP - Strategy - Person - Enum» за 21 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Factory Factory - Storage - Читатель | + 8 | ||
Обсуждаемое в предыдущем отчете реализовали в этом - поскольку не только методы общИ для данных в программе, выбрали не интерфейс, а абстрактный класс, чтобы затолкать туда и переменные Далее будет выполнены создания методов в классе работы с вводом клавиатуры и классе считывания из файла |
|||
Factory Factory - Shapes - Interfactory | + 9 | ||
в закладке с названием класса Эклипс наличие звездочки говорит о внесении изменений в код После сохранения звездочка исчезает Интерфейс годен для обработки однотипных действий над данными Если нужны ещё и однотипные поля (переменные) - выбирай абстрактный класс, он даст больше функциональности |
|||
Factory Factory - Shapes - Список | + 5 | ||
судя по моим представлениям, шаблон порождающий, а значит годится в той или иной степени в любой программе, ибо код подразумевает создание сущностей в любом случае, а значит Фабрика может быть использована повсеместно Если неправ- поправьте, буду признателен выяснить, где этот порождающий шаблон неприменим или нецелесообразен |
|||
Factory Factory - Shapes - Созидатель | + 3 | ||
суть фабрики - класс заточенный под исполнение определенных действий, возвращающий готовый результат по запросу пользователя На нулевой иллюстрации фабрика - это метод createShape (String text) в основном классе public static void main, на первой иллюстрации - перенесенный в отдельный класс для Фабрики Вижу в этом инкапсуляцию - в класс Фабрики отправляется команда на создание некоей фигуры в текстовом виде, класс Фабрика возвращает готовую фигуру, однако как он её сделал, пользователь может и не знать |
|||
Factory Factory - Shapes - Абстракция | + 6 | ||
абстрактный класс не несет в себе реализации полей и методов, лишь объявляя их @Override - модификатор, указывающий на перегружаемый метод, контролирующий корректность сигнатуры с объявлением этого же метода в родительском классе |
|||
Factory Factory - Shapes - Три фигуры | + 7 | ||
могу предположить, что наши экземпляры надо скомпоновать в одном конструкторе, задача которому и будет возвращать требуемую конфигурацию фигур |
|||
Strategy VIP - Strategy - Person - Enum | + 9 | ||
использование энумератора сродни указанию маски для обработки данных - после рефакторинга с его использованием, метод выбора вводимого пользователем ограничен элементами, перечисленными через запятую в классе Тайп - ничего иного не будет пропущено через эту мясорyбку ) |
|||
Strategy VIP - Strategy - Person - UML | + 8 | ||
class visualizer скачивается без проблем, даже поколдовав с системными настройками безопасности удаётся запустить из архива clsvis.jar Приложение запускается и выводится диаграмма по умолчанию с легендой и расшифровками Доступны менюхи для создания нового проекта и для открытия имеющихся Файловая система компьютера тоже доступна и по каталогам скачем смело Для запуска файлов с нашим проектом с байт-кодом, те что имеют расширение точка класс, надо выбрать в выпадающем меню вариант открываемых файлов all files Открытие сопровождается сообщением об ошибке (вторая иллюстрация) Мак прекрасен своим долгоиграющим аккумулятором, но эти заморочки отличия от работы в маздае местами утомляют |
|||
Strategy ФИНАЛЬНЫЙ УРОК | + 10 | ||
Стратегия смотрит на контекст и выбирает нужный класс из шеренги подобных - так рождается алгоритм работы программы по этому шаблону На курсе уже написаны три программы, от самой простой, математической, до интерактивной ожидающей решения пользователя по маске именования файла «восемь-три». На экваторе курса делали склеивание эррэйЛиста через буфер и без него, было занятно. Курс несложный, если внимательно смотреть за происходящим, то более чем понятный. Возникавшие ошибки были сопряжены с невнимательностью и слабым знанием предметной области, благо предыдущие уроки были доступны - находил свои ошибки без длительных поисков. Хотя пару раз попотеть в листании пришлось ) ЗЫ На верхней иллюстрации богатырь смотрит на камень На камне написано то, что на нижней иллюстрации ))) Взяться и сделать ) |
|||
Strategy Strategy - Person - Save - Strategy | + 9 | ||
при записи файла на диск НЕ ЗАБЫВАЙТЕ закрывать программно записываемый файл оператором writer.close(); Иначе размер нулевой, как и эффект записи Второй вариант - помещать создание райтера в аргумент трай кеча в круглые скобки - в этом случае оператор закрытия неактуален |
|||
Strategy Strategy - Person - Save - Context | + 8 | ||
снова накосячил, в классе контекстСейв набрал оператор условия неверно и искал, чего ж это не выводятся данные персональныя... if (filename == null || filename.equals ("")) набрал сначала неверно вот так -> if (filename == null || filename == "") Исправив на иквалз всё взетело |
|||
Strategy Strategy - Person - Format - Strategy | + 9 | ||
метод lastIndexOf («txt») разыскивает то, что расположено в круглых скобках у того экземпляра, к которому применяем этот метод В моём примере в круглых скобках расположено слово тээкстэ в кавычках Искать будет слово БЕЗ КАВЫЧЕК Искать будет ПОСЛЕДНЕЕ совпадение, то есть вернёт индекс крайнего слева направо или ничего не вернет, если нет совпадения В финале урока пришлось подебажить ). Выводился результат лишь в текстовом формате - ошибки искал дебагом, не нашел, кроме того, что в дуформате не идёт дальше тхт, в другие ифы не хочет идти. Вспомнил, что в предыдущем уроке вместо апострофов использовал кавычки, заменил. Не помогло. Затем лишь вспомнил, что для парсинга требуется наличие точки, а я лепил сразу просто имя формата. Взлетело. |
|||
Strategy Strategy - Person - Format - Context | + 6 | ||
выбор стратегии реализован на ветвлении иф-элз Ошибки в видео подчеркиваются только после запуска программы, еще вариант - выполнить сохранение в каждом классе отдельно - проверил, так у меня работает |
|||
Strategy Strategy - Person - Program | + 5 | ||
наведя указатель мыши на подчеркнутый красным участок кода можно получить подсказку о сути ошибки и способах устранения оной Не все варианты решения на сто процентов целесообразны - машина неспособна предугадать все варианты хода мысли программиста, потому пользоваться помошью Эклипс надо аккуратно Если ошибка продолжает подчеркиваться - пробуем выполнить сохранение в изменяемом классе - один из вариантов, она исчезнет после сохранения вносимых изменений |
|||
Дневник успеха 2019-12-08 : Муравей не велик, а горы копает. | + 4 | ||
Стратегия перекликается с Синглтоном, в ход пошли энумераторы вместо иф-элз проверки на уникальность - старый забытый материал подсвечивается под новым углом и обретает объемные очертания. Следующая неделя - на штурм раздела джава + пазлИнглиш с видеопаззлами - там даже МонтиПайтон встречается. Хит ми бейби ванмортайм, как оказалось, не ударь меня, а всего лишь позвони мне еще раз ) За эту неделю: + Я проверил 82 отчёта у 25 формулистов. + Я написал 20 сообщений 11 формулистам общим объёмом 11 килобукв + Я набрал 2 текста: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок 2 => «Java - Запуск / Компиляция», без ошибок + Я решил 8 задач: 1 => «Последовательность / Больше суммы всех предыдущих» на 100% 2 => «Последовательность / Между соседями» на 100% 3 => «Математика / Модуль» на 100% 4 => «Математика / Косинусы» на 100% 5 => «Математика / Корни» на 100% 6 => «Математика / Гиперкуб» на 100% 7 => «Математика / Тригонометрия» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 11 видеоуроков: 1 => «Strategy / Strategy - Intro» за 14 мин. 2 => «Strategy / Strategy - Operation - Context» за 1 час. 14 мин. 3 => «Strategy / Strategy - Operation - Program» за 32 мин. 4 => «Strategy / Strategy - Join - ArrayList» за 19 мин. 5 => «Strategy / Strategy - Join - Context» за 15 мин. 6 => «Strategy / Strategy - Join - String/Buffer» за 23 мин. 7 => «Strategy / Strategy - Join - Log/Timer» за 47 мин. 8 => «Strategy / Strategy - Person - Schema» за 42 мин. 9 => «State / State - Целый калькулятор - 16 кнопок» за 5 час. 19 мин. 10 => «State / State - Целый калькулятор - Fix Bugs» за 1 час. 29 мин. 11 => «State / ФИНАЛЬНЫЙ УРОК» за 57 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Strategy Strategy - Person - Schema | + 4 | ||
карточка клиента будет выбирать в каком формате быть сохранённой - текстовик ( по умолчанию или принудительно), иксемел или джейсон Вторая стратегия будет развилкой для определения пути вывода карточки клиента - на печать или сохранение в файл Установил себе забытый на время саблайм - поставил подсветку синтаксиса джава - результат в иллюстрации к отчету |
|||
Strategy Strategy - Join - Log/Timer | + 4 | ||
на больших объемах добавления в массив ArrayList с помощью buffer.append целесообразно выполнять отдельные аппенды для отдельных элементов При нагромождении конкатенированных аргументов в один оператор buffer.append работоспособность кода сохраняется, но редуцируется его производительность, что наглядно было показано при помощи таймера, замерявшего скорость с конкатенированием аргументов и с разнесением их же по отдельным операторам buffer.append При соблюдении правила унарности аргумента производительность кода вырастала Резюме: проще аргумент buffer.append == быстрее программа добавления элементов в ArrayList |
|||
Strategy Strategy - Join - String/Buffer | + 5 | ||
StringBuffer работает с объектами оптом, стринговый += конкатенирует объекты в розницу Когда объектов мало - разница незаметна, при больших массивах данных буферизиованная обработка предпочтительнее |
|||
Strategy Strategy - Join - Context | + 5 | ||
как я и предполагал, Стратегия похожа в реализации на ветвление ифЭлз - это и сделали на уроке В случае размера ArrayListа меньше пяти - выбираем один метод, иначе - метод другой с буферизацией Класс компактен, легкочитаем, незнакомые программисты не произносят вотафаки - значит писан чистый код |
|||
Strategy Strategy - Join - ArrayList | + 7 | ||
home + home + TAB+ARROW-DOWN - хоткей для резкого размножения строки Спасибо за хинт ) Заготовку соорудил - результат на иллюстрациях |
|||
Strategy Strategy - Operation - Program | + 4 | ||
в результате определения стратегии вычисления в программе отрабатывает один из вызываемых классов Подозреваю, что ветвление ифэлз и кейссвич работают на аналогичной платформе кода Нравится многооконность интерфейса Эклипса - видно всё сразу и оттого понятнее, что происходит в программе Пример работы Стратегии - любое ветвление, будь то хоть выбор меню в столовой - выбрал борщ - получай борщ ) |
|||
Strategy Strategy - Operation - Context | + 6 | ||
соорудили «рыбу»: Context.java - «светофор» Strategy.java - что умеет программа после того, как светофор разрешит движение OperationPlus.java, OperationMinus.java, OperationMulti.java - классы непосредственных действий Шаблон Стратегия годен когда возникает распутье - надо выполнить задачу, НО есть не один способ это сделать Похоже на ветвление if-else или на switch-case В зависимости от целесообразности выбираем нужный вариант действий К примеру, выбор логистики в зависимости от направления или времени года с целью поиска наиболее дешевого пути или наиболее краткого по времени Вариантов масса |
|||
Strategy Strategy - Intro | + 7 | ||
решил взять курс с похожим шаблоном проектирования на шаблон Состояние Стратегия похожа, но менее гибкА в отличие от Состояния Первая иллюстрация в помощь - картина Васнецова (нашего вятскАга живописца) Как выберешь дорогу, так и чеши Вариант обработки данных выбирается на основе класса контекста, после чего выполняется без шараханий в стороны - вот принцип Стратегии |
|||
State ФИНАЛЬНЫЙ УРОК | + 5 | ||
в начале ролика видео с Дикаприо, когда он летел в Россию и мотор загорелся - тоже про состояния полёта и реакцию паксов ) Курс достаточно ясно излагает смысл стейтпаттерна, кода немного, в финале - красивая экранная форма с калькулятором. Возможность для развития программы - к кнопкам можно прикрутить иной, нужный по ТЗ функционал, а интерфейс + классы состояний позволяют сделать разноплановый отклик на одни и те же запросы пользователя в зависимости от контекста. Почву под ногами этот курс почувствовать позволяет более чем. Спасибо за уроки! |
|||
State State - Целый калькулятор - Fix Bugs | + 6 | ||
ошибки видел, но исправить не брался, радуясь уже тому, что курс удается повторить без ошибок фатального характера, как это было в Комбинаторике, где нужный класс отрабатывал не так, как в видео. Подозревал тому причиной различия в хардвере, студия под ПК и студия под Мак выглядят даже интерфейсом по-разному, что говорить о функциональности, естественно, она должна варьироваться. Ошибки совершал свои лично, их пока удается нейтрализовать, что уже радует |
|||
State State - Целый калькулятор - 16 кнопок | + 7 | ||
чтобы оживить кнопки от джифрейма, им надо применить метод addActionListener, который потребует имплементации экшнЛиснера, а также наличия метода void actionPerformed(ActionEvent e), отвечающего за событие нажатия кнопки Действительно, программулина получилась душевная и годная для переделки под различные задачи - в зависимости от Состояния приложение обрабатывает одинаковую команду (метод) по-разному. Вот здесь весь оверрайд и кстати! |
|||
Дневник успеха 2019-12-01 : Авось да как-нибудь до добра не доведут. | + 4 | ||
Паттерн Состояния достаточно ясно иллюстрируется в курсе по Java, калькулятор скоро будет готов На следующей неделе хочу добавить к ежедневной норме курсана ещё и принудительный мораторий на неслепой набор текста - привычку тыкать по-старинке надо ломать Нашел сайт пазлинглиш - игровое изучение английского, попробовал потыкать - довольно занятно ) Узнаю новые слова, несмотря на свой уровень ни разу не бигиннера За эту неделю: + Я проверил 94 отчёта у 23 формулистов. + Я написал 11 сообщений 6 формулистам общим объёмом 5 килобукв + Я набрал 1 текст: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок + Я решил 8 задач: 1 => «Узник цикла IF / Делитель» на 100% 2 => «Узник цикла IF / Сумма делителей» на 100% 3 => «Узник цикла IF / Плюс-минус» на 100% 4 => «Последовательность / Минимальное и максимальное число» на 100% 5 => «Последовательность / Новая последовательность» на 100% 6 => «Последовательность / Максимальный элемент» на 100% 7 => «Последовательность / Больше суммы предыдущих» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «State / VIP - State - КНБ - JFrame» за 43 мин. 2 => «State / VIP - State - КНБ - JButtons» за 1 час. 2 мин. 3 => «State / ПОЛУФИНАЛЬНЫЙ УРОК» за 33 мин. 4 => «State / State - Целый калькулятор - States» за 3 час. 29 мин. 5 => «State / State - Целый калькулятор - Context» за 1 час. 26 мин. 6 => «State / State - Целый калькулятор - Press key» за 1 час. 9 мин. 7 => «State / State - Целый калькулятор - Logic» за 41 мин. − Я не собрал ни одного Мегахеша :o( |
|||
State State - Целый калькулятор - Logic | + 3 | ||
в конструкте свичкейс нашел ошибки - вычистил. Они видны в прошлом отчете, если кто смотрел иллюстрации, там где я нашлёпал лишних, но ещё и неверных операторов Попробовал сброс ввода литерой с - не сбрасывает Искал недолго - стояла русская раскладка клавиатуры, переключив на латиницу сброс работал успешно без перезапуска приложения |
|||
State State - Целый калькулятор - Press key | + 2 | ||
в конструкте switch-case наваял для каждого кейса повторяющиеся методы в каждой строке, и лишь по видео вспомнил, что повторы можно не писать, а указать лишь последний Но работает и так с излишностями ) В тестировании снова чудил - проверял как добавить умножение на 10 вводя двузначное число десять, забыв про цифровой ввод - со второй попытки дошло, что вводить надо просто ноль ) |
|||
State State - Целый калькулятор - Context | + 7 | ||
в икс будет передаваться первый операнд, в игрек - второй, строковая переменная оп будет хранить знак операции, тип Стейт будет отвечать за текущее состояние калькулятора Для каждого из состояний создали класс, имлементирующий Состояние |
|||
State State - Целый калькулятор - States | + 5 | ||
число плюс равно даст в результате на калькуляторе удвоенное число введенное до плюса Получив задание наваять граф по функционалу калькулятора, вспомнил о draw.io Результат изысканий на иллюстрации номер 0 Попробовал поиграть с графическими шаблонами, доступными на draw.io |
|||
State ПОЛУФИНАЛЬНЫЙ УРОК | + 8 | ||
шаблон Состояние хорошо подходит для написания интернет-магазина в части Корзина-Покупка. В зависимости от состояния покупки, до какой стадии добрался посетитель сайта, ему должны становиться доступны различные возможности и естественно, отключаться ненужные. К примеру, правка содержимого корзины должна становиться недоступной с момента перехода к оплате корзины, иначе неясно за что оплачено, за что нет. До оплаты должны быть доступны варианты платежа, после транзакции, это должно стать информацией о совершенном покупателем выборе. В рассмотренной игре КАМЕНЬ-НОЖНИЦЫ-БУМАГА состояния были реализованы классами StateKam.java StateNoz.java State Bum.java В каждом из этих классов предусмотрели три игровых метода, для каждого из вариантов, выбрасываемых игроком. Для выброшенного камня ответы не сходились с классом, разработанным для состояния «выброшены ножницы», и аналогично с состоянием «выброшена бумага». Курс прекрасен отличным аудиорядом - никаких проблем с громкостью здесь не наблюдалось. Уроки краткие, с выделением времени на выполнение таких уроков не возникает проблем. И да, как же хорошо не смотреть на клавиши ноута при наборе текста! Ошибаюсь до сих пор, но уже начал получать удовольствие от такого набора текста. Спасибо за Марафон! Понять, насколько облегчается понимание кода, если давать ПРАВИЛЬНЫЕ И СООТВЕТСТВУЮЩИЕ функционалу имена полям и методам |
|||
State VIP - State - КНБ - JButtons | + 5 | ||
пробовал вчера добавить остальные кнопки - также получил отображение лишь последней по коду кнопки Бумага Оператор setLayout (new GridLayout (5, 1)); создающий сетку для размещения кнопок вчера не нашел Счетчик приделал - благо задел уже был из консольной версии, жаль + "\n» не переводит строку, как хотелось - надо еще разобраться с этим |
|||
State VIP - State - КНБ - JFrame | + 4 | ||
адаптация методов из войда в возвращающие строковый тип снова дала ошибку анричбл код - не затормозил и сделал скриншот (иллюстрация номер ноль) Очень показательно, если метод уже вернул требуемое значение, то дальнейшие строки уже не читаются компилятором и находятся вне зоны доступа Решение простое - недоступные строки перенеси ДО ритёрна JFrame - библиотека джавы, ответственная за графические объекты, позволяет создавать экранные формы в отличие от консольных программ |
|||
Дневник успеха 2019-11-24 : Доброе начало полдела откачало. | + 7 | ||
Начал морщить мозг на простых задачах и клепать что-то самостоятельно. Багаж знаний невелик, но кое-что уже могу настрочить, сие радует. Следующая неделя - на продолжение курса «Шаблон проектирования State» и далее по разделу. За эту неделю: + Я проверил 145 отчётов у 25 формулистов. + Я написал 14 сообщений 8 формулистам общим объёмом 7 килобукв + Я набрал 5 текстов: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок 2 => «Java - Запуск / Class!», без ошибок 3 => «Java - Запуск / Static», без ошибок 4 => «Java - Запуск / void», без ошибок 5 => «Java - Запуск / Main», без ошибок + Я решил 8 задач: 1 => «Точка и плоскость / Ромб» на 100% 2 => «Точка и плоскость / Круг» на 100% 3 => «Точка и плоскость / Часть круга» на 100% 4 => «Точка и плоскость / Квадрат» на 100% 5 => «Узник цикла IF / Девять чисел» на 100% 6 => «Узник цикла IF / Нули» на 100% 7 => «Узник цикла IF / Три тройки» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Iterator / Iterator - BlackJack - Random» за 1 час. 7 мин. 2 => «Iterator / Iterator - BlackJack - Stages» за 2 час. 25 мин. 3 => «Iterator / Iterator - BlackJack - Play game» за 4 час. 58 мин. 4 => «Iterator / ФИНАЛЬНЫЙ УРОК» за 38 мин. 5 => «State / State - Вступление» за 7 час. 10 мин. 6 => «State / State - КНБ - States» за 3 час. 37 мин. 7 => «State / State - КНБ - Play» за 57 мин. − Я не собрал ни одного Мегахеша :o( |
|||
State State - КНБ - Play | + 5 | ||
Java from 7th version allow to use String argument in switch-case construction Чуть-чуть наморщил мозг и счётчик добавил через статические переменные в классе пр0грам ) |
|||
State State - КНБ - States | + 6 | ||
метод context.show(); становится перегружаемым из класса State.java В классе состояния камня на второй иллюстрации тестово поменяли камень на бумагу и вывели результат на экран В среднем окне видно, что один и тот же оператор context.show(); выводит разные значения в консоль после изменения состояния в классе Камня Прикрутив к этой конструкции рандомайзер получим отличную игру |
|||
State State - Вступление | + 8 | ||
поведенческий шаблон проектирования Состояние очень напоминает перегружаемые методы В зависимости от контекста один и тот же интерфейс, как я понял из вводной, способен по-разному выполнять свои задачи Простейший пример - старый плёночный магнитофон, в зависимости от того, в каком он состоянии (в каком режиме работает), от него получают разный результат (музыка играет или наоборот что-то записывается в этот момент), и доступны разные функции. К примеру, когда идет запись, невозможно включить перемотку Отличие шаблона Состояние от шаблона Стратегия в бОльшей гибкости, если Стратегия выбирается и шаг вправо, шаг влево - запрет, то Состояние не имеет этих ограничений Вспомнилась старая песня Толкуновой о женской жизни от младых ногтей, до старости - не Стратегия, ибо возможны девиации Как раз ближе к Состоянию - в разные периоды у дам разные задачи и цели и переходы из одного в другое состояние возможны вариативно |
|||
Iterator ФИНАЛЬНЫЙ УРОК | + 4 | ||
вот и новый курс за плечами, количество говорят должно перерасти в качество, жаль небыстрый это процесс Итератор несложен и для новичка удобен к пониманию и осмыслению Два принципа в основе - проверить наличие следующего элемента для обработки И обработать как требуется Это база - булевский метод hasNext проверит есть ли куда двигаться, а метод next, возвращающий обрабатываемый элемент занимается его изменением как того требует ТЗ Всё остальное - уже надстройка В нашей игре итератор реализован в Cards.java |
|||
Iterator Iterator - BlackJack - Play game | + 5 | ||
выиграть у Дилера, как оказалось, несложно ))) Но это без ставок. С оными, картина мира меняется и люди готовы снять последнюю сами-знаете-что )) Разделяй и властвуй - хороший принцип алгоритмизации жизни, применённый в разработке игры, помог разделить игру на три этапа, в коде это был просто свич-кейс, в каждой из Сцен (STAGE) применили свои наборы правил и проверку условий. Обошлись ифэлзами, присвоением, суммированием, оператором НЕ (!), и оператором БОЛЬШЕ (>) С этим небогатым инструментарием игра взлетела и играет как надо Можно завтра делать видео по курсу Код несложный, думаю рассказать и показать не составит труда Осознать, что подсветка клавиатуры в тёмном салоне машины уже не так актуальна ибо смотрю на экран, а не на клавиатуру. Спасибо Евгению Витольдовичу за прошлогодний марафон по СОЛО! |
|||
Iterator Iterator - BlackJack - Stages | + 7 | ||
свич-кейс приходит на помощь, когда не хватает ифэлза Игра в черного Джека состоит из трех стадий, не считая победы Дилера или Игрока 1) У Дилера видна карта 2) Игрок набирает себе сколько ему вздумается 3) Дилер набирает себе 4 - Победа того или другого Свич сделали на эти стадии, остался последний урок с деталями раздачи Интрига! |
|||
Iterator Iterator - BlackJack - Random | + 7 | ||
вариант тасовки карт такой придумал я) Выполнять проверку на соседство номеров карт и если они отличаются не более, чем на 1, то менять их местами Для этого придется использовать промежуточные переменные, но в итоге сам массив будет уже содержать тасованные карты |
|||
Дневник успеха 2019-11-17 : Не поклонюсь богачу, коль своей ржи намолочу. | + 6 | ||
Какая глубокая мысль заложена в заглавии к уроку! Мысль освобождения труда! Мир Вашему дому, коллеги. За эту неделю: + Я проверил 86 отчётов у 18 формулистов. + Я написал 12 сообщений 5 формулистам общим объёмом 9 килобукв + Я набрал 3 текста: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок 2 => «C# набор / Заполнение массива», без ошибок 3 => «C# набор / Формирование массива», без ошибок + Я решил 8 задач: 1 => «Обман цикла / Множитель» на 100% 2 => «Обман цикла / Делитель Макса» на 100% 3 => «Обман цикла / Делитель Мина» на 100% 4 => «Обман цикла / Цифра три» на 100% 5 => «Обман цикла / Вечное ожидание» на 100% 6 => «Точка и плоскость / Четверть плоскости» на 100% 7 => «Точка и плоскость / Прямоугольник» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Iterator / Iterator - Numbers - Inner class» за 12 мин. 2 => «Iterator / Iterator - Numbers - System» за 1 час. 36 мин. 3 => «Iterator / Iterator - Random» за 1 час. 47 мин. 4 => «Iterator / Iterator - Digits» за 4 час. 13 мин. 5 => «Iterator / Iterator - BlackJack - Introduction» за 3 час. 39 мин. 6 => «Iterator / Iterator - BlackJack - Card» за 41 мин. 7 => «Iterator / Iterator - BlackJack - Deck of Cards» за 23 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Iterator Iterator - BlackJack - Deck of Cards | + 6 | ||
массив карт одномерный каждая карта будет иметь свой номер хранимый в переменной каунт заполнение массива карт - через вложенные циклы проверка хезнекста - пока счетчик больше нуля после заполнения массива карт до 51 (52 - 1) Итератор работает декрементом и выводом элемента массива карт |
|||
Iterator Iterator - BlackJack - Card | + 7 | ||
узнал названия мастей на английской мове Spades, //пики Diamonds, // буби Hearts, // черви Clubs // трефы Метод ordinal() возвращает порядковый номер элемента перечисления enum Дождаться, когда девять из илевена будет поправлено в найн ))) |
|||
Iterator Iterator - BlackJack - Introduction | + 5 | ||
познакомлюсь на на пятом десятке с карточной игрой, не всё порхать в неведении, хоть знать буду правила для начала Если у игрока после взятия новой карты сумма очков превысит 21, то такая ситуация называется «перебор» Дилер произносит «много» и снимает ставку игрока в пользу казино Если у дилера в первых двух картах набирается 21 очко (BlackJack), то все игроки (кроме тех, у кого тоже BlackJack), проигрывают Помимо PSVM в классе Program, будут в нашей игре ещё пара классов, класс Кард с перечислением карт и перечислением мастей, с методом подсчета «веса» карт. Класс КардЗззз будет имплементировать (реализовывать) интерфейс Итерабл, а дочерний ему класс КардззззИтератор будет реализовывать интерфейс Итератор с классическими методами проверки следующего члена ряда и обработки текущего с переходом далее |
|||
Iterator Iterator - Digits | + 9 | ||
суть итератора остаётся неизменной при всех ухищрениях наследования, перегрузки и удочерения классами классов - проверь наличие следующего элемента для обработки и вторым методом обработай его как требуется не забыв тут же инкрементировать, что бы перейти к следующему элементу Набросали три класса, один из которых пээсвээм, оставшиеся - находятся в родственной связи (один в другом) Пр0грам запускает цикл для перебора последовательности и возвращает на экран результат работы Родственники заняты иным Диджитс имплементит Итерабл и присваивает намберу значение аргумента на входе в конструкторе Дочерний ДиджитсИтератор имплементит уже Итератор и содержит базовые методы проверки следующего элемента и второй метод, занятый возвращением остатка от деления на 10 и целочисленным делением для «откусывания» хвоста числа с целью перехода к следующей цифре слева направо |
|||
Iterator Iterator - Random | + 8 | ||
поля родительского класса видны из дочернего класса без каких-либо дополнительных ухищрений - область видимости класса-родителя включает и область видимости дочернего класса Вариант остановки работы программы - если возвращено совпадение с округленным числом Пи |
|||
Iterator Iterator - Numbers - System | + 7 | ||
перебор элементов с целью их анализа или обработки - фундаментальный шаблон проектирования дающий ключи к широкому спектру успешно решенных задач Можно наваять самостоятельно интерфейс итератора - требуется проверка на наличие очередного элемента ряда и требуется метод обработки с инкрементированием - переходом к следующему элементу, наличие которого проверяется предыдущим методом Итератора Удалив самостоятельно написанные интерфейсы мы использовали системные библиотеки Джавы - функционал был сохранён |
|||
Iterator Iterator - Numbers - Inner class | + 8 | ||
при перемещении класса из отдельного файла внутрь другого класса не забывай удалить из сигнатуры перемещаемого класса модификатор доступа паблик - внутри класса он уже не нужен Класс с модификатором доступа паблик в отдельном файле и класс внутри класса использующего это класс эквивалентны по доступности Видеть снег и слякоть за окном наступающих сумерек в без малого четыре часа дня... |
|||
Дневник успеха 2019-11-10 : Худому делу – худой конец. | + 7 | ||
Итератор являет собой базовый функционал, инициализирующий стартовое значение для перебора, проверяющий наличие следующего элемента, выполняющий действие над элементом перебираемого множества и модифицирующий его инкрементом для следующего шага цикла. Это уяснил из начатого курса Java Iterator. На этой же неделе закрыл курс по книге оценок студентов без сбоев и ошибок. Следующая неделя - на выполнение нормы курсанта и продолжение Java Iterator в ожидании создания игры BlackJack, после чего можно будет играть с Дилером один на один ))))) За эту неделю: + Я проверил 114 отчётов у 21 формулиста. + Я написал 21 сообщение 8 формулистам общим объёмом 8 килобукв + Я набрал 3 текста: 1 => «СОЛО на клавиатуре / 100 упражнений», без ошибок 2 => «СОЛО на клавиатуре / Видео экзамен», без ошибок 3 => «C# набор / Служебные слова», без ошибок + Я решил 8 задач: 1 => «Вечность / Знаки зодиака» на 100% 2 => «Do-рацикл / Сумма последовательности» на 100% 3 => «Do-рацикл / Меньше ε» на 100% 4 => «Do-рацикл / Снова меньше ε» на 100% 5 => «Do-рацикл / По модулю меньше ε» на 100% 6 => «Обман цикла / Делим без остатка» на 100% 7 => «Обман цикла / Без пятерок» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Iterator / Iterator - Numbers - Introduction» за 1 час. 0 мин. 2 => «Iterator / Iterator - Numbers - 12345» за 13 мин. 3 => «Iterator / Iterator - Numbers - Iterable» за 18 мин. 4 => «Iterator / Iterator - Numbers - Running» за 20 мин. 5 => «Java Book / Сериализация - Сохранение базы» за 46 мин. 6 => «Java Book / Сериализация - Восстановление базы» за 1 час. 5 мин. 7 => «Java Book / ФИНАЛЬНЫЙ УРОК» за 1 час. 11 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Iterator Iterator - Numbers - Running | + 7 | ||
создали класс Numbers, который имплементирует (реализует) интерфейс Iterable и применили его при пересчете до пяти Класс Iterator экземпляр под именем numbers = присвоить новый экземпляр new класса Numbers(). и применить в нём метод iterator (); А метод итератор имеет одну строку с оператором return new NumbersIterator (); А уже в намберситераторе расписана все правила счета от единицы до пяти с проверкой наличия следующего для счета элемента и с инкрементом для перехода далее |
|||
Iterator Iterator - Numbers - Iterable | + 5 | ||
при переборе в цикле вайл numbers возвращаются объекты, поэтому, если нужно выполнять над возвращаемыми объектами математические действия, эти возвращаемые объекты надо приводить к типу Integer , это делается указанием интеджера в скобках перед объектом Интерфейс Итерабл требуется для организации общего доступа к его функционалу из любого места программы, как я понял |
|||
Iterator Iterator - Numbers - 12345 | + 9 | ||
краткие уроки более удобоваримые юниты для постижения Создали класс для игр с пересчетом до пяти, имплементировали им интерфейс Итератор ручной сборки (не джавовский из библиотеки, а свой, собственноручно сваянный ) |
|||
Iterator Iterator - Numbers - Introduction | + 5 | ||
итерация == вызов и обработка однотипных предметов в рамках поставленной задачи, к примеру пересчета boolean hasNext (); - правда или ложь, что есть следующий объект для обработки - такова задача этого метода Object next (); - метод обработки имеющегося в наличии и проверенного вышеуказанным методом объекта, возвращается этим методом ОБЪЕКТ |
|||
Java Book ФИНАЛЬНЫЙ УРОК | + 9 | ||
ЯП Java может многое, важно понять его механизмы действия и знать функционал встроенных библиотек и тогда можно горы свернуть В курсе были рассмотрены и применены на практике: + UML- диаграммы - инструмент для наброска детализированного эскиза будущего проекта + draw.io - сайт для бесплатного проектирования наших задумок + перегруженные методы - это такие функции, которые отличаются в сигнатуре лишь содержимым внутри круглых скобок(то есть аргументами) + ArrayList отличается от хешсета упорядоченным хранением элементов (можно вызывать по индексу) + Хешсет хорош, когда надо, чтобы во множестве элементы хранились в единственном числе - чтобы не было повторений + unreachable code - если видишь такую ошибку, ищи где ограничил границы доступа к подсвеченному оператору - или фигурная скобка выше затесалась, или код завершает работу раньше по команде - что-то такое надо найти + разные версии Эклипса могут по разному возвращать в консоль или в окно дебага значения переменных - или текст или код символов + при работе с графическим интерфейсом удобнее дотнет - у сишарпа в ВижлСтудии встроен функционал для рисования форм - в Java с этим сложнее + области видимости ограничиваются фигурными скобками - если чего не видно - смотри на эти границы и ломай их пабликами или правь сами границы + переименование полей или методов безопаснее делать через меню Рефакторинг - есть меньше вероятности где-то пропустить вызов переименовываемого и не переименовать по оплошности + сериализация - это запись БД на диск + десериализация - восстановление БД с диска |
|||
Java Book Сериализация - Восстановление базы | + 6 | ||
действительно, если в классе бук добавить поле, сохранения не происходит и база данных затирается новой чистой Считывание из файла производит объект класса FileInputStream Он в свою очередь передается объекту класса ObjectInputStream, который уже обрабатывается методом readObject() В итоге получается объект, требующий приведения типов к классу Book По окончании чтения (сериализации) не забываем закрывать методом клоуз новосозданные и упомянутые выше объекты Все это обернуто в трайкеч на случай возникновения ошибок. При ошибке в базу (в файл) записывается чистая заготовка БД (происходит затирание) - в бою таким лучше не баловаться ) Завтра финальник, надо запилить видео. После этого хотелось бы практики на игровом поле программирования Когда тестишь анимированные коды смотрится живее Надо что-то такое поискать |
|||
Java Book Сериализация - Сохранение базы | + 5 | ||
при использовании глобальной переменной БДИ! где она создается, по аналогии в уроке вот это место: book = new Book(); Если в методе не только создать переменную, но и проинициализировать её же, то новосозданная переменная будет иметь область видимости в пределах фигурных скобок, а именно не дальше этого метода, где она проинициализирована И создана!!! Важно ГДЕ описана ИНИЦИАЛИЗАЦИЯ, в той области видимость и будет у переменной Выполненная сериализация с выводом на экран - длинная строка в консоли внизу нулевой иллюстрации к Вашему вниманию Иллюстрация с индексом 1 - результат вывода БД в файл book.ser на винт компа |
|||
Дневник успеха 2019-11-03 : Скоро сказка сказывается, да не скоро дело делается. | + 3 | ||
Птичка по зернышку клюет, мы по уроку постигаем обширнейшую тематику Тексты набираю каждый день, но не всегда предложенные по умолчанию - клава так и глючит, знаки препинания в латинице возвращает не те, приходится искать задания без знаков препинания. Книга оценок студентов близится к финалу, похоже будем ее записывать на винт - круто! Следующая неделя - курс на завершение начатого раздела, что дальше поглядим. Очень интересен курс Валерия Владимировича - красочный сайт получается, такой же аккуратный, как привычный Авито. С любопытством наблюдаю за отчетами коллег по цеху ) За эту неделю: + Я проверил 139 отчётов у 25 формулистов. + Я написал 12 сообщений 4 формулистам общим объёмом 7 килобукв + Я набрал 3 текста: 1 => «C# набор / 40 Ангелов», без ошибок 2 => «Java - Запуск / Компиляция», без ошибок 3 => «Java - Вывод данных / Java Keywords», без ошибок + Я решил 9 задач: 1 => «Пока-цикл / Сумма квадратов» на 100% 2 => «Пока-цикл / Трехзначные квадраты» на 100% 3 => «Пока-цикл / Сумма ряда» на 100% 4 => «Пока-цикл / Мой век» на 100% 5 => «Вечность / Неделька» на 100% 6 => «Вечность / 12 месяцев» на 100% 7 => «Вечность / Отрывной календарь» на 100% 8 => «Вечность / Високосное свидание» на 100% 9 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Java Book / Меню - Планирование» за 36 мин. 2 => «Java Book / Меню - Интерактив» за 49 мин. 3 => «Java Book / Меню - Работа со студентами» за 5 час. 12 мин. 4 => «Java Book / Меню - Работа с лекциями» за 2 час. 11 мин. 5 => «Java Book / Меню - Запись студента на курс» за 3 час. 58 мин. 6 => «Java Book / Меню - Работа с оценками» за 1 час. 7 мин. 7 => «Java Book / Сериализация - Статическое напряжение» за 33 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Java Book Сериализация - Статическое напряжение | + 4 | ||
сериализация == слепок с текущего состояния БД и запись этого образа на носитель для хранения и последующего использования Десериализация == получение данных с носителя обратно в программу С большой буквы мы обращались к статическому классу, где один-единственный экземпляр (на то он и статический) С малой литеры мы уже обращаемся к экземпляру класса (нестатическому), то есть этих экземпляров может быть более одного |
|||
Java Book Меню - Работа с оценками | + 5 | ||
добились перегруженными методами, чтобы при добавлении оценки студенту выводились варианты уроков лишь тех, на которые студент уже записан Для этого дописали перегруженный метод private Lesson inputLesson(Student student) который получает агрументом Студента и возвращает список уроков лишь по нему Урок изобилует переделками, ошибками и поиском решения этих ошибок, к чести преподавателя - успешным поиском Урок полезен тем курсантам, которые просят облегчения подачи материала, пеняют на недостатки в освещении тем уроков - здесь записан урок не как по нотам, а с естественным в практической работе поиском ошибок Гладко было на бумаге, да забыли про овраги - не про этот урок Здесь по оврагам успешно прошлись и вышли на столбовую дорогу ) |
|||
Java Book Меню - Запись студента на курс | + 9 | ||
классы (а также поля и методы) с модификатором доступа private недоступны для вызова из других классов, то есть за пределами видимости, ограниченной ФИГУРНЫМИ СКОБКАМИ Рефакторинг в Эклипс доступен как вручную с клавиатуры, так и с помощью контекстного меню для выделенного участка кода (иллюстрация номер 0) |
|||
Java Book Меню - Работа с лекциями | + 6 | ||
переименовывая методы или поля не забывай делать это через рефактор, ибо переименовав в одном месте, ты можешь не переименовать все его упоминания - отсюда будут ошибки Простота кода - залог здоровья и уважения программиста. Кодинговый паркур хорош на конкурсах и при саботаже, если ты не враг сам себе и коллегам по оружию, не надо городить вавилонские столпы из хитрого кода. Чем код понятнее, тем больше к тебе плюшек прилетит. Чем код вычурнее, тем больше синяков да шишек в будущем. |
|||
Java Book Меню - Работа со студентами | + 8 | ||
для корректности считывания имени студента требуется лишний символ ввода строки получаемый кодом scanner.nextLine(); Без него имя студента получается со значением null Для целостности БД крайне не рекомендуется устраивать независимые друг от друга счетчики индексов взаимосвязанных полей - при редактировании, удалении, добавлении и т.д. возможны ошибки! |
|||
Java Book Меню - Интерактив | + 6 | ||
область видимости переменных ограничена фигурными скобками, внутри которых они объявлены Если хочешь видимости переменной за пределами скобок - объявляй эту переменную за пределами тех скобок Иначе к переменной нельзя будет обратиться Это как с погранцами - хочешь ездить за кордон - делай загран-аусвайсс |
|||
Java Book Меню - Планирование | + 4 | ||
Java не имеет IDE с графическими редакторами форм, аналогичных VisualStudio Для создания меню в проекте обратились к цифровому меню в командной строке Поиск студента и поиск урока будет организован по индексам |
|||
Дневник успеха 2019-10-27 : Не печь кормит, а поле. | + 7 | ||
Неделя последнего тепла в Кирове, со вторника уже минуса и там до марта-апреля не жди поблажек. Мороз будет, это не юга ) Курс по книге оценок студентов идет без запинок, что радует. Норма выполняется, там где клавиатура ставит палки в колеса, беру предыдущие задания без знаков препинания и выполняю их. Перебрать ноут для замены клавы пока не собрался, хотя новая клава давно лежит. План на следующую неделю - встретить первые снега и топать по дорожке стабильной учебы. Если будет марафон по слепому набору - записаться. Любопытно пройти снова и сравнить результаты. За эту неделю: + Я проверил 149 отчётов у 25 формулистов. + Я написал 9 сообщений 4 формулистам общим объёмом 6 килобукв + Я набрал 4 текста: 1 => «Java - Запуск / public private», без ошибок 2 => «Java - Запуск / void», без ошибок 3 => «Java - Запуск / Main», без ошибок 4 => «Java - Запуск / Главное заклинание», без ошибок + Я решил 8 задач: 1 => «For-to-чки / Факториал» на 100% 2 => «For-to-чки / Сумма фактов» на 100% 3 => «For-to-чки / Кратные» на 100% 4 => «For-to-чки / Двухзначный столбик» на 100% 5 => «For-to-чки / Среднее арифметическое» на 100% 6 => «Пока-цикл / Сумма цифр» на 100% 7 => «Пока-цикл / Все цифры» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Java Book / Создание - Класс Point» за 4 час. 6 мин. 2 => «Java Book / Отладка - Пошаговый проход» за 1 час. 7 мин. 3 => «Java Book / База - Статический класс» за 1 час. 17 мин. 4 => «Java Book / База - Список студентов» за 2 час. 31 мин. 5 => «Java Book / База - Список лекций» за 3 час. 57 мин. 6 => «Java Book / База - Список оценок» за 40 мин. 7 => «Java Book / ПОЛУФИНАЛЬНЫЙ УРОК» за 25 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Java Book ПОЛУФИНАЛЬНЫЙ УРОК | + 7 | ||
курс держит мозги в тонусе - вспомнил про draw.io - онлайн редактор UML- диаграмм, позволяющий набросать план битвы с задачей - усилил понимание перегруженных методов, имеющих одинаковые сигнатуры с отличием лишь в аргументах - понял, что статик нужен, когда экземпляр класса или поле ЕДИНСТВЕННЫЙ(-ОЕ) для всех - по множествам: юзай хешсет, когда не нужно дублирование, а ЭррейЛист, когда нужен поиск по индексам - познал ошибку "unreachable code» - сия пакость учиняется, если ты наваял метод, завершающий работу, не добравшись до строк с этими операторами - вот они и будут анричаблами - до них никак не добраться и компилятор тебе об этом мирно сообщит - дебаггинг в разных версиях Эклипса кажет разное - где-то будут удобочитаемые литеры, а где-то коды символов По сути заданных в этом уроке вопросов имею доложить следующее: Форма подачи материала более чем нравится ибо проект работает и взлетает, а когда не взлетает у преподавателя - он находит ошибку и указывает на нее, тем самым демонстрируя, что ошибки бывают у всех и не надо паниковать Преимущества курса в простоте изложения материала, доступного для понимания даже внимательной кухарке, все ошибки либо от невнимательности, либо от разницы версий софта, что решаемо Недостатки курса, они же его преимущества, - это малая доля теоретического подкрепления, но это не блюдечко с голубой каемочкой, интернет с Гуглом у нас пока не по талонам, мешать найти книжки в свободном доступе может только Ее Величество Лень. А это уже проблема курсанта. Можно подвести ишака к воде, но пить его не заставит даже шайтан. Авгиевы конюшни темноты и безграмотности должны быть расчищены. Спасибо Игромистру за инструментарий! Сложно было решиться и расчистить гараж от хлама, копившегося в нем с детства. Вчера взял бензопилу и перчатки, пять часов и гараж готов принять Крыма на зимнюю квартиру. Глаза боятся - руки делают ) |
|||
Java Book База - Список оценок | + 6 | ||
перегруженные методы - методы, сигнатура которых разнится лишь тем, что внутри круглых скобок В зависимости от того, что прийдет в метод в виде аргументов, будет выбран подходящий из них и выполнен его код Удобно, как с ключами и замочной скважиной - какой ключ подойдет, та дверь и будет открыта! |
|||
Java Book База - Список лекций | + 10 | ||
Book.getStudent(0).addLesson(Book.getLesson(0)); означает получить студента из Book за индексом нори и присвоить ему урок также за индексом нори что эквивалентно трем строкам кода, где создается экземпляр студента из Book с индексом из скобок, создается экземпляр урока из того же Book также с индексом из скобок и в третьей строке студенту методом адэдэЛессон передается агрументом созданный выше экземпляр урока |
|||
Java Book База - Список студентов | + 6 | ||
класс Book призванный стать БД для студенческой книжки реализован статическими эррэйлистами студентов, лекций и оценок Эррэйлист позволяет дубликаты, в отличие от хешсэта В методе поиска студента по индексу применили трайкеч на случай некорректного индекса при запросе - в этом случае возвращается налл |
|||
Java Book База - Статический класс | + 8 | ||
снова воспользовались преимуществом модификатора static в классе Book для организации доступа к БД без необходимости создания экземпляров этой книги - она у нас одна на всех перегружаемый getPoints в зависимости от того, ЧТО приходит в него в виде аргументов, возвращает либо все оценки, либо оценки по предмету, либо оценки по указанному студенту Велика же сила аргументов, коли так смело рулят они методами ) |
|||
Java Book Отладка - Пошаговый проход | + 8 | ||
конструктор берет значение из аргументов, указанных в сигнатуре и присваивает, в соответствии с нашей инструкцией, значение из аргументов текущему объекту (создаваемому этим самым конструктором) В этом цель и задача конструктора Вторая иллюстрация - прошу внимания. Если в уроке, в видео значения в массив представлены удобочитаемыми буквами и «Миша» который студент читается просто, то в моей версии Эклипс литеры обозначались кодами, пришлось сличать и поискать в гугле) К примеру, равно, равно, равно у меня обозначено кодом 61. Это видно повторами на второй иллюстрации. HTML-код = или = - нагуглил про знак равно А в видео, на 11 минуте 15 секунде значения в Переменных читаются самими буквами и знаками - так удобнее, я считаю. Вот тебе и обновленная версия Эклипс, усложнили удобочитаемость |
|||
Java Book Создание - Класс Point | + 6 | ||
unreachable code - строки, до которых в методе не добраться компилятору Получилось у меня такое чудо-юдо по причине заталкивания строк кода ПОСЛЕ строки с ритерном ))) Метод уже сделал в этом случае возврат требуемого от него, а дальше еще строки обнаруживаются - и до них никак не добраться. Подсказка Эклипса плюс знание басурманского языка туманного альбиона сделали свое дело, допер и исправил ) |
|||
Дневник успеха 2019-10-20 : Орать — не в дуду играть. | + 5 | ||
За эту неделю: На неделе закончил явного сапера, боролся с глюками клавиатуры, вытащил лодку в гараж, переобулся на зиму, начал новый курс про книгу оценок студентов. Этот курс и намереваюсь проходить на следующей неделе. Как бы отучить себя от набора текста, кроме слепого метода? Слепым шлепаю с удовольствием, но привычка к традиционному тыканию - как курить бросить, нет-нет да снова по бабушкински начинаешь печатать... + Я проверил 104 отчёта у 23 формулистов. + Я написал 16 сообщений 6 формулистам общим объёмом 7 килобукв + Я набрал 5 текстов: 1 => «C# набор / Служебные слова», без ошибок 2 => «C# набор / Ввод элементов матрицы», без ошибок 3 => «C# набор / Вывод числа по разрядам», без ошибок 4 => «Java - Запуск / Class!», без ошибок 5 => «Java - Запуск / Static», без ошибок + Я решил 9 задач: 1 => «For-to-чки / Улыбки» на 100% 2 => «For-to-чки / Псевдо-квадраты» на 100% 3 => «For-to-чки / Палочки» на 100% 4 => «For-to-чки / Много палочек» на 100% 5 => «For-to-чки / Алфавит» на 100% 6 => «For-to-чки / Тивафла» на 100% 7 => «For-to-чки / DY-Алфавит» на 100% 8 => «For-to-чки / Степень» на 100% 9 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Java Book / Вступление - Примеры UML схем» за 4 час. 20 мин. 2 => «Java Book / Проектирование - Три класса» за 31 мин. 3 => «Java Book / Проектирование - Классные диаграмы» за 48 мин. 4 => «Java Book / Проектирование - Выяснение отношений» за 7 час. 35 мин. 5 => «Java Book / Создание - Класс Lesson» за 37 мин. 6 => «Java Book / Создание - Класс Student» за 29 мин. 7 => «Явный Сапёр / Условие победы!» за 1 час. 51 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Java Book Создание - Класс Student | + 5 | ||
хешсет хорош тем, что дубликаты запрещены и при повторах значения одинаковые не дублируются, а остаются в единственном числе Из минусов хешсета - беспорядочные последовательности элементов, каждый раз элементы могут тасоваться в любом порядке |
|||
Java Book Создание - Класс Lesson | + 8 | ||
избавились от статика в точке входа в программу методом создания экземпляра Если не использовать класс гетнейм для объекта, то возвращен будет не нейм, а хешкод! Бди! |
|||
Java Book Проектирование - Выяснение отношений | + 10 | ||
если при позиционировании стрелки взаимосвязи добиться зеленой подсветки объекта, на который указывает устанавливаемая стрелка, то окончание стрелки окажется в привязке к этому объекту Из недостатков я лишь заметил дублирование связи Student "получил оценку» Point и связи Point "поставлена оценка" Student |
|||
Java Book Проектирование - Классные диаграмы | + 10 | ||
перегруженные методы отличаются друг от друга аргументами, имея при этом ОДИНАКОВЫЕ названия методов Плюсом обозначай паблик Минусом обозначай приватики Диезом (решеточкой) обозначай протекторат |
|||
Java Book Проектирование - Три класса | + 14 | ||
моделирование проекта средствами UML сокращает издержки по созданию программы вследствие простоты редактирования графического проекта в отличие от самого кода программы скреативить поля и деяния классов ) |
|||
Java Book Вступление - Примеры UML схем | + 9 | ||
наследование - доступ к полям и методам в родительском классе для дочерних объектов Ассоциация - связь между экземплярами класса у которых прослеживается систематизируемый функционал Бинарная ассоциация - один экземпляр владельца ассоциируемого имеет также один экземпляр (к примеру, один человек ассоциируется с одним номером ИНН) N-арная ассоциация - у одного родителя много детей, где N - число детей )) Агрегация - объединение экземпляров по одинаковым атрибутам (отделы на предприятии, владельцы айфонов и владельцы андроидофонов) Композиция - букет свойств, существующих в привязке к некоему объекту, без объекта набор свойств теряет смысл Поиски бесплатных UML-редакторов свелись в моем кейсе к знакомству с аналогами Microsoft Visio |
|||
Явный Сапёр Условие победы! | + 10 | ||
сообщение о победе или проигрыше реализовано тернарным оператором Проверки условия для развития игры выполнено на основе анализа содержимого ячеек массивов map и top (нижний и верхний этажи соответственно) Верхний этаж (top) имеет свойство открываться, показывая текущее состояние массива map В массиве map хранятся мины либо пустые ячейки |
|||
Дневник успеха 2019-10-13 : Делано наспех — и сделано насмех. | + 7 | ||
Явный сапер в эту неделю пробудил идеи по созданию ведомости учета согласований в моей работе, не связанной с кодингом, что было явным же прорывом в прикладном плане знаний, полученный от учебы. Дело стало за реализацией замысла. Следующую неделю потратить на продолжение уроков в разделе Java За эту неделю: + Я проверил 117 отчётов у 19 формулистов. + Я написал 17 сообщений 6 формулистам общим объёмом 7 килобукв + Я набрал 3 текста: 1 => «C# набор / Служебные слова», без ошибок 2 => «C# набор / Заполнение массива», без ошибок 3 => «C# набор / Формирование массива», без ошибок + Я решил 7 задач: 1 => «For-to-чки / Созвездие» на 100% 2 => «For-to-чки / Сто квадратов» на 100% 3 => «For-to-чки / Отрицательные» на 100% 4 => «For-to-чки / Тройка» на 100% 5 => «For-to-чки / Семёрка» на 100% 6 => «For-to-чки / Туз» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 9 видеоуроков: 1 => «Java Book / Вступление - Язык UML» за 24 мин. 2 => «Явный Сапёр / Радуга картинок» за 2 час. 0 мин. 3 => «Явный Сапёр / Карта местности» за 42 мин. 4 => «Явный Сапёр / Философия сапёра» за 1 час. 20 мин. 5 => «Явный Сапёр / Мины на панели» за 1 час. 23 мин. 6 => «Явный Сапёр / Мышечный адаптер» за 3 час. 17 мин. 7 => «Явный Сапёр / Правый флаг» за 49 мин. 8 => «Явный Сапёр / Открывашка» за 58 мин. 9 => «Явный Сапёр / Волшебный метод» за 1 час. 16 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Явный Сапёр Волшебный метод | + 5 | ||
рекурсия начинается с операторов прекращения рекурсии, затем в цикле перебирает ячейки справа и слева на единичку, в подцикле ячейки сверху и снизу по одной, если не вышли за пределы игрового поля, то открывает ячейки, вызывая саму себя со сдвигом на единицу снова. Так и открывает, пока не сработает останов, прописанный в начале метода Если его не прописать, этот останов, то конца и края работе рекурсивной функции не будет никогда ) Понять, почему при увеличении переменной N_MINES не растет ожидаемо количество мин на игровом поле. Вопрос все еще открытый, советы приветствуются. |
|||
Java Book Вступление - Язык UML | + 8 | ||
Язык UML - взгляд на проект с высоты птичьего полета Не вдаваясь в подробности, показать суть происходящего на поле боя - вот задача UML Увидеть лес за деревьями не всегда однозначно простая задача, потому и возникает необходимость абстракций Что-то опускаем малозначительное, выводим лишь поля и методы классов и их взаимосвязи - вот задача UML- диаграммы |
|||
Явный Сапёр Открывашка | + 8 | ||
при соответствии количества флагов около клетки номеру (цифре) клетки - открываем рядом стоящие клетки Реализовали пересчетом в цикле окружающих клеток и суммированием в переменную count Найти причину малого количества мин на игровом поле |
|||
Явный Сапёр Правый флаг | + 5 | ||
cчетчик мин плюсует и минусует успешно, вплоть до того, что смело и без ошибок уходит в минуса ) Массив отвечающий за второй слой подвергается проверке ветвлением ифэлзом, в зависимости от открытости ставит флаг либо его убирает Маус бат0н три == это правая клавиша мыши или тачпада |
|||
Явный Сапёр Мышечный адаптер | + 4 | ||
после добавления привязки к панели в операторе panel.addMouseListener(new MinesAdapter()); ушла ошибка нажатия клавиши мыши в пределах лейбла в подвале окна игры MouseEvent.BUTTON1 - событие нажатия ЛКМ Батон2 - ПКМ ) Возможность ставить отметки на ячейках наводит на мысли, как переделать игру в подобие ведомости по пройденным шагам в моей подработке, где множество объектов требует координации и учета, но это так, задел на будущее. Однако, в своей учебе я начал нащупывать привязку к нуждам в реальной жизни, что приободряет ) e.getButton()== MouseEvent.BUTTON3 - это сила! |
|||
Явный Сапёр Мины на панели | + 7 | ||
класс созданный внутри класса имеет доступ к полям и методам родительского без дополнительных модификаторов доступа сразу Метод pack(); при расчёте размера окна учитывает лишь ранее добавленные элементы и элементы добавленные строками ниже им не учитываются |
|||
Явный Сапёр Философия сапёра | + 5 | ||
не важно, что ты скажешь собеседнику, важно что он услышит и тем более поймет История развития науки подтверждает, что гранит был крепок и давались победы никак не на блюдечке с голубой каемочкой Главный тормоз на пути развития Человека - его лень. Действительно, проще делать привычные манипуляции руками, чем попробовать сформировать новую картину мироздания и оседлать эту действительность. Кто в здравом уме, по времена Ивана Великого мог подумать, что граждане массово станут летать по небу и ездить в туристические маршруты на Северный полюс? За одни слова такие полагалось отлучение от всего чего возможно и всяческие ай-яй-яи. А тут дожили до того, что от большого ума уже от самолетов призывают отказываться) Океан, врут небось, изучен на 5 процентов всей своей площади под водой - это сколько еще не открыто и не понято. Потенциал огромен, но лень, но мракобесие и призывы поворачивать назад. А тащить себя к знаниям, как тот барон Мюнхаузен - это человека должна тема зацепить, войти как говорят младые, и воодушевить. Тогда прорыв возможен, но не гарантирован. Смотрю за «прогрессом» мобильников последние годы - ничего принципиально нового, одни украшательства и точение воды в ступе. Та же песня с автомобилями - из года в год перерисовывают мордахи, прикручивают ненужные опции, реагируют на конъюнктуру усыхающегося рынка, а о принципиально новых решениях - ни-ни. Те же машинки Тесла, как пишут, под днищем таскают тысячу - другую батареек 18650, как у меня в фонарике. Туда бы ядерный двигун с ежегодной заменой безопасных ТВЭЛов - вот бы прорыв... Стены и цепи излишни, когда тюрьма в голове определяет границы допустимого. А возможно действительно, если не все, то многое, что и не приснится ))) |
|||
Явный Сапёр Карта местности | + 7 | ||
по памяти от курса майнсвипера, функционал игры был разделен на «этажи», на надводный слой, видимый всегда и на подводный слой, где могли быть мины Заполнение минами сейчас сделали рандомом, вокруг них в цикле обходятся все клетки и в них добавляется по единичке, единицы суммируются, если мины рядом |
|||
Явный Сапёр Радуга картинок | + 6 | ||
https://prog-cpp.ru/miner/ - картинки доступны здесь Прозрачностью они уже не наделены, потому можно просто посмотреть на борьбу Евгения Витольдовича с непослушными транспарентными картинками ) Вывод на форму картинок по вертикали начинается с края формы, оттого требуется дополнительный марджин либо паддинг Вывод на форму осуществляется методом drawImage графики Graphics g |
|||
Дневник успеха 2019-10-06 : Лиха беда - начало. | + 7 | ||
Попробовал по окончании курса игры Зоникс поиграть с Сишарпом - Дотнет дал по рукам ) При составлении алгоритма рекурсии в VisualStudio отказался отрабатывать класс, отвечающий за позиционирование курсора. Привести в чувство этот механизм оказались у меня ручонки коротки, решил вернуться снова к Джаве. Благо, ни Эклипс, ни Идея пока не преподносили сюрпризов. Кросплатформенность Джавы в моем случае может оказаться подспорьем - надо в таком разе возделывать эту ниву. Дотнет пока пусть ошвартуется в тихой гавани до лучших времен ) Явный Сапёр - курс на следующую неделю. За эту неделю: + Я проверил 75 отчётов у 23 формулистов. + Я написал 9 сообщений 5 формулистам общим объёмом 7 килобукв + Я набрал 6 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «Java - Запуск / Скоростная Java», без ошибок 4 => «Java - Запуск / Компиляция», без ошибок 5 => «Java - Вывод данных / Java Keywords», без ошибок 6 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 7 задач: 1 => «START - Запуск / Привет, Java!» на 100% 2 => «For-to-чки / Трёхзначные числа» на 100% 3 => «For-to-чки / Двухзначные числа» на 100% 4 => «For-to-чки / Отрицательно» на 100% 5 => «For-to-чки / Улица» на 100% 6 => «For-to-чки / Радуга» на 100% 7 => «WRITE - Вывод данных / Калькулятор» на 100% + Я выполнил 7 видеоуроков: 1 => «Комбинаторика / Рекурсия. Главный секрет» за 1 час. 52 мин. 2 => «Комбинаторика / Рекурсия. Заливка области» за 2 час. 24 мин. 3 => «Game Xonix / Конец игры» за 6 час. 42 мин. 4 => «Game Xonix / ФИНАЛЬНЫЙ УРОК» за 11 мин. 5 => «Явный Сапёр / Вступление» за 14 мин. 6 => «Явный Сапёр / Блок-схема» за 25 мин. 7 => «Явный Сапёр / Окно проекта» за 46 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Явный Сапёр Окно проекта | + 7 | ||
в Java есть 2 основных пакета для создания графических интерфейсов (Graphics User Interface): Abstract Windows Toolkit (AWT, использует виджеты операционной системы) и Swing. Для группировки компонент интерфейса используются контейнеры (Container) Для создания основного контейнера для приложения наиболее распространенный контейнер - это JFrame (есть еще JWindows и JApplet) Результат работы JFrame - на иллюстрациях к отчету |
|||
Явный Сапёр Блок-схема | + 8 | ||
paint в Java перерисовывает всю палитру, а не отдельные элементы, как в дотнет Блок-схема позволяет абстрагироваться от деталей и сформировать общую картину требуемого от программы draw.io - суперресурс для блок-схем, если нужно что-то приличнее каракулей от руки ) |
|||
Явный Сапёр Вступление | + 9 | ||
InellijIdea найдена в курсе, как IDE для выполнения уроков - надеюсь здесь не будет сюрпризов, как вчера, когда класс локализации курсора не отрабатывал как в уроке Со второго раза удалось открыть поле и не подорваться |
|||
Комбинаторика Рекурсия. Заливка области | + 8 | ||
static в уроке применяется для того, чтобы не связываться с созданием экземпляров Рекурсия вызывает сама себя с перегрузкой аргументов Останов происходит по указанному условию Если останов прописан криво - рекурсия способна зациклиться //Console.SetCursorPosition(x, y); При незаремаренной строке с этим оператором вываливается стековерфлоу. Если этот оператор закомментировать - компилируется успешно, но все символы в строку )) Поиграл с границами цикла - не помогло, юзинги добавил как в уроке - тоже не то. Оставлю здесь пока до лучших времен - надо попробовать на PC, будет ли там такая же катавасия, даже любопытно |
|||
Комбинаторика Рекурсия. Главный секрет | + 8 | ||
автор крас0т Робота Шарпа - некий Алексей Рекурсия имеет неудобства - медленно работает и способна к зацикливанию при некорректном описании завершения Кривую Гильберта начертил Кривые Гильберта названы в честь немецкого математика Давида Гильберта. Впервые они были описаны в 1891 году |
|||
Game Xonix ФИНАЛЬНЫЙ УРОК | + 6 | ||
лично для меня в этом курсе было прорывом увидеть воочию действие рекурсии на примере работы метода по закраске оттяпанной Зониксом территории у воды. Не сказать, чтобы я про ту рекурсию впервые слышал, попадалась она и прежде, но чтобы понять - вот здесь уже заслуга этого курса. Сам для себя отметил, что вижу рекурсию, понимаю когда она останавливается, понимаю что происходит при ее перегрузке с помощью аргументов. В общем, то был восторг, когда дошло и понял. Допиливать игруху можно долго и с удовольствием, можно добавить музыку фоном, анимировать события звуками столкновений. Курс живой и интересный. |
|||
Game Xonix Конец игры | + 7 | ||
метод кэтчд возвращает булево значение ИСТИНА если разность по модулю координаты фигуры и координаты Зоникса не превышает единицу В ином случае - метод возвращает ЛОЖЬ доделать урок с перерывами в рабочем графике |
|||
Комбинаторика Рекурсия. Вступление | + 5 | ||
- рекурсия своими словами (спасибо курсу Игра Зоникс) Смотрим иллюстрацию номер один. Не вторую, а именно первую ))) Метод прекращает свое выполнение по условию - if (getMap (x, y) != Cell.WATER) что в переводе на русский значит, если ячейка икс игрек не равна значению WATER - заканчиваем Далее - устанавливаем ячею с координатами икс игрек в значение ячея ЮЗЕД setMap (x, y, Cell.USED); А затем дается направление выполнения предыдущей инструкции - иди налево, иди направо, иди вверх, иди вниз или (на языке Java) fillUsed(x - 1, y); fillUsed(x + 1, y); fillUsed(x, y - 1); fillUsed(x, y + 1); Эти четыре строки и есть рекурсия ибо метод так и называется fillUsed, а аргументами он переопределяется на разные четыре стороны. Вот и вся наука. Игрушки - суперсредство для понимания основ мироздания ))) В курсе Игра Зоникс https://www.videosharp.info/video/xonix раздела Java я нащупал твердь земную и начал понимать и осознавать что есть рекурсия в одном из уроков не в теории, а на практике. Сие событие снова внесло вместо привычной рутинной сумятицы будней, глоток свежего воздуха ПОНИМАНИЯ происходящего. В том же курсе был рекомендован курс "Комбинаторика" и решение созрело само собой - идти по тверди земной и прощаться с хлюпающей слизью недопонимания и лености. После двух дней выходных, потраченных на разгром садового домика, требующего сноса, выдался свободный вечер воскресного дня - смотрю на предмет, что делать после завершения Зоникса, благо этот момент не за горами. Комбинаторика - вот курс! Отдать швартовые концы. Малый газ назад. Лево руля. Товсь! |
|||
Дневник успеха 2019-09-29 : Клади картошку в окрошку, а любовь в дело. | + 7 | ||
Обязанность без любви делает человека раздражительным. Ответственность без любви делает человека бесцеремонным. Справедливость без любви делает человека жестоким. Правда без любви делает человека критиканом. Воспитание без любви делает человека двуликим. Приветливость без любви делает человека лицемерным. Ум без любви делает человека хитрым. Компетентность без любви делает человека неуступчивым. Честь без любви делает человека высокомерным. Власть без любви делает человека насильником. Богатство без любви делает человека жадным. Вера без любви делает человека фанатиком. За эту неделю: + Я проверил 76 отчётов у 17 формулистов. + Я написал 15 сообщений 8 формулистам общим объёмом 7 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / public private», без ошибок 2 => «Java - Запуск / Скобки», без ошибок 3 => «Java - Запуск / String[] args», без ошибок 4 => «Java - Запуск / System.out», без ошибок 5 => «Java - Запуск / Главное заклинание», без ошибок 6 => «Java - Циклы / Java For Loops», без ошибок 7 => «Java - Циклы / Java While Loops», без ошибок + Я решил 8 задач: 1 => «Условный оператор / Возрастание» на 100% 2 => «Условный оператор / В промежутке» на 100% 3 => «Условный оператор / Минимальное неотрицательное» на 100% 4 => «Условный оператор / Наибольшее при условии» на 100% 5 => «For-to-чки / Созвездие» на 100% 6 => «For-to-чки / Сумма» на 100% 7 => «For-to-чки / Сумма квадратов» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 9 видеоуроков: 1 => «Game Xonix / Среда обитания» за 2 час. 28 мин. 2 => «Game Xonix / Главный герой» за 36 мин. 3 => «Game Xonix / Клавиши подсознания» за 1 час. 17 мин. 4 => «Game Xonix / Прыжок в воду» за 1 час. 16 мин. 5 => «Game Xonix / Прогулки по воде» за 1 час. 33 мин. 6 => «Game Xonix / Заштриховка области» за 1 час. 49 мин. 7 => «Game Xonix / Живая Легенда» за 28 мин. 8 => «Game Xonix / Процент Земли» за 35 мин. 9 => «Game Xonix / Следующий уровень» за 45 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Game Xonix Следующий уровень | + 7 | ||
начали с создания глобальной интовой переменной отвечающей за номер уровня добавили ускорение игры, увеличение участников по чету и нечету, в легенду дописали текущий уровень. Делать урок в тисках времени Поехал на барщину к садистам ))) |
|||
Game Xonix Процент Земли | + 5 | ||
вызов свеженаписанного метода располагай в точке входа, если он нужен сразу, либо в том методе, в процессе выполнения которого все готово для запуска Где поставишь инструкцию - тогда он и будет запущен Код выполняется строка за строкой сверху вниз, исключая случаи вызова методов, расположенных в других местах По окончании выполнение продолжается далее вниз с места, после которого был осуществлен вызов стороннего метода |
|||
Game Xonix Живая Легенда | + 7 | ||
на третьей минуте урока добавляется инструкция про шрифт - он у автора уже проимпортирован, надо лишь добавить самостоятельно импорт, если такого еще не делалось ) Несложно |
|||
Game Xonix Заштриховка области | + 12 | ||
рекурсия в заполнении заканчивается в случае выхода за пределы WATER Следующая инструкция дает команду ячейку икс игрек пометить как ПОТРАЧЕНО ) А заканчивается рекурсивка четырьмя инструкциями КУДА идти с требуемыми метками ячеек - НА ВСЕ ЧЕТЫРЕ СТОРОНЫ ))) Затем, когда четыре стороны упираются в вышеуказанную НЕ ВОДУ - все, финита ла комедиа, рекурсия прекращается. Конгениально! |
|||
Game Xonix Прогулки по воде | + 8 | ||
передача аргументов в метод - наше все ) field.replace (Cell.PATH, Cell.WATER); | | public void replace( Cell find, Cell with) { for (int y = 0; y < MAP_HEIGHT; y++) for (int x = 0; x < MAP_WIDTH; x++) { if (map [x][y] == find) map [x][y] = with; } } В переводе на русский так: циклом проверим все клетки и если клетка икуалз первому аргументу ( а он у нас Cell.PATH), то заменить его на значение второго аргумента (Cell.WATER) |
|||
Game Xonix Прыжок в воду | + 10 | ||
рисуется одна ячейка пути по той причине, что в методе мувЛэнд кейс для встречи воды так и приказывает "нарисовать одну клетку пути" case WATER: onWater = true; field.setMap(x, y, Cell.PATH); Другого пока кодом не предусмотрено, цикла не прикручено (как я предполагаю), оттого и одна-одинешенька эта серая клетка пути |
|||
Game Xonix Клавиши подсознания | + 10 | ||
применили библиотеки java.awt.event.KeyListener и java.awt.event.KeyEvent; Парочка багов была допущена мной за этот урок, то метод в названии обидел на литеру, то аргументы передавал х и у вместо dx и dy Внимательное перекуривание кода дало свои плоды - Зоникс прислушался к шепоту клавиш и пошел в требуемом направлении |
|||
Game Xonix Главный герой | + 12 | ||
чтобы иметь доступ к единому объекту Зоникса, добавление его на игровое поле выполнили иначе, нежели кубик и шарик. Сначала в корневом классе игры объявили Зоникса, затем уже в общей куче создали объект Зоникса новый, а уже потом добавили его в items |
|||
Game Xonix Среда обитания | + 12 | ||
в шаблон Субъект добавили поле (характеристику шаблона-класса) area типа Cell Чтобы кубики жили на земле в конструкторе кубика вызываем конструктор из суперкласса Субъект с передачей аргумента (Cell.LAND); Для актуализации новых правил для субъектов дописали метод rotate, отвечающий за поведение игровой фигуры в момент появления у границ Уследить в режиме дебага за созданием объектов |
|||
Дневник успеха 2019-09-22 : Держись плуга плотней, будет прибыльней. | + 8 | ||
Как же хорошо владеть слепым методом набора текста! Спасибо прошлогоднему марафону от Евгения Витольдовича и Владимира Владимировича! Как много нас там было, и как много курсантов ушло в туман, и столько же новых лиц появилось. Не слышно ли про новые марафоны? Неделя началась с соплей и кашля, понедельник и вторник лежал тюленем дома, оттого стал позволять себе делать по паре уроков за день. Затем, в среду лежать дома надоело, хворь отступила и вернувшись в строй я продолжил проходить по паре уроков за день, кроме пятницы. Пятница выбилась из графика. Зоникс рисовался успешно, возникающие ошибки наутро исправлялись. Есть вероятность, что курс будет успешно и плодотворно завершен и в черепе останется здравое зерно, способное к всходам. Следующую неделю ожидает замена клавиатуры на ноуте - глючит периодически верхний правый край, отчего страдает набор текста, касаемый спецсимволов. Доставка клавы пишет, что она уже в Кирове, дело станет за малым - перебрать ноут его не поломав )) Всем удачи на коде и в компиляции! За эту неделю: + Я проверил 84 отчёта у 19 формулистов. + Я написал 16 сообщений 6 формулистам общим объёмом 7 килобукв + Я набрал 7 текстов: 1 => «C# набор / Вывод числа по разрядам», без ошибок 2 => «C# набор / Выделение подстроки», без ошибок 3 => «C# набор / Максимальный элемент массива», без ошибок 4 => «Java - Запуск / Class!», без ошибок 5 => «Java - Запуск / Static», без ошибок 6 => «Java - Запуск / void», без ошибок 7 => «Java - Запуск / Main», без ошибок + Я решил 8 задач: 1 => «Условный оператор / Сумма или произведение» на 100% 2 => «Условный оператор / Чет / нечет» на 100% 3 => «Условный оператор / Отрицательный куб» на 100% 4 => «Условный оператор / Три Максима» на 100% 5 => «Условный оператор / Сумма положительных» на 100% 6 => «Условный оператор / Минимальное расстояние» на 100% 7 => «Условный оператор / Минимальное произведение» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 12 видеоуроков: 1 => «Game Xonix / Живой шарик» за 12 мин. 2 => «Game Xonix / Снова рефакторинг» за 19 мин. 3 => «Game Xonix / Абстрактный субъект» за 12 мин. 4 => «Game Xonix / Базовое наследство» за 8 мин. 5 => «Game Xonix / Броуновское движение» за 1 час. 1 мин. 6 => «Game Xonix / Размножение шариков» за 57 мин. 7 => «Game Xonix / Чудеса полиморфизма» за 1 час. 25 мин. 8 => «Game Xonix / Упаковка панели в окно» за 20 мин. 9 => «Game Xonix / Земля и Вода» за 6 час. 8 мин. 10 => «Game Xonix / Матрица Мира» за 52 мин. 11 => «Game Xonix / Цветовая дифференциация» за 3 час. 54 мин. 12 => «Game Xonix / Острова, острова» за 38 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Game Xonix Острова, острова | + 8 | ||
геттер принимает координату ячейки и смотрит, если на карте - то возвращает элемент массива map сеттер координату ячейки с ее типом и снова, если на карте, то устанавливает ее значение |
|||
Game Xonix Цветовая дифференциация | + 11 | ||
объекты enum в языке Java являются объектами класса и шаблона Singleton Заменили интовые игровые элементы на перечисление Урок писался после длительного перерыва - интересное обстоятельство, почти экскурс в историю ВидеоШарпа увидел ) |
|||
Game Xonix Матрица Мира | + 12 | ||
random.nextInt(MAP_HEIGHT) генерирует случайное число от нуля до MAP_HEIGHT Все добавленные методы, если надо чтобы они шли в бой, должны быть вызваны, иначе будут лежать в коде балластом |
|||
Game Xonix Земля и Вода | + 10 | ||
в классе Филд присобачил лишнюю закрывающую фигурную скобку - программный код покрылся ошибками - с удовольствием обнаружил ошибку и компиляция прошла успешно. Понять, отчего не отрисовывается правая часть игрового поля. Код просмотрел - ошибок пока не нашел. То ли еще будет. |
|||
Game Xonix Упаковка панели в окно | + 7 | ||
отказались от пикселного задания игрового поля и стали плясать от количества шагов по нему Коэффициентами жестко расписали размер нового построения игрового поля Метод pack() вывел готовый вариант игры на экран |
|||
Game Xonix Чудеса полиморфизма | + 8 | ||
Сабджект породил Куба, куб породил движение Сабджект породил Шарика, Шарик породил движение Другими словами class Ball extends Subject и class Cube extends Subject Отсюда при создании Сабджекта мы смело вызываем методы подклассов и получаем в одном массиве и Шарики и Боксики Профит! ) |
|||
Game Xonix Размножение шариков | + 9 | ||
шарики размножил циклом ) Класс Боллз подтягивает шарики из АррэйЛиста Есть конструктор, создающий новый АррэйЛист Класс умеет добавлять шарик перемещать шарик отрисовывать этот же шарик |
|||
Game Xonix Броуновское движение | + 7 | ||
random.nextInt(MAP_WIDTH); возвращает случайное целое число от нуля до аргумента в скобках В силу неведомых причин в какой-то момент пропал двигающийся шарик, кинулся искать проблему - нашел неведомо откуда продублировавшийся аргумент MAP_WIDTH здесь: x = random.nextInt(MAP_WIDTH); y = random.nextInt(MAP_HEIGHT); Исправил - снова шарик летает вместе с боксиком Объявили random Проинициализировали (создали экземпляр) random Использовали random |
|||
Game Xonix Базовое наследство | + 6 | ||
ключевое слово extends Имя_класса позволяет подключить к классу, в сигнатуре которого указан этот икстендз, функционал того класса, имя которого приведено после икстендз Удобно, чесслово ) |
|||
Game Xonix Абстрактный субъект | + 6 | ||
абстрактный класс НЕ МОЖЕТ иметь экземпляра При написании абстрактного класса не ставь круглые скобки - класс это не метод, скобки надо ТОЛЬКО фигурные Поля protected доступны внутри самого класса и для наследников |
|||
Game Xonix Снова рефакторинг | + 8 | ||
рефакторинг - оптимизация кода без изменения функционала программы в дереве класса следующая легенда: треугольник пустотелый - переменная или поле класса треугольник закрашенный - метод, функция или набор инструкций что может делать экземпляр класса треугольник закрашенный с литерой С - конструктор экземпляра класса (этакий тридэпринтер) |
|||
Game Xonix Живой шарик | + 9 | ||
шарик начал двигаться после добавления в его класс идентичных инструкций движения разворота и отслеживания ненарушения границ канваса. После указания в точке входа в программу инструкции шарику двигаться - он взлетел Ошибка недобега до границ игрового поля была в несоблюдении целочисленности деления размера игрового поля на размер шарика и боксика |
|||
Дневник успеха 2019-09-15 : Не говори, что делал, а говори, что сделал. | + 7 | ||
После 872-летнего дня города Москвы, вызвавшего день пропуска вернулся в строй и нарастил бонусы с единицы до пяти за трудовую неделю. Со скрипом стал заставлять себя в спокойной обстановке печатать, глядя на экран, а не как бабушка - тыкая по кнопочке смотря на клавиатуру. В этом есть свой кайф. В Кирове была последняя теплая неделя, пришли холода. Скоро белые мухи прилетят. Согреваюсь курсом Зоникс, похоже на ДемоИгры, деланные полтора года назад, но тут чуть больше понимания, есть надежда, что пойдет в коня корм) Всех с праздником! 256! За эту неделю: + Я проверил 116 отчётов у 22 формулистов. + Я написал 6 сообщений 4 формулистам общим объёмом 4 килобуквы + Я набрал 1 текст: 1 => «C# набор / Ввод элементов матрицы», без ошибок + Я решил 7 задач: 1 => «Логика / Мигалка» на 100% 2 => «Условный оператор / Максимум» на 100% 3 => «Условный оператор / Большая разница» на 100% 4 => «Условный оператор / Меньше, равно, больше» на 100% 5 => «Условный оператор / Три числа» на 100% 6 => «Условный оператор / Модуль» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Game Xonix / Координатный кубик» за 3 час. 36 мин. 2 => «Game Xonix / Классный кубик» за 2 час. 0 мин. 3 => «Game Xonix / Перемещение кубика» за 55 мин. 4 => «Game Xonix / Живой кубик» за 17 мин. 5 => «Game Xonix / Граница на замке» за 30 мин. 6 => «Game Xonix / Точное прикосновение» за 1 час. 39 мин. 7 => «Game Xonix / Классный шарик» за 23 мин. − Я не собрал ни одного Мегахеша :o( |
|||
Game Xonix Классный шарик | + 7 | ||
cоздали класс для шарика, где прописали его размер и цвета В основном классе объявили шарик и в методе создающем канвас создали экземпляр шарика Классу Канвас, наследующему ДжиПанел наказали строго-настрого для экземпляра нашего шарика использовать метод (инструкцию) пэйнт Увидели шарик на канвасе Пока не движется ) |
|||
Game Xonix Точное прикосновение | + 7 | ||
видимое игровое поле не равно канвасу, отсюда необходимость корректировать диапазон движения боксика |
|||
Game Xonix Граница на замке | + 3 | ||
не сразу понял как "очевидно" вычисляется мап хейт и мап видтх ) Делится высота и ширина поля на размер боксика. Чуток почесал репу и дошло, что речь идет о количестве допустимых прыжков по канвасу нашего боксика. Дедукция, однако. А с чистого листа сам бы не догадался, как это вычислить. Метод rotate проверяет значение следующего шага боксика с привлечением метода onMap, если возвращается ложное значение - знак следующего шага меняется на противоположный. В тупиковой ситуации боксик ставится в депо на позицию ноль ноль ) |
|||
Game Xonix Живой кубик | + 7 | ||
пользоваться вечным циклом ))) JVM не хранит в памяти предыдущие картинки и отрабатывает метод Paint с чистого листа |
|||
Game Xonix Перемещение кубика | + 5 | ||
canvas.repaint (); перерисовывает игровое поле Вызов метода, дорисованного тобой, не забывай прописывать от точки входа в программу (метод майн) |
|||
Game Xonix Классный кубик | + 10 | ||
Как и предполагал, вынесение констант, отвечающих за цвет суши и воды, рассмотрели в следующем уроке Перед вызовом метода из другого класса СОЗДАЙ ЭКЗЕМПЛЯР! Почему приватная переменная икс допускает свое изменение? Мой вариант - в том же классе создается экземпляр этой переменной, причина доступа в этом. Не промазал? |
|||
Game Xonix Координатный кубик | + 9 | ||
применение констант и переменных, вместо прописывания значений в инструкциях, организует код в более удобоваримый вид Проще и гибче становится редактирование, поиск разделов и внесение правок |
|||
Дневник успеха 2019-09-08 : Ленивому всегда праздник. | + 6 | ||
проверил 133 отчёта у 24 формулистов. + Я написал 8 сообщений 2 формулистам общим объёмом 6 килобукв + Я набрал 5 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «C# набор / Определение массива», без ошибок 4 => «Java - Запуск / Компиляция», без ошибок 5 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 7 задач: 1 => «Логика / A или не-B» на 100% 2 => «Логика / Побитовое НЕ» на 100% 3 => «Логика / Побитовое И» на 100% 4 => «Логика / Побитовое ИЛИ» на 100% 5 => «Логика / Исключающее ИЛИ» на 100% 6 => «Логика / Сдвиг вправо» на 100% 7 => «Логика / Сдвиг влево» на 100% + Я выполнил 5 видеоуроков: 1 => «Game Xonix / Свои правила» за 12 мин. 2 => «Game Xonix / Установка Eclipse» за 28 мин. 3 => «Game Xonix / Окно проекта» за 20 мин. 4 => «Game Xonix / Использование констант» за 18 мин. 5 => «Game Xonix / Панельный Canvas-класс» за 24 мин. |
|||
Game Xonix Панельный Canvas-класс | + 10 | ||
создали вложенный класс, рисующий квадрат на панели игры Вызов родительского класса в Java осуществляется ключевым словом super. awt - abstract window toolkit |
|||
Game Xonix Использование констант | + 7 | ||
наименование констант пиши КАПСОМ, чтобы не отклоняться от линии партии Константы именованные не одним словом разделяй в названии НИЗКИМ_ПОДЧЕРКИВАНИЕМ Применение констант позволяет упростить поиск атрибутов, если располагать их в начале класса. Заодно, константа будет сопротивляться попыткам изменить ее значение - дополнительная защита. |
|||
Game Xonix Окно проекта | + 5 | ||
маленьким удобствам ) ctrl + увеличивает шрифт ctrl - уменьшает шрифт Знать горячие клавиши полезно - не всегда же мышкой елозить как офисный клерк будешь ) При отсутствии в коде инструкции setDefaultCloseOperation(EXIT_ON_CLOSE); закрытие окна JFrame не влечет за собой автоматического завершения работы программы. |
|||
Game Xonix Установка Eclipse | + 7 | ||
Eclipse, скачанный в 2019 году (Eclipse IDE for Java Developers Version: 2019-06 (4.12.0) Build id: 20190614-1200) затребовал в отличие от старой версии, как в уроке, обязательно указать пэкэдж. Дописал ему пэкэдж, привязку попросил к проекту и после этого ошибка ушла. |
|||
Game Xonix Свои правила | + 4 | ||
final int PERCENT_OF_WATER_CAPTURE = 1; // почти режим IDDQD из DOOMa))) Стало легче перескакивать на следующий уровень, вот такое читерство получилось. |
|||
Дневник успеха 2019-09-01 : Дело мастера боится. | + 4 | ||
За эту неделю: + Я проверил 151 отчёт у 28 формулистов. + Я написал 18 сообщений 8 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / Скоростная Java», без ошибок 2 => «Java - Запуск / System.out», без ошибок 3 => «Java - Запуск / Главное заклинание», без ошибок 4 => «Java - Вывод данных / Java Keywords», без ошибок 5 => «Java - Вывод данных / Калькулятор», без ошибок 6 => «Java - Циклы / Java For Loops», без ошибок 7 => «Java - Циклы / Java While Loops», без ошибок + Я решил 8 задач: 1 => «Типы данных / Длина окружности» на 100% 2 => «Типы данных / Формат целого числа» на 100% 3 => «Логика / Плюс и минус» на 100% 4 => «Логика / Инкремент и декремент» на 100% 5 => «Логика / Разберемся в отношениях» на 100% 6 => «Логика / Логическое НЕ» на 100% 7 => «Логика / Логическое И» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «ООФрукты / Фабрика параметров» за 33 мин. 2 => «ООФрукты / Буфера в стрингах» за 1 час. 2 мин. 3 => «ООФрукты / Документация Деда Мороза» за 55 мин. 4 => «ООФрукты / Задедомороженный Архив» за 6 час. 22 мин. 5 => «ООФрукты / Комплименты Деду Морозу» за 19 мин. 6 => «Game Xonix / 5 ошибок обучающих курсов. Java + Xonix » за 25 мин. 7 => «Game Xonix / Поиграем?» за 45 мин. − Я не собрал ни одного Мегахеша :o( Неделя выдалась суматошная, но я не бросил выполнение нормы курсанта, хотя перед сном занятия были с деревянной головой, что явно мешало)) Взял на следующую неделю курс с игрой Зоникс от израильских военных, написавших гаму видимо от скуки во время службы в ЦАХАЛ в 1984 году, когда я был еще второклассником ) Хочу выйти из этого курса не просто переписывальщиком за учителем, а почуявшим почву под ногами джуном ) Планы амбициозные, но День Знаний обязывает. Ибо плох тот солдат, что не хочет стать генералом ) Всем удачи на коде, катайтесь, не ломайтесь и набирайте правильные скиллы! Я календарь переверну... )))) |
|||
Game Xonix Поиграем? | + 3 | ||
public модификатор пришлось добавить в class GameXonix extends JFrame { Иначе в Эклипсе гама не стартовала - давала ошибку (вторая иллюстрация) UPD - попробовал удалить паблик модификатор - гама уже и без него стартует. Причину пока не понял, как первая инициализация требовала паблика что ли... Гама занятная, не всяка птица долетит до середины Днепра, и не всяк гамер дотыкает до пятого уровня ) |
|||
Game Xonix 5 ошибок обучающих курсов. Java + Xonix | + 4 | ||
Xonix - игруха занимательная, написана впервые когда я во второй класс пошел )) Любопытно прокачать имеющиеся негустые навыки и получить действующую гаму написанную своими усилиями. В бой! |
|||
ООФрукты Комплименты Деду Морозу | + 8 | ||
Еще одна ступенька к вершине горы Фудзи. Как она далека... Как далеко и подножие этой громадины. Я уже отчетливо вижу одиноких путников, делающих первые шаги вверх, я с неменьшим интересом наблюдаю и верхние уступы н склоне, где видны друзья из Пензы, Севастополя и Подмосковья. Курс знакомит с организацией полноценного проекта по калькуляции подарков какого-то деда, у кого Мороза, у кого Санты Клауса, к кого Йолло Пукки, всех не перечесть. В процессе прохождения уроков код создается, правится, рефакторится и сопровождается созданием документации. После внесения изменений программа запускается и тестируется под нагрузкой возможных входных данных. Вся разработка ведется в IDE Eclipse от монстров Майкрософта, часть работ выполняется в командной строке. При достаточном внимании и наличии времени и желания сей курс осилит даже девочка с рисепшена ) Дорогу осиливает идущий. Всем курсантам - терпения и внимания к деталям. Зачастую проблема кроется в вышеуказанном или в отличающейся версии софта - они там тоже не почивают на лаврах, пишут разное и, что работает под одной версией, то может стать колом под другой. Не раз обжигался, считаю нужным упомянуть. Автору курса спасибо за труд! |
|||
ООФрукты Задедомороженный Архив | + 5 | ||
исправили возвращаемый методом getConvert аргумент - null без исправления оставался бы nullом всегда Создали jar-архив программы, являющий собой единый файл, способный к запуску на любой машине, где установлена JVM Создать архив не в консоли можно через меню Eclipse: File - Export - Java - Jar |
|||
ООФрукты Документация Деда Мороза | + 7 | ||
Дописали комментарии, результаты выводятся в браузер |
|||
ООФрукты Буфера в стрингах | + 3 | ||
String каждый раз создает новый объект. Во избежание потерь времени и ресурсов используй StringBuffer |
|||
ООФрукты Фабрика параметров | + 5 | ||
создание параметров вывели в отдельный класс и все взлетело без проблем, что радует опробовали рефакторинг - множественное переименование - тоже работает на ура |
|||
Дневник успеха 2019-08-25 : С горы и сани бегут, а на гору и воз не идет. | + 5 | ||
За эту неделю: + Я проверил 132 отчёта у 28 формулистов. + Я написал 17 сообщений 8 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / Class!», без ошибок 2 => «Java - Запуск / public private», без ошибок 3 => «Java - Запуск / Static», без ошибок 4 => «Java - Запуск / void», без ошибок 5 => «Java - Запуск / Main», без ошибок 6 => «Java - Запуск / Скобки», без ошибок 7 => «Java - Запуск / String[] args», без ошибок + Я решил 8 задач: 1 => «Алгоритмика / Подпрограммы» на 100% 2 => «Алгоритмика / Строки» на 100% 3 => «Алгоритмика / Матрицы» на 100% 4 => «Алгоритмика / Регулярные выражения» на 100% 5 => «Типы данных / Байты и числа» на 100% 6 => «Типы данных / Системы счисления: вывод» на 100% 7 => «Типы данных / Системы счисления: ввод» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «ООФрукты / Коллекция HashMap» за 31 мин. 2 => «ООФрукты / Конвертабельные классы» за 47 мин. 3 => «ООФрукты / Параметр Формата» за 5 час. 6 мин. 4 => «ООФрукты / Параметрический Созидатель» за 2 час. 5 мин. 5 => «ООФрукты / Создатель» за 40 мин. 6 => «ООФрукты / Как шагает Дед Мороз» за 35 мин. 7 => «ООФрукты / Конвертабельность» за 25 мин. − Я не собрал ни одного Мегахеша :o( В понедельник был некий сбой - уроки первые(которые обычно за ноль байтов) были по полтиннику, в картинке в понедельник я якобы ничего не сделал, но собрал как бы 5 байт за мегахеши - а в текстовом отчете формируется "− Я не собрал ни одного Мегахеша :o(" Что-то база чудит) Фрукты конвертируются, норма выполняется. Скоро новый учебный год. На следующей неделе продолжим грызть ООП и Java в курсе "Фрукты". Всем успехов в поднятии себя над собой! |
|||
ООФрукты Конвертабельность | + 5 | ||
если количество параметров ровно два и второй из них эквивалентен типу вывода - создаем экземпляр соответствующего конвертера набирать отчет с лежащим на ноуте котиком |
|||
ООФрукты Как шагает Дед Мороз | + 3 | ||
при сравнении на эквивалентность со строковым аргументом НЕ ПРИМЕНЯЙ == Правильно использовать метод .equals Не сразу понял, отчего минус help у меня обрабатывается минус отдельно, хелп отдельно Оказалось, я между ними пробел учинил, чего делать категорически не стоило )) |
|||
ООФрукты Создатель | + 7 | ||
если есть проблема с созданием (несозданием) экземпляра переменой - для начала просто допиши у нее модификатор static |
|||
ООФрукты Параметрический Созидатель | + 10 | ||
создали заготовку для парсера вариантов ввода из командной строки |
|||
ООФрукты Параметр Формата | + 5 | ||
добавили второй аргумент при запуске программы для выбора формата вывода результата работы программы Теперь формат будет выбираться не залезая в код программы с ее перекомпиляцией, а простым указанием второго аргумента при запуске программки ) NOTA BENE! В квадратных скобках указывай НЕОБЯЗАТЕЛЬНЫЙ аргумент |
|||
ООФрукты Конвертабельные классы | + 9 | ||
раскидали функционал конвертабл по классам, удалив методы в лоджике Наследование из лоджика также удалили, ибо оно там не нужно - наследование переехало по новосозданным классам Неудобство в сохранении на данный момент правки выбора формата вывода прямо в коде - предполагаю, что это будет выделено в возможность получения аргументом из командной строки |
|||
ООФрукты Коллекция HashMap | + 11 | ||
интерфейс - класс без реализации функционала преследующий своей целью описание возможностей Создали хешмап - вывод идет в случайном порядке |
|||
Дневник успеха 2019-08-18 : К чему душа лежит, к тому и руки приложатся. | + 8 | ||
За эту неделю: Начали падать листья с деревьев, к лодке не ездил уже пол-месяца, в Кирове льет дождь и зачем оплачивать стоянку на лодочной, неясно ) Фруктовый курс дошел до интерфейсов, попробовали вывод в иксемел, джейсон и в роу. Хорошо, когда занимаешься с утра, а не вечером с деревянной головой. Консольные задачи простого уровня стали даваться к самостоятельному решению, что также радует и обнадеживает. Набираю этот текст глядя в экран ноута, а не на клавиатуру, как делают бабушки в офисах. Тоже приятный момент, за что низкий поклон Евгению Витольдовичу. Следующая неделя будет посвящена фруктовому курсу и выполнению нормы курсанта. Всем удачи и настойчивости в росте! + Я проверил 84 отчёта у 23 формулистов. + Я написал 13 сообщений 5 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «C# набор / Формирование массива», без ошибок 2 => «C# набор / Вывод элементов массива», без ошибок 3 => «C# набор / Ввод элементов матрицы», без ошибок 4 => «C# набор / Вывод элементов матрицы», без ошибок 5 => «C# набор / Вывод числа по разрядам», без ошибок 6 => «C# набор / Выделение подстроки», без ошибок 7 => «C# набор / Максимальный элемент массива», без ошибок + Я решил 8 задач: 1 => «Алгоритмика / Узник цикла IF» на 100% 2 => «Алгоритмика / Последовательность» на 100% 3 => «Алгоритмика / Математика» на 100% 4 => «Алгоритмика / Любимые циклы» на 100% 5 => «Алгоритмика / По цифрам» на 100% 6 => «Алгоритмика / Матрёшки» на 100% 7 => «Алгоритмика / Простые массивы.» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «ООФрукты / Пошаговый проход» за 3 час. 4 мин. 2 => «ООФрукты / Массивная строка» за 2 час. 58 мин. 3 => «ООФрукты / Логические задачи» за 39 мин. 4 => «ООФрукты / Размер множества» за 5 час. 22 мин. 5 => «ООФрукты / Список задач» за 33 мин. 6 => «ООФрукты / Форматы JSON и XML» за 1 час. 4 мин. 7 => «ООФрукты / Профессиональный Интерфейс» за 23 мин. − Я не собрал ни одного Мегахеша :o( |
|||
ООФрукты Профессиональный Интерфейс | + 6 | ||
интерфейс - класс перечисления возможностей БЕЗ их реализации внутри этого класса Множественное наследование в Java доступно лишь через интерфейс Называя интерфейс называй его с окончанием able Все методы в классе интерфейса ПУБЛИЧНЫЕ Дальше в конвЕртабл переедут методы перевода результата в иксемел, джейсон и роу, как я догадываюсь ) |
|||
ООФрукты Форматы JSON и XML | + 8 | ||
парсить XML, RAW, JSON успешно. Из рефакторинга идея отделить каждому парсеру по классу, чтобы заниматься допиливанием каждого формата в отдельном его классе |
|||
ООФрукты Список задач | + 6 | ||
перенесли функционал по подсчетам в класс Logic |
|||
ООФрукты Размер множества | + 12 | ||
hashSet хорош тем, что при повторе добавления идентичного элемента - это добавление игнорируется. Помню из прошлых курсов. Тут пригодилось. Различающиеся элементы хешсет принимает для добавления, если такой уже есть - второго в хешсете не появится. Железное правило. |
|||
ООФрукты Логические задачи | + 10 | ||
циклом фор-ич перебирается список и в переменную макс забивается количество, а в переменную фрутМакс - имя наиболее часто встречаемого фрукта. Если не путаться в синтаксисе - ничего сложного ) |
|||
ООФрукты Массивная строка | + 10 | ||
если прога матерится на отсутствие экземпляра - первое твое решение - пиши в сигнатуру СТАТИК - он не требует экземпляра, а уже дальше чеши репку и думай над оптимизацией |
|||
ООФрукты Пошаговый проход | + 7 | ||
если при считывании из буферизированного читателя добавить проверку на исключение при значении null или пусто - то при одном аргументе (одно яблоко к примеру) программа не ломается |
|||
Дневник успеха 2019-08-11 : Не начавши - думай, а начавши - делай. | + 6 | ||
+ Я проверил 146 отчётов у 25 формулистов. + Я написал 24 сообщения 11 формулистам общим объёмом 9 килобукв + Я набрал 7 текстов: 1 => «C# набор / Служебные слова», без ошибок 2 => «C# набор / Определение массива», без ошибок 3 => «C# набор / Сравнение двух целых чисел», без ошибок 4 => «C# набор / Звездочки», без ошибок 5 => «C# набор / Обмен элементов», без ошибок 6 => «C# набор / Разделить строку на слова», без ошибок 7 => «C# набор / Заполнение массива», без ошибок + Я решил 8 задач: 1 => «Алгоритмика / Типы данных» на 100% 2 => «Алгоритмика / Логика» на 100% 3 => «Алгоритмика / Условный оператор» на 100% 4 => «Алгоритмика / For-то-чки» на 100% 5 => «Алгоритмика / Пока цикл» на 100% 6 => «Алгоритмика / Обман цикла» на 100% 7 => «Алгоритмика / Точка и плоскость» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 6 видеоуроков: 1 => «ООФрукты / Фрукты из строки» за 32 мин. 2 => «ООФрукты / Волшебные конструкторы» за 33 мин. 3 => «ООФрукты / Фруктовые комментарии» за 5 час. 2 мин. 4 => «ООФрукты / Новые игрушки» за 20 мин. 5 => «ООФрукты / Какие ваши аргументы?» за 10 час. 41 мин. 6 => «ООФрукты / Рефакторинг аргументов» за 44 мин. − Я не собрал ни одного Мегахеша :o( Простые консольные задачи поддаются решению без подсказки. Это радует и обнадеживает. Не с первой попытки, но это не страшно - компилятор подсказывает в чем ошибка и ошибка мигом исправляется. Фрукты считаются, Эклипс не подводит. Следующая неделя в том же направлении - педалить джаву с эррэйлистом фруктов. |
|||
ООФрукты Рефакторинг аргументов | + 6 | ||
Проверка аргументов не относится к основной задаче программы и является лишь реализацией ветвления варианта ввода данных Отдельного класса эта часть кода недостойна Если бы речь шла о вариантах подсчета фруктов (основной функционал программы) - можно было бы организовать дополнительно класс |
|||
ООФрукты Какие ваши аргументы? | + 9 | ||
аргументы из сигнатуры метода не для красоты пишутся - они могут быть использованы при выборе ввода данных для обработки программой |
|||
ООФрукты Новые игрушки | + 3 | ||
поскольку класс enum является сборником констант, не предполагаемых для корректировки в процессе работы программы, его дублирование и переключение между дубликатами нецелесообразно Верным решением при необходимости изменений, является помещение всех констант в едином перечислении enum |
|||
ООФрукты Фруктовые комментарии | + 10 | ||
комментарии пиши над описываемым объектом (строкой выше) начинай с /** и заканчивай */ |
|||
ООФрукты Волшебные конструкторы | + 8 | ||
ключевое слово final в сигнатуре метода не позволяет наследникам вносить изменения в алгоритм работы кода этого метода |
|||
ООФрукты Фрукты из строки | + 3 | ||
перегруженные методы имеют одинаковые названия и ОБЯЗАТЕЛЬНО ОТЛИЧАЮТСЯ типами или количеством принимаемых параметров в сигнатуре метода |
|||
Дневник успеха 2019-08-04 : Не одежда красит человека, а добрые дела. | + 4 | ||
За эту неделю праздника Войск Дяди Васи: + Я проверил 258 отчётов у 24 формулистов. + Я написал 36 сообщений 8 формулистам общим объёмом 13 килобукв + Я набрал 7 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «Java - Запуск / Скоростная Java», без ошибок 3 => «Java - Запуск / Компиляция», без ошибок 4 => «Java - Вывод данных / Java Keywords», без ошибок 5 => «Java - Вывод данных / Калькулятор», без ошибок 6 => «Java - Вывод данных / Целые типы», 1 ошибка 7 => «Java - Циклы / Java While Loops», без ошибок + Я решил 8 задач: 1 => «Цифры / Штирлиц» на 100% 2 => «Цифры / Серединка» на 100% 3 => «Цифры / Зебра» на 100% 4 => «Цифры / Любовь к цифрам» на 100% 5 => «Цифры / Чётность цифр» на 100% 6 => «Календарь / Час и День» на 100% 7 => «Календарь / Первый и последний день» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 6 видеоуроков: 1 => «ООФрукты / Подготовка - Фрукты по списку» за 7 час. 0 мин. 2 => «ООФрукты / Подготовка - База фруктов» за 1 час. 13 мин. 3 => «ООФрукты / Постановка задачи» за 28 мин. 4 => «ООФрукты / Яблоки на снегу» за 34 мин. 5 => «ООФрукты / Фрукточтец» за 38 мин. 6 => «Тестирование / JUnit - Powerable» за 8 час. 18 мин. − Я не собрал ни одного Мегахеша :o( Фрукты считаются, Эклипс перестал подводить, главное следить за версиями софта. Клавиатура в ноуте иногда барахлит - чую под замену. Как раз можно будет поставить лишь английскую, чтобы кириллицу по памяти набирать через не хочу ) Нормы курсанта мало для учебы - надо почитывать и на стороне. Требуется уметь находить ответы на вопросы не заглядывая в рот Сенсею, а самостоятельно шукать. Сейчас столкнулся с задачей в консоли про минимальную и максимальную дату - на была уже решена на другом компе. Поправил на этом - не проходит. Причем, ничего принципиально не менял в коде - а затык) Пошел по ссылкам - не помогло. Поискал на локализацию ру - сработало. Приятно, когда забарываешь проблему. Всем удачной недели! |
|||
ООФрукты Фрукточтец | + 6 | ||
для считывания ввода с клавиатуры и из файла используются перегруженные методы принимающие на входе разные варианты источника данных, НО возвращающие одинаковый тип информации |
|||
ООФрукты Яблоки на снегу | + 6 | ||
При переносе строк начинай новую строку с логического оператора и смещай перенос на две табуляции Мораль урока - функция (метод) должна решать одну простую задачу и не надо валить весь функционал в одну кучу Арбуз == watermelon Имея список фруктов можно составить прейскурант к примеру |
|||
ООФрукты Постановка задачи | + 2 | ||
само собой напрашивается выделение в отдельную функцию или метод строки про инициализацию буфферизированного ридера Вывод результата тоже в отдельный блок просится |
|||
ООФрукты Подготовка - База фруктов | + 4 | ||
элементы в перечислении эквивалентны экземплярам класса с присвоенными по порядку целочисленными значениями Все элементы в перечислении enum являются public static final int |
|||
ООФрукты Подготовка - Фрукты по списку | + 7 | ||
enum позволяет ограничить зону отбора значений в рамках перечисления через запятую требуемых сущностей |
|||
Тестирование JUnit - Powerable | + 7 | ||
тесты полезны для повышения отказоустойчивости кода Необходимы в промышленном программировании Тестировщик - по квалификации не уступает программисту, ибо его задача проверить работоспособность кода на различных нагрузках и вариациях ввода JUnit знать и понимать как GIT и многое другое must have вспомнить логарифмы ) |
|||
Дневник успеха 2019-07-28 : Кто не ходит, тот и не падает. | + 6 | ||
За эту неделю: Я понял, что вольности с выбором версий ПО чреваты проблемами. Если хочешь идти нога в ногу с уроком - следи за версиями модулей, устанавливаемых и подключаемых по ходу курса. Иначе - жди сюрпризов. + Я проверил 145 отчётов у 21 формулиста. + Я написал 17 сообщений 10 формулистам общим объёмом 9 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / public private», без ошибок 2 => «Java - Запуск / Main», без ошибок 3 => «Java - Запуск / Скобки», без ошибок 4 => «Java - Запуск / String[] args», без ошибок 5 => «Java - Запуск / System.out», без ошибок 6 => «Java - Запуск / Главное заклинание», без ошибок 7 => «Java - Циклы / Java For Loops», 1 ошибка + Я решил 8 задач: 1 => «Целые задачи / Стрелки часов» на 100% 2 => «Цифры / Перевертыш» на 100% 3 => «Цифры / Ноль-ноль» на 100% 4 => «Цифры / Сердцевина» на 100% 5 => «Цифры / Крайние» на 100% 6 => «Цифры / Счастливый билет» на 100% 7 => «Цифры / Пятёрочка» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «SQL: ничего лишнего / Модификация таблицы» за 30 мин. 2 => «SQL: ничего лишнего / Группировки и функции» за 5 час. 3 мин. 3 => «Тестирование / JUnit - Система тестирования» за 2 час. 58 мин. 4 => «Тестирование / JUnit - Numbers» за 22 мин. 5 => «Тестирование / JUnit - Intellij IDEA» за 2 час. 47 мин. 6 => «Тестирование / JUnit - Testing» за 1 час. 20 мин. 7 => «Тестирование / JUnit - Exceptions» за 44 мин. − Я не собрал ни одного Мегахеша :o( Следующая неделя - завершить курс Тестирование и выбрать новый курс по зубам моим компам и мозгам ) По одежке протягивай ножки, но и расти стремись и не забывай. Я так думаю! |
|||
Тестирование JUnit - Exceptions | + 6 | ||
тестовый класс отрабатывает параллельно с работой программы и не пересекается с ней никак, кроме тестовой проверки Неправильно использовать тестовый класс для обработки данный в самой программе - это не сработает СЛЕДИТЕ ЗА ВЕРСИЕЙ ПОДГРУЖАЕМОГО JUnit (иллюстрация номер 1) При иной версии поведение будет отличаться от приведенного в уроке |
|||
Тестирование JUnit - Testing | + 5 | ||
снова борьба с версиями assertEquals(expected, actual) - сличение ожидаемого результата с полученным актуально Боролся с ошибкой The type org.junit.Assert is not accessible - ее заборол с подсказкой на сайте (см. Иллюстрация номер 1) Window - ShowView - Other - Java - JUnit - OK - ЕСЛИ НЕТ ОКНА JUnit |
|||
Тестирование JUnit - Intellij IDEA | + 10 | ||
pom.xml - файл с информацией о проекте MAVEN по пути main\java хранятся исходные коды проекта по пути test\java хранятся коды ТЕСТОВ проекта На третьей минуте при сборке проекта ошибка (иллюстрация 2) Могу предположить разницу версий пока что... Information:javac 8 was used to compile java sources Компиляция 8 версией поставила палки в колеса Ищу где поправить, все подсказки приветствуются |
|||
Тестирование JUnit - Numbers | + 6 | ||
в цикле суммирования стартуй с нуля, в цикле умножения или степеней НИКОГДА НЕ СТАРТУЙ С НУЛЯ, если тебе дорог результат ) Умножение на ноль до добра не доведет найти варианты ошибок. Первое что приходит в голову - переполнение интового типа данных в степенях |
|||
Тестирование JUnit - Система тестирования | + 10 | ||
JUnit проверяет на различные нагрузки классы и методы по отдельности каждый По завершению проверки выводится отчет по выполненным проверкам Тесты пишут до написания программы |
|||
SQL: ничего лишнего Группировки и функции | + 7 | ||
mysql> SELECT themes_id, COUNT(book) FROM books AS CBook GROUP BY (themes_id); возвращает Current database: biblio +-----------+-------------+ | themes_id | COUNT(book) | +-----------+-------------+ | 0 | 1 | | 1 | 2 | | 2 | 1 | +-----------+-------------+ 3 rows in set (0.10 sec) а mysql> SELECT themes_id, COUNT(book) AS CBook FROM books GROUP BY (themes_id); возвращает Current database: biblio +-----------+-------+ | themes_id | CBook | +-----------+-------+ | 0 | 1 | | 1 | 2 | | 2 | 1 | +-----------+-------+ 3 rows in set (0.09 sec) Порядок написания инструкций ВАЖЕН, если AS написать после FROM - он не будет исполнен Прелесть курсов Валерия Владимировича - в их достижимости для понимания даже кухаркой, коей я и являюсь на данный момент в сфере кодинга. Он даёт базу, которую может повторить любой имеющий глаза, уши и компьютер. А далее дело за самим курсантом - за уши его в программисты никто, кроме него самого, не протащит. Да и работать программером не каждый сможет, иначе бы всем раздали по ноуту и дали ТЗ с дедлайном ) Спасибо Валерий за свет в конце IDEешного тоннеля, надеюсь время потраченное Вами на создание этого курса и других, будет понято, освоено и поставлено на службу людям! Понять, что кое-что в голове таки остаётся и можно на память создать БД, таблицы, запулить туда данные, поджойнить между ними. |
|||
SQL: ничего лишнего Модификация таблицы | + 5 | ||
DESCRIBE books; - возвращает описание таблицы ALTER TABLE books ADD (kolvo int(10)); - добавляет в указанную таблицу новое поле MODIFY - правит поле DROP COLUMN - удаляет указанное поле UPDATE books SET - присваивает значения записям по условию (ID) самое сложное было - дождаться этого видеоурока в котором звук СЛЫШНО Традиционно ноут вечерами давал столь слабый звуковой ряд, что приходилось ставить на паузу, пока домашние включали на кухне воду или кипятили чайник. Спасибо Валерию за урок который слышно. Или это ноут заговорил громче? Может я не там замечал причину тихого аудио? Задумался... |
|||
Дневник успеха 2019-07-21 : Усердная мышь и доску прогрызет. | + 5 | ||
За эту неделю: Был завершен курс "Наношахматы", продолжил по фарватеру курсов Валерия Владимировича, нашего гуру из славного града Пензы, вспомнил про изучавшийся в нулевые в ВятГУ SQL, идет легко, что обнадёживает. Следующая неделя - сохранять эшелон, обходить грозовые скопления, вести курс в направлении вершины Фудзиямы. + Я проверил 161 отчёт у 25 формулистов. + Я написал 12 сообщений 5 формулистам общим объёмом 7 килобукв + Я набрал 7 текстов: 1 => «C# набор / Вывод элементов матрицы», без ошибок 2 => «C# набор / Вывод числа по разрядам», без ошибок 3 => «C# набор / Выделение подстроки», без ошибок 4 => «C# набор / Максимальный элемент массива», без ошибок 5 => «Java - Запуск / Class!», без ошибок 6 => «Java - Запуск / Static», без ошибок 7 => «Java - Запуск / void», без ошибок + Я решил 8 задач: 1 => «Целые задачи / Периметр» на 100% 2 => «Целые задачи / Площадь» на 100% 3 => «Целые задачи / Дискриминант» на 100% 4 => «Целые задачи / Вторая дробная» на 100% 5 => «Целые задачи / Арифметика 2» на 100% 6 => «Целые задачи / Уравнение 2» на 100% 7 => «Целые задачи / Куры и яйца» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «НаноШахматы / VIP. PHP - Рисуем буквы» за 22 мин. 2 => «SQL: ничего лишнего / План базы данных и создание таблиц» за 1 час. 49 мин. 3 => «SQL: ничего лишнего / Добавление книг и тем» за 32 мин. 4 => «SQL: ничего лишнего / Select начало» за 22 мин. 5 => «SQL: ничего лишнего / SELECT математика текст и NOT» за 19 мин. 6 => «SQL: ничего лишнего / Могучий JOIN» за 22 мин. 7 => «SQL: ничего лишнего / Редактирование и удаление» за 20 мин. − Я не собрал ни одного Мегахеша :o( |
|||
SQL: ничего лишнего Редактирование и удаление | + 5 | ||
если не указывать ГДЕ надо провести редактирование оператором WHERE, жди изменений ВО ВСЕХ ЗАПИСЯХ! Не зевай )) |
|||
SQL: ничего лишнего Могучий JOIN | + 5 | ||
при JOIN левой таблицей считается первая в написании запроса Правая таблица - та, что после указания JOIN Псевдонимы полей можно указывать без AS просто внутри апострофов |
|||
SQL: ничего лишнего SELECT математика текст и NOT | + 8 | ||
оператор SQL AS используется для именования результирующих столбцов при выборке элементов CONCAT позволяет конкатенировать (тупо прилеплять значения) разных полей(столбцов) - НЕ ПУТАТЬ С МАТЕМАТИКОЙ - конкатенация 2+2 дает в результате 22 а не четыре :) |
|||
SQL: ничего лишнего Select начало | + 6 | ||
SQL язык достаточно понятен и логичен, вопрос лишь в запоминании формулировок для получения желаемой выборки из таблиц заметил, что айдишники коннектов инкрементируются при каждом переподключении и выводятся консолью на экран |
|||
SQL: ничего лишнего Добавление книг и тем | + 8 | ||
Простой сиквел, но тоже на коленке не напишешь - требует внимания к деталям Приятно, когда преподаватель знает русскую классику очень быстро отчего-то теряется коннект к БД ) |
|||
SQL: ничего лишнего План базы данных и создание таблиц | + 9 | ||
снова точность и только точность в написании операторов инструкций, иначе дело труба ) |
|||
НаноШахматы VIP. PHP - Рисуем буквы | + 10 | ||
снова пересматривал строки пытаясь понять отчего ошибка на первой иллюстрации ))) Ответ на второй иллюстрации, он как всегда до постыдного прост )) А то ведь я строку, на которую ругался интерпретатор, и перенабрал, и пересмотрел вдоль и поперек, а ошибка была выше Найти баг, созданный своими руками |
|||
Дневник успеха 2019-07-14 : Пока железо в работе, его и ржа не берет. | + 8 | ||
За эту неделю: Менял в прошлую субботу тормозные колодки спереди на своем немецком скакуне, наблюдал подтверждение поговорки из темы урока. Там, где фрикционные накладки трутся о тормозной диск, металл чистейший, а по окружности, где диск контактирует лишь с воздухом - там ржавчина хороша ) Неделя посвящена наношахматам на PHP, получается успешно, пусть и не с первого запуска - внимательность к деталям даёт сбои, но отладчик браузера выручает. Следующая неделя посвящается норме курсанта и продолжению в веб-разделе. + Я проверил 130 отчётов у 24 формулистов. + Я написал 16 сообщений 10 формулистам общим объёмом 6 килобукв + Я набрал 6 текстов: 1 => «C# набор / Обмен элементов», без ошибок 2 => «C# набор / Разделить строку на слова», без ошибок 3 => «C# набор / Заполнение массива», без ошибок 4 => «C# набор / Формирование массива», без ошибок 5 => «C# набор / Вывод элементов массива», без ошибок 6 => «C# набор / Ввод элементов матрицы», без ошибок + Я решил 7 задач: 1 => «Геометрия / Площадь круга» на 100% 2 => «Геометрия / Синус радиана» на 100% 3 => «Геометрия / Вектор» на 100% 4 => «Целые задачи / Арифметика» на 100% 5 => «Целые задачи / Уравнение» на 100% 6 => «Целые задачи / N уроков» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 8 видеоуроков: 1 => «Дневник успеха / 2019-04-21 : Сей хлеб — не спи: будешь жать — некогда будет дремать.» за 1 мин. 2 => «Дневник успеха / 2019-04-14 : Есть терпенье, будет и уменье.» за 3 мин. 3 => «Дневник успеха / 2019-04-07 : Куй железо, пока горячо.» за 3 мин. 4 => «НаноШахматы / JavaScript - Завершение хода» за 13 мин. 5 => «НаноШахматы / JavaScript - Я тебя съем!» за 21 мин. 6 => «НаноШахматы / ФИНАЛЬНЫЙ УРОК» за 20 мин. 7 => «НаноШахматы / VIP. PHP - Создание картинки» за 17 мин. 8 => «НаноШахматы / VIP. PAINT - Координаты отрезков» за 27 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы VIP. PAINT - Координаты отрезков | + 8 | ||
//D 100, 75 - 222, 75 222, 75 - 256, 95 256, 95 - 271, 121 271, 121 - 271, 312 271, 312 - 256, 345 256, 345 - 227, 365 227, 365 - 100, 365 100, 365 - 100, 75 //A 410, 365 - 535, 75 535, 75 - 657, 365 447, 283 - 622, 283 |
|||
НаноШахматы VIP. PHP - Создание картинки | + 4 | ||
запустился с пятой попытки, то пиашпи не закрыл, то точка с запятой не там, то опечатка - всё по отладчику легко правится |
|||
Дневник успеха 2019-04-07 : Куй железо, пока горячо. | + 8 | ||
За эту неделю: Ковал, кую и буду ковать, но день, когда за рабоче время не удавалось ноут открыть - это провальный день. Носился как электровеник, выслушивал маты от гендиректора, выталкивал алкашей из транспорта - это что-то для пятницы крутовато. Надо сбавлять темп рабочего времени. Снова занимался вечером - уже не торт) Всем удачного кода! + Я проверил 95 отчётов у 21 формулиста. + Я написал 11 сообщений 8 формулистам общим объёмом 4 килобуквы + Я набрал 4 текста: 1 => «C# набор / Обмен элементов», без ошибок 2 => «C# набор / Разделить строку на слова», без ошибок 3 => «C# набор / Заполнение массива», без ошибок 4 => «C# набор / Формирование массива», без ошибок + Я решил 5 задач: 1 => «Геометрия / Площадь круга» на 100% 2 => «Геометрия / Синус радиана» на 100% 3 => «Геометрия / Вектор» на 100% 4 => «Целые задачи / Арифметика» на 100% 5 => «Олимпиада / Случайная задача» на 100% + Я выполнил 5 видеоуроков: 1 => «Дневник успеха / 2019-04-21 : Сей хлеб — не спи: будешь жать — некогда будет дремать.» за 1 мин. 2 => «Дневник успеха / 2019-04-14 : Есть терпенье, будет и уменье.» за 3 мин. 3 => «НаноШахматы / JavaScript - Завершение хода» за 13 мин. 4 => «НаноШахматы / JavaScript - Я тебя съем!» за 21 мин. 5 => «НаноШахматы / ФИНАЛЬНЫЙ УРОК» за 20 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы ФИНАЛЬНЫЙ УРОК | + 10 | ||
курс хорош своими краткими изменениями в коде, наглядно представленными в иллюстрациях Поскольку с DevServerом уже прежде (здесь же) сталкивался, особых проблем с поднятием локального сайта не возникло Курс хорош как база, а за подробностями надо нырять, это за курсанта никто не сделает и за ручку не отведёт Благо, что энциклопедии замещены гуглением - особо напрягаться бегая в библиотеку уже нет необходимости Краткий мат в 4 хода вспомнил из прежнего курса, мат белому королю с его ритуальным съедением - на видео Следующий курс из раздела веб, я так думаю! понять, что шахматы можно поместить в 70 строк кода (не считая CSS) |
|||
Дневник успеха 2019-04-14 : Есть терпенье, будет и уменье. | + 8 | ||
За эту неделю: Я стал замечать, что машина от интенсивной эксплуатации начала резвее реагировать на педаль акселератора. Прежде тупила, теперь не сказать, что ахалтекинец, но резче едет. Пища для ума, однако. Второе дыхание пока не замечено, но позитив от побед уже за плечами. Посмотрим, на что мой разум способен. Ибо не всяк птах долетит до середины Днепра, и не каждый эникейщик станет профессиональным программером. Но стремиться необходимо, ибо не пробовавший отсекает себе вообще все шансы) Всем удачного кода! + Я проверил 50 отчётов у 17 формулистов. + Я написал 6 сообщений 5 формулистам общим объёмом 2 килобуквы + Я набрал 2 текста: 1 => «C# набор / Обмен элементов», без ошибок 2 => «C# набор / Разделить строку на слова», без ошибок + Я решил 3 задачи: 1 => «Геометрия / Площадь круга» на 100% 2 => «Геометрия / Синус радиана» на 100% 3 => «Олимпиада / Случайная задача» на 100% + Я выполнил 3 видеоурока: 1 => «Дневник успеха / 2019-04-21 : Сей хлеб — не спи: будешь жать — некогда будет дремать.» за 1 мин. 2 => «НаноШахматы / JavaScript - Завершение хода» за 13 мин. 3 => «НаноШахматы / JavaScript - Я тебя съем!» за 21 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы JavaScript - Я тебя съем! | + 6 | ||
добавили проверку на наличие в клетке, где ЛКМ отпускается, стоящей там шахматной фигуры Отрабатывает иф, меняющий стоящую там фигуру на ноль Впервые (!) увидеть в видеоуроке линк и окно на видео с ютуба, которого нет Прежде видел уроки без видео, это привычно Видел уроки с видео - это тоже Но чтобы линк вёл на недоступное видео - это впервые |
|||
Дневник успеха 2019-04-21 : Сей хлеб — не спи: будешь жать — некогда будет дремать. | + 10 | ||
За эту неделю: Позволил себе однодневый перерыв - снова скатился до 1 байта бонусов. Непорядок. Надо исправляться. + Я проверил 27 отчётов у 13 формулистов. + Я написал 2 сообщения 1 формулисту общим объёмом 1 килобуква + Я набрал 1 текст: 1 => «C# набор / Обмен элементов», без ошибок + Я решил 2 задачи: 1 => «Геометрия / Площадь круга» на 100% 2 => «Олимпиада / Случайная задача» на 100% + Я выполнил 1 видеоурок: 1 => «НаноШахматы / JavaScript - Завершение хода» за 13 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы JavaScript - Завершение хода | + 9 | ||
event - ход или событие Сначала отключаются действия браузера по умолчанию для собственных идей Затем getData присваивает переменной id значение фигуры с клетки откуда ходили appendChild присваивает клетке где отпустили ЛКМ значение шахматной фигуры с клетки где ЛКМ была зажата https://www.youtube.com/watch?v=T5WdpSPeQUE |
|||
Дневник успеха 2019-07-07 : Любишь кататься - люби и саночки возить. | + 5 | ||
За эту неделю: + Я проверил 91 отчёт у 22 формулистов. + Я написал 12 сообщений 7 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «C# набор / Определение массива», без ошибок 4 => «C# набор / Сравнение двух целых чисел», без ошибок 5 => «Java - Запуск / Компиляция», без ошибок 6 => «Java - Вывод данных / Java Keywords», без ошибок 7 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 7 задач: 1 => «Геометрия / Прямоугольник» на 100% 2 => «Целые задачи / Уравнение» на 100% 3 => «Целые задачи / N уроков» на 100% 4 => «Целые задачи / Площадь» на 100% 5 => «Целые задачи / Дискриминант» на 100% 6 => «START - Запуск / Привет, Java!» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 13 видеоуроков: 1 => «Дневник успеха / 2019-05-19 : Пчелка маленькая, а и та работает.» за 2 мин. 2 => «Дневник успеха / 2019-05-12 : Птицу узнают в полете, а человека в работе.» за 2 мин. 3 => «Дневник успеха / 2019-05-05 : Господской работы не переработаешь.» за 2 мин. 4 => «Дневник успеха / 2019-04-28 : Нужно наклониться, чтоб из ручья напиться.» за 1 мин. 5 => «Дневник успеха / 2019-03-31 : Сколько ни говорить, а с разговору сыт не будешь.» за 1 мин. 6 => «Дневник успеха / 2019-03-24 : Зубами того гвоздя не вытянуть.» за 1 мин. 7 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. 8 => «НаноШахматы / PHP - Циклы для клеток» за 6 час. 16 мин. 9 => «НаноШахматы / PHP - Массив для фигур» за 14 мин. 10 => «НаноШахматы / PHP - Превращение букв» за 22 мин. 11 => «НаноШахматы / HTML5 - Поднятие фигур» за 14 мин. 12 => «НаноШахматы / JavaScript - Тронул? Коди!» за 12 мин. 13 => «НаноШахматы / JavaScript - Посадку давай!» за 30 мин. − Я не собрал ни одного Мегахеша :o( Стал входить в привычный режим, хотелось бы вернуться и к двум полноценным урокам в день, как бывало прежде, работая на почте ямщиком. Ноуты адаптирую к работе от аккумулятора в полевых условиях, организационные моменты должны уйти в прошлое и учеба должна быть днем, а не вечером и не ночью ) Следующую неделю посвятить на курс "Наношахматы" и выполнение нормы курсанта. |
|||
НаноШахматы JavaScript - Посадку давай! | + 4 | ||
стандартные события автоматически влекут за собой предустановленное действие браузера Клик по ссылке инициирует переход на новый URL Нажатие на кнопку «отправить» в форме – отсылку ее на сервер Двойной клик на тексте – инициирует его выделение А для отмены (вторая иллюстрация) стандартного действия браузера применяется метод event.preventDefault() |
|||
Дневник успеха 2019-04-28 : Нужно наклониться, чтоб из ручья напиться. | + 6 | ||
За эту неделю: Колодки поменял - не так всё и сложно оказалось. + Я проверил 77 отчётов у 22 формулистов. + Я написал 10 сообщений 6 формулистам общим объёмом 6 килобукв + Я набрал 6 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «C# набор / Определение массива», без ошибок 4 => «Java - Запуск / Компиляция», без ошибок 5 => «Java - Вывод данных / Java Keywords», без ошибок 6 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 6 задач: 1 => «Геометрия / Прямоугольник» на 100% 2 => «Целые задачи / Уравнение» на 100% 3 => «Целые задачи / N уроков» на 100% 4 => «Целые задачи / Площадь» на 100% 5 => «START - Запуск / Привет, Java!» на 100% 6 => «Олимпиада / Случайная задача» на 100% + Я выполнил 11 видеоуроков: 1 => «Дневник успеха / 2019-05-19 : Пчелка маленькая, а и та работает.» за 2 мин. 2 => «Дневник успеха / 2019-05-12 : Птицу узнают в полете, а человека в работе.» за 2 мин. 3 => «Дневник успеха / 2019-05-05 : Господской работы не переработаешь.» за 2 мин. 4 => «Дневник успеха / 2019-03-31 : Сколько ни говорить, а с разговору сыт не будеш.» за 1 мин. 5 => «Дневник успеха / 2019-03-24 : Зубами того гвоздя не вытянуть.» за 1 мин. 6 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. 7 => «НаноШахматы / PHP - Циклы для клеток» за 6 час. 16 мин. 8 => «НаноШахматы / PHP - Массив для фигур» за 14 мин. 9 => «НаноШахматы / PHP - Превращение букв» за 22 мин. 10 => «НаноШахматы / HTML5 - Поднятие фигур» за 14 мин. 11 => «НаноШахматы / JavaScript - Тронул? Коди!» за 12 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы JavaScript - Тронул? Коди! | + 4 | ||
при снятии комментария с тестового алерта, сдвинутая мышью фигура возвращает свою позицию ОТКУДА она пошла |
|||
Дневник успеха 2019-05-05 : Господской работы не переработаешь. | + 6 | ||
За эту неделю: Я стесал тормозные колодки до металла(судя по звуку) - пора менять, далее тянуть некуда. Работы отложить, машину отремонтировать. + Я проверил 64 отчёта у 21 формулиста. + Я написал 8 сообщений 6 формулистам общим объёмом 4 килобуквы + Я набрал 5 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «Java - Запуск / Компиляция», без ошибок 4 => «Java - Вывод данных / Java Keywords», без ошибок 5 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 5 задач: 1 => «Геометрия / Прямоугольник» на 100% 2 => «Целые задачи / Уравнение» на 100% 3 => «Целые задачи / N уроков» на 100% 4 => «START - Запуск / Привет, Java!» на 100% 5 => «Олимпиада / Случайная задача» на 100% + Я выполнил 9 видеоуроков: 1 => «Дневник успеха / 2019-05-19 : Пчелка маленькая, а и та работает.» за 2 мин. 2 => «Дневник успеха / 2019-05-12 : Птицу узнают в полете, а человека в работе.» за 2 мин. 3 => «Дневник успеха / 2019-03-31 : Сколько ни говорить, а с разговору сыт не будеш.» за 1 мин. 4 => «Дневник успеха / 2019-03-24 : Зубами того гвоздя не вытянуть.» за 1 мин. 5 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. 6 => «НаноШахматы / PHP - Циклы для клеток» за 6 час. 16 мин. 7 => «НаноШахматы / PHP - Массив для фигур» за 14 мин. 8 => «НаноШахматы / PHP - Превращение букв» за 22 мин. 9 => «НаноШахматы / HTML5 - Поднятие фигур» за 14 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы HTML5 - Поднятие фигур | + 5 | ||
Тег <span> предназначен для определения строчных элементов документа В отличие от блочных элементов, таких как <table>, <p> или <div>, с помощью тега <span> можно выделить часть информации внутри других тегов и установить для нее свой стиль Поник мышкой захватывается и тащится куда прикажешь (см. иллюстрацию номер два) |
|||
Дневник успеха 2019-05-12 : Птицу узнают в полете, а человека в работе. | + 8 | ||
Как же хорошо учиться на свежую голову, кто бы знал! С удивлением и уважением смотрю на отчёты курсантов от вечерних и ночных часов сдачи - как у них это получается? Снимаю шляпу. За эту неделю: + Я проверил 44 отчёта у 17 формулистов. + Я написал 6 сообщений 4 формулистам общим объёмом 3 килобуквы + Я набрал 4 текста: 1 => «C# набор / Первая программа», без ошибок 2 => «Java - Запуск / Компиляция», без ошибок 3 => «Java - Вывод данных / Java Keywords», без ошибок 4 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 4 задачи: 1 => «Геометрия / Прямоугольник» на 100% 2 => «Целые задачи / Уравнение» на 100% 3 => «START - Запуск / Привет, Java!» на 100% 4 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «Дневник успеха / 2019-05-19 : Пчелка маленькая, а и та работает.» за 2 мин. 2 => «Дневник успеха / 2019-03-31 : Сколько ни говорить, а с разговору сыт не будеш.» за 1 мин. 3 => «Дневник успеха / 2019-03-24 : Зубами того гвоздя не вытянуть.» за 1 мин. 4 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. 5 => «НаноШахматы / PHP - Циклы для клеток» за 6 час. 16 мин. 6 => «НаноШахматы / PHP - Массив для фигур» за 14 мин. 7 => «НаноШахматы / PHP - Превращение букв» за 22 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы PHP - Превращение букв | + 7 | ||
простой вариант отрисовки шахматных фигур на доске использует свич-кейс, второй вариант использует код первой фигуры как базу и плюсует номер искомой фигуры к базовой |
|||
Дневник успеха 2019-05-19 : Пчелка маленькая, а и та работает. | + 12 | ||
Продолжаем ретроспективу. Это было, было - была такая телепередача во времена, когда не было интернета и на смартфоны не молились, как это делают ныне (их просто ещё не придумали))) За эту неделю: + Я проверил 31 отчёт у 16 формулистов. + Я написал 5 сообщений 3 формулистам общим объёмом 2 килобуквы + Я набрал 3 текста: 1 => «Java - Запуск / Компиляция», без ошибок 2 => «Java - Вывод данных / Java Keywords», без ошибок 3 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 3 задачи: 1 => «Целые задачи / Уравнение» на 100% 2 => «START - Запуск / Привет, Java!» на 100% 3 => «Олимпиада / Случайная задача» на 100% + Я выполнил 5 видеоуроков: 1 => «Дневник успеха / 2019-03-31 : Сколько ни говорить, а с разговору сыт не будеш.» за 1 мин. 2 => «Дневник успеха / 2019-03-24 : Зубами того гвоздя не вытянуть.» за 1 мин. 3 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. 4 => «НаноШахматы / PHP - Циклы для клеток» за 6 час. 16 мин. 5 => «НаноШахматы / PHP - Массив для фигур» за 14 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы PHP - Массив для фигур | + 10 | ||
И снова - один знак прозеваешь - уже криво работает. Внимательность - наше всё. |
|||
Дневник успеха 2019-03-31 : Сколько ни говорить, а с разговору сыт не будеш. | + 15 | ||
За эту неделю медитации в семействе роботов продолжим закрывать старые долги как и положено ленивым студентам: + Я проверил 22 отчёта у 14 формулистов. + Я написал 4 сообщения 2 формулистам общим объёмом 2 килобуквы + Я набрал 2 текста: 1 => «Java - Запуск / Компиляция», без ошибок 2 => «Java - Вывод данных / Java Keywords», без ошибок − Я не решил ни одной задачи :o( + Я выполнил 3 видеоурока: 1 => «Дневник успеха / 2019-03-24 : Зубами того гвоздя не вытянуть.» за 1 мин. 2 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. 3 => «НаноШахматы / PHP - Циклы для клеток» за 6 час. 16 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы PHP - Циклы для клеток | + 12 | ||
один символ мимо или сверх необходимого - и отображается абракадабра |
|||
Дневник успеха 2019-03-24 : Зубами того гвоздя не вытянуть. | + 11 | ||
Закрою старые долги, раз уж роботика Джава, простите, Робот Шарп, медитирует: За эту неделю: + Я проверил 17 отчётов у 12 формулистов. + Я написал 2 сообщения 1 формулисту общим объёмом 1 килобуква + Я набрал 1 текст: 1 => «Java - Вывод данных / Java Keywords», без ошибок − Я не решил ни одной задачи :o( + Я выполнил 1 видеоурок: 1 => «НаноШахматы / PHP - Запуск скрипта» за 12 мин. − Я не собрал ни одного Мегахеша :o( |
|||
НаноШахматы PHP - Запуск скрипта | + 9 | ||
localhost набрав безо всяких портов через двоеточие лишь добился демонстрации своего пиашпи-творения |
|||
Дневник успеха 2019-06-30 : Не диво дело начать — диво кончить. | + 8 | ||
За эту неделю: + Я проверил 98 отчётов у 25 формулистов. + Я написал 14 сообщений 5 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / Скоростная Java», без ошибок 2 => «Java - Запуск / Скобки», без ошибок 3 => «Java - Запуск / String[] args», без ошибок 4 => «Java - Запуск / System.out», без ошибок 5 => «Java - Запуск / Главное заклинание», без ошибок 6 => «Java - Циклы / Java For Loops», без ошибок 7 => «Java - Циклы / Java While Loops», без ошибок + Я решил 7 задач: 1 => «Геометрия / Куб» на 100% 2 => «Геометрия / Длина отрезка» на 100% 3 => «Геометрия / Площадь круга» на 100% 4 => «Геометрия / Синус радиана» на 100% 5 => «Геометрия / Вектор» на 100% 6 => «Целые задачи / Арифметика» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «НаноШахматы / HTML - Шахматные фигуры» за 29 мин. 2 => «НаноШахматы / CSS - Шахматная доска» за 15 час. 33 мин. 3 => «НаноШахматы / HTML - Фигуры на Доске» за 9 мин. 4 => «НаноШахматы / PHP - Установка EasyPHP» за 16 мин. 5 => «МикроШахматы / Белолевая рокировка» за 23 мин. 6 => «МикроШахматы / Рокировка на все времена» за 4 час. 10 мин. 7 => «МикроШахматы / Ладейный паркур» за 6 час. 6 мин. − Я не собрал ни одного Мегахеша :o( Урок, коряво сделанный в пятницу и исправленный в субботу в отчете отразился как лишь начатый, вот такой казус приключился. Зато разобрался в теме и победил задание. Следующая неделя будет положена на постижение курса "Наношахматы" и повтор в полевых условиях курса "Микрошахматы". Баги там все не пойманы - буду ловить и к ногтю их. Всех курсантов с началом второго месяца лета и удачи на коде! |
|||
НаноШахматы PHP - Установка EasyPHP | + 6 | ||
который раз лечу Москва - Одесса... По старой памяти (вспомнилось с прошлой инсталляции), после установки дашборд не открывался - лечится перезагрузкой ОС Windows |
|||
НаноШахматы HTML - Фигуры на Доске | + 9 | ||
Занятия на свежую голову и поддержка опытных курсантов творят чудеса! |
|||
НаноШахматы CSS - Шахматная доска | + 9 | ||
цээсэс создал, но доска не отобразилась. Новая бага ) UPD 20190629 - с доской разобрался благодаря хорошему человеку с Ближнего Востока. Ефим, спасибо! |
|||
НаноШахматы HTML - Шахматные фигуры | + 6 | ||
начнем шахматы сначала, раз с первого раза не все гладко Фигуры мелкие, новые вопросы... |
|||
МикроШахматы Ладейный паркур | + 10 | ||
снова баги. Курс требует второго подхода, не иначе. Разберемся ) |
|||
МикроШахматы Рокировка на все времена | + 8 | ||
баги уничтожаются, король начал видеть свои допустимые клетки для рокировки. |
|||
МикроШахматы Белолевая рокировка | + 9 | ||
порефакторил до нового бага. Есть о чем подумать с утра |
|||
Дневник успеха 2019-06-23 : Наездом хлеба не напашешь. | + 8 | ||
За эту неделю: + Я проверил 253 отчёта у 38 формулистов. + Я написал 20 сообщений 12 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «C# набор / Выделение подстроки», без ошибок 2 => «C# набор / Максимальный элемент массива», без ошибок 3 => «Java - Запуск / Class!», без ошибок 4 => «Java - Запуск / public private», без ошибок 5 => «Java - Запуск / Static», без ошибок 6 => «Java - Запуск / void», без ошибок 7 => «Java - Запуск / Main», без ошибок + Я решил 6 задач: 1 => «Символы / Пятёрочка» на 100% 2 => «Геометрия / Куб» на 100% 3 => «Геометрия / Окружность» на 100% 4 => «Геометрия / Геометрическое» на 100% 5 => «Геометрия / Прямоугольник» на 100% 6 => «Олимпиада / Случайная задача» на 100% + Я выполнил 7 видеоуроков: 1 => «МикроШахматы / Информационная панель» за 31 мин. 2 => «МикроШахматы / Подвиг безымянной пешки» за 31 мин. 3 => «МикроШахматы / ФИНИШНАЯ ПРЯМАЯ» за 15 мин. 4 => «МикроШахматы / Правила рокировки» за 12 мин. 5 => «МикроШахматы / Флаг над замком» за 7 час. 56 мин. 6 => «МикроШахматы / Король всемогущий» за 26 мин. 7 => «МикроШахматы / Рокировка под шахом» за 27 мин. − Я не собрал ни одного Мегахеша :o( На неделе стал снова заниматься урывками в дневное время - пошел курс Микрошахматы с начала. Цель - довести хардвер до способности занятий в машине в свободные минуты днем ибо вечером уже башка несвежа ) С королем багов пока не словил, а пешечки оказались крепкими как сами знаете что - из-за них курс повторю, выловить баг надо Следующую неделю в том же ключе Всем удачи! |
|||
МикроШахматы Рокировка под шахом | + 8 | ||
реализовали невозможность рокировки при шахе. Если шах - королю доступен лишь побег в дамском платье ) |
|||
МикроШахматы Король всемогущий | + 8 | ||
С королем всё прошло успешно. За пешки разбираюсь - иду курс заново на другом компе, понял, что спешка и занятость на других работах в понимании ни разу не подмога. Но разобраться надо. Ибо кайф от пойманного бага я уже вкусил и в курсе как это приятно, когда код начинает делать то что надо, а не то, что ему вздумается от твоей личной программистской ошибочки. По невнимательности, не непрофессионализму или по некомпетентности - дело второе. Важно, что код должен быть правильным. А это на автомате не происходит. Однако ) |
|||
МикроШахматы Флаг над замком | + 7 | ||
снова поймал бага, ходы выполняются неверно, надо пересматривать код |
|||
МикроШахматы Правила рокировки | + 9 | ||
начинай рокровку перемещением короля - он не может ходить в обычном ходе как в рокировке, значит невозможна двоякая трактовка твоих действий Той же рукой перемещай ладью (туру), той же рукой жми часики (если они есть) |
|||
МикроШахматы ФИНИШНАЯ ПРЯМАЯ | + 6 | ||
рокировка возможна: если ладья под боем если ладья, стоящая на ферзевом фланге, при рокировке проходит через битое поле (таковыми могут оказаться поля b1 и b8, где в начале игры у обоих игроков стоят кони) если король ранее был под шахом, и от шаха избавились, прикрывшись или взяв шахующего другой фигурой (но при этом не сдвинули короля с начальной позиции) Рокировку делать нельзя: если король делал ходы (включая рокировку) если ладья уже ходила с ладьёй, полученной превращением из пешки если поле, пройденное королём во время рокировки, находится под боем противника если король перед началом рокировки находится под шахом, или после её осуществления попадает под шах если между королём и ладьей для рокировки, находится какая-либо любая фигура |
|||
МикроШахматы Подвиг безымянной пешки | + 7 | ||
что-то прозевал - не взлетело Буду смотреть утром. |
|||
МикроШахматы Информационная панель | + 10 | ||
info отображает чей ход, наличие мата, пата, шаха В функцию, оказывается, можно передавать тернарный оператор, не знал |
|||
Дневник успеха 2019-06-16 : Кто не работает, тот не ошибается. | + 6 | ||
За эту неделю: + Я проверил 175 отчётов у 28 формулистов. + Я написал 11 сообщений 8 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «C# набор / Разделить строку на слова», без ошибок 2 => «C# набор / Заполнение массива», без ошибок 3 => «C# набор / Формирование массива», без ошибок 4 => «C# набор / Вывод элементов массива», без ошибок 5 => «C# набор / Ввод элементов матрицы», без ошибок 6 => «C# набор / Вывод элементов матрицы», без ошибок 7 => «C# набор / Вывод числа по разрядам», без ошибок + Я решил 8 задач: 1 => «Формулы / Формула 0110» на 100% 2 => «Формулы / Формула 0111» на 100% 3 => «Формулы / Формула 1000» на 100% 4 => «Символы / Видео-Шарп» на 100% 5 => «Символы / Висагинас» на 100% 6 => «Символы / Коды букв» на 100% 7 => «Символы / Буквы кодов» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 10 видеоуроков: 1 => «МикроШахматы / Радар для быстрых пешек» за 33 мин. 2 => «МикроШахматы / Афроамериканская пешка» за 19 мин. 3 => «МикроШахматы / Пешкина мечта» за 19 мин. 4 => «МикроШахматы / Волшебное превращение пешки» за 10 час. 48 мин. 5 => «МикроШахматы / ТРЕТИЙ ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК» за 11 мин. 6 => «МикроШахматы / Случайный шах» за 18 мин. 7 => «МикроШахматы / Возврат хода» за 28 мин. 8 => «МикроШахматы / Король в розыске» за 20 мин. 9 => «МикроШахматы / Служба безопасности короля» за 43 мин. 10 => «МикроШахматы / Шах вперёд - шаг назад» за 11 час. 49 мин. − Я не собрал ни одного Мегахеша :o( На этой неделе по причине невнимательности в вечерний час допускал ошибки в операторах, запинки сбили с ритма, два урока в день остались на горизонте. Отпуск с последующим вместо увеличения свободного времени нарастил список забот, барщина в саду, вторая работа, третья работа, подготовка Крыма к навигации - в итоге уроки делались в разное время и не всегда на свежую голову. Перепутье - место для поимки новых забот, ломающих привычный распорядок дня. Следующую неделю как бы отпуска надо посвятить продолжению микрошахмат и постижению сути кодинга. Всем удачного кода и непересекающихся с хронофагами дорог )) |
|||
МикроШахматы Шах вперёд - шаг назад | + 4 | ||
is_check() не позволяет выполнить ход противнику в случае шаха, любой, кроме обеспечивающего нейтрализацию шаха королю (находящемуся под шахом) |
|||
МикроШахматы Служба безопасности короля | + 4 | ||
turn_move() функция меняет очередность хода, адаптируя функцию is_correct_move() на время перебора фигур противника. Затем ход возвращается обратно Условие в цикле может быть множественным через && или || В прошлом уроке прозевал указать map в инструкции (первый скриншот в центре выделил) - карта не отрисовывалась. Утро оказалось мудренее вечера - сегодня нашел в чём ошибка. Исправил - всё взлетело, король под шах не идёт. Внимательность - наше всё )) |
|||
МикроШахматы Король в розыске | + 3 | ||
неформальная обстановка на уроке помогает понять суть происходящего |
|||
МикроШахматы Возврат хода | + 8 | ||
функция отката хода берет значение откуда ходили из переменной from_figure Клетка куда ходили заполняется из переменной to_figure |
|||
МикроШахматы Случайный шах | + 7 | ||
проверка на шах подразумевает определение фигур противника способных следующим ходом сходить на клетку, где стоит король Защита от шаха включает в себя способы: а) уйти б) закрыться в) срубить наглеца, поставившего шах Его Величеству |
|||
МикроШахматы ТРЕТИЙ ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК | + 7 | ||
оказывается кодить и видеть результат можно не только в IDEшке, но и в простом браузере. F12 спасает, если накуролесил в инструкциях и то-то пошло не так как ожидалось. Если инструкция работает криво в отображении - браузер покажет либо полную чистоту экрана, либо коряво отработает измененные строки. Вместо методов сишарпа в JavaScript это же называем функциями, доступны те же ветвления, циклы, переменные, комментарии. Внимательность к деталям - наше всё. Супербюрократичность программирования явлена в курсе в полной мере - скрипт отработает ровно так, как ты ему напишешь. И никак иначе. Если что-то выполняется не так - оно выполняется именно так, как ты и написал. Ныряем в код и смотрим, что за чем отрабатывает и что куда записывает. Дело Мастера боится. Лишь бы Мастер не убоялся дела ) Авторам спасибо за усилия, курсантам - терпения и холодного разума. |
|||
МикроШахматы Волшебное превращение пешки | + 9 | ||
надо пересмотреть урок. Поймал баг, видно на скринах, не понял откуда пока. Утро вечера мудренее |
|||
МикроШахматы Пешкина мечта | + 7 | ||
проверка удаления взятой на проходе пешки выполняется ифэлзом с проверкой цвета фигуры |
|||
МикроШахматы Афроамериканская пешка | + 8 | ||
черные тоже люди! Учиться ближе к полуночи - не лучший выбор. Надо искать время утром. |
|||
МикроШахматы Радар для быстрых пешек | + 8 | ||
взятие на проходе удалось провести! |
|||
Дневник успеха 2019-06-09 : Какова пашня, таково и брашно. | + 9 | ||
За эту неделю: + Я проверил 171 отчёт у 41 формулиста. + Я написал 21 сообщение 11 формулистам общим объёмом 9 килобукв + Я набрал 7 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «C# набор / Определение массива», без ошибок 4 => «C# набор / Сравнение двух целых чисел», без ошибок 5 => «C# набор / Звездочки», без ошибок 6 => «C# набор / Обмен элементов», без ошибок 7 => «Java - Вывод данных / Целые типы», без ошибок + Я решил 8 задач: 1 => «Целые числа / Максима» на 100% 2 => «Формулы / Математика» на 100% 3 => «Формулы / Формула 0001» на 100% 4 => «Формулы / Формула 0010» на 100% 5 => «Формулы / Формула 0011» на 100% 6 => «Формулы / Формула 0100» на 100% 7 => «Формулы / Формула 0101» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 13 видеоуроков: 1 => «МикроШахматы / Лошадью ходи!» за 24 мин. 2 => «МикроШахматы / Королевские шаги» за 19 мин. 3 => «МикроШахматы / Горизонтальная вертикаль» за 1 час. 42 мин. 4 => «МикроШахматы / Не стой на пути!» за 3 час. 18 мин. 5 => «МикроШахматы / Слоновья тропа» за 40 мин. 6 => «МикроШахматы / Дорогу Королеве!» за 48 мин. 7 => «МикроШахматы / Мелочь пузатая» за 1 час. 0 мин. 8 => «МикроШахматы / ПОЛУФИНАЛЬНЫЙ УРОК» за 12 мин. 9 => «МикроШахматы / Пешкины законы» за 53 мин. 10 => «МикроШахматы / Судьба пешки» за 47 мин. 11 => «МикроШахматы / Пешка на охоте» за 27 мин. 12 => «МикроШахматы / Пешка в сапогах» за 17 мин. 13 => «МикроШахматы / Взятие на проходе шустрых пешек» за 34 мин. − Я не собрал ни одного Мегахеша :o( Продолжил курс "Микрошахматы", что-то даже рефакторил из головы, а не по видео. Отметил для себя сложность умственного труда, когда не идёшь в фарватере флагмана Игромистра, а чешешь репку и пытаешься выполнить задание на основе своих личных знаний, тараясь не накосячить и получить исправный код. Зато в финале, когда заборол задачу - такое брашно, что за себя и за Учителя гордость появляется. Следующую неделю потрачу на продолжение курса "Микрошахматы", на выполнение ежедневной нормы курсанта, благо я не дядя Саша из Перми, который уже всё перерешал - есть ещё что делать здесь впервые ))) Параллельно надо разобраться с причиной богатой смеси от мехинжектора Ауди - все свечи в нагаре, ездить нельзя. Плюс отпуск нарисовался - с 10 июня по Закону РФ, мы можем выходить на Вятку под мотором. Таптун получил по весне электронное зажигание - надо тестить на воде. Всем удачи на воде и в коде! Катайтесь - не ломайтесь, создавайте правильные вещи ) |
|||
МикроШахматы Взятие на проходе шустрых пешек | + 9 | ||
pawn_attack_x && pawn_attack_y предположительно должны устанавливаться для каждой пешки, которая предприняла ход на две клетки Только в этом случае актуально взятие на проходе и в случае хода на две клетки целесообразно отслеживать, а не вздумает ли кто срубить пешечку en passant |
|||
МикроШахматы Пешка в сапогах | + 14 | ||
проверке первого и последующих ходов |
|||
МикроШахматы Пешка на охоте | + 13 | ||
стала понятнее роль диаграмм при создании кода Предварительно построив графическое изображение жизненного цикла будущей программы, проще кодить Визуальное представление программы даёт подмогу в момент написания инструкций - не надо держать в голове множество подробностей, они уже на виду Меньше возможностей для ошибки и пропуска инструкций Диаграмма разделяет работу на две меньшие по нагрузке части |
|||
МикроШахматы Судьба пешки | + 11 | ||
https://www.draw.io/ - вещь! |
|||
МикроШахматы Пешкины законы | + 9 | ||
пешка самая мудрёная единица, фигурой называть её избегать Зависимость от цвета в правилах хода - это преррогатива компьютерного подхода Для игроков ходит она одинаково, ведь доску можно перевернуть для удобства, чего не сделаешь в программе (точнее излишне это делать) Первый ход может быть на две клетки, после - только на одну вперед Рубит только вперед на диагональ En passant На линиях 0 и 7 может меняться на свою фигуру, кроме короля My dog destroyed my chess set. I tried to replace the missing pieces... but the pawn shop was closed. |
|||
МикроШахматы ПОЛУФИНАЛЬНЫЙ УРОК | + 9 | ||
впервые сам без ментора наваял рефакторинг, который ещё и работает! У Игромистра вариант с тремя функциями был реализован иначе, любопытно, что он скажет о моём варианте, если заметит, конечно предыдущий отчёт Курс прекрасен дополнением к видео - скриншотами с кодом в каждом уроке - можно отсмотреть видео, намотать на ус, а затем править строки, как предлагается За эту часть курса чуть яснее стало перечисление входящих в сигнатуру функции параметров ЗАЧЕМ ОНИ - эти данные входят в функцию как в мясорубку на входе для обработки ВАЖЕН ЛИ ПОРЯДОК ПЕРЕЧИСЛЕНИЯ ЧЕРЕЗ ЗАПЯТУЮ? - нет, главное перечислить те, которые необходимы return - то, что вывалится из функции после обработки (как фарш из мясорубки))) |
|||
МикроШахматы Мелочь пузатая | + 7 | ||
Предложенный вариант рефакторинга Игромистра отличается от моих удачных опытов из прошлого отчёта, тем лучше - увидел, что правильный путь не один, реализации одного и того же возможны разными путями |
|||
МикроШахматы Дорогу Королеве! | + 11 | ||
свой вариант выделения общего алгоритма из эти трёх функций - is_correct_move_queen/bishop/rook -> Базовая function is_correct_queen_move (sx, sy, dx, dy) целиком. Расширяется ифом для слона и ладьи. Попробовал сам реализовать свой вариант - труа фиаско. Даже отправил с нерабочим кодом своего предложения отчёт. Затем сел думать снова над кодом и тут меня допёрло - я же в вызов функции is_correct_queen_move(sx, sy, dx, dy НЕ ДОПИСАЛ ВОТ ЭТО, ЧТОБЫ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ ПОДТЯГИВАЛИСЬ -> , delta_x, delta_y); Добавил это: , delta_x, delta_y И ВСЁ ВЗЛЕТЕЛО! Я счастлив. Решиться махать крыльями самостоятельно. Но школа Евгения Витольдовича творит чудеса - я наклепал что-то сам! Учитель, спасибо! Это удивительное осознание, когда чего-то сам состряпал, пусть и малую часть. |
|||
МикроШахматы Слоновья тропа | + 9 | ||
функция is_empty (x, y) проверяет невыход за пределы игровой доски (с помощью функции on_map) - возвращает FALSE, если выход "за флажки", и возвращает значение ПРОБЕЛ элементу массива map с координатами полученными на входе функции |
|||
МикроШахматы Не стой на пути! | + 15 | ||
начало проверки на наличие препятствий для ладьи до запуска цикла - изменение координаты на единицу - чтобы не вернулся результат "УПЕРСЯ САМ В СЕБЯ" Реализовали через do while )) Цикл работает до совпадения стартовых координат с финишными хода фигуры sx и sy инкрементируются каждый цикл, и при значении в массиве map ПРОБЕЛ - эта клетка считается годной для хода и цикл повторяется Функция on_map проверяет координаты x и y на соответствие диапазону от нуля до семи Класс Math.sign возвращает NaN, ноль, 1 или -1 при: не числе, нуле, любом положительном числе или любом отрицательном числе |
|||
МикроШахматы Горизонтальная вертикаль | + 10 | ||
rook - ладья sx - стартовая координата фигуры по горизонтали sy - стартовая координата фигуры по вертикали dx - координата клетки назначения фигуры по горизонтали dy - координата клетки назначения фигуры по вертикали Применили промежуточные переменные, принимающие значения +1 или -1 в зависимости от направления движения туры Для исключения движения ладьи по диагонали складывали модули промежуточных переменных осей абсцисс и ординат Отксорили, если не ошибаюсь |
|||
МикроШахматы Королевские шаги | + 11 | ||
ошибка в одном символе - бац, ничего не работает JavaScript, он такой! Алгоритм проверки хода короля в допуске смещения по оси абсцисс и по оси ординат не более единицы |
|||
МикроШахматы Лошадью ходи! | + 11 | ||
оказалось, что самый предсказуемый - это Эквус, по современному конь ) Реализация хода коня в паре проверок смещения (по иксу на единицу + по игреку на два) и наоборот |
|||
Дневник успеха 2019-06-02 : На необработанной земле лишь бурьян растет. | + 5 | ||
За эту неделю: + Я проверил 236 отчётов у 36 формулистов. + Я написал 22 сообщения 8 формулистам общим объёмом 12 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / Скоростная Java», без ошибок 2 => «Java - Запуск / System.out», без ошибок 3 => «Java - Запуск / Компиляция», без ошибок 4 => «Java - Вывод данных / Java Keywords», без ошибок 5 => «Java - Вывод данных / Калькулятор», без ошибок 6 => «Java - Циклы / Java For Loops», без ошибок 7 => «Java - Циклы / Java While Loops», без ошибок + Я решил 7 задач: 1 => «Лирика / Опечакти» на 100% 2 => «Лирика / Классики» на 100% 3 => «Лирика / Майкл» на 100% 4 => «Лирика / Билетики» на 100% 5 => «Лирика / Коля-арифметик» на 100% 6 => «Лирика / Любимые цифры» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 12 видеоуроков: 1 => «Весёлая семейка Web-Мастера / Финальный урок» за 2 мин. 2 => «МикроШахматы / В начале было поле» за 52 мин. 3 => «МикроШахматы / Координатное поле» за 39 мин. 4 => «МикроШахматы / Шахматные буквы» за 1 час. 11 мин. 5 => «МикроШахматы / Фигуры на доске» за 34 мин. 6 => «МикроШахматы / Светофор для фигур» за 1 час. 18 мин. 7 => «МикроШахматы / Фигурная перекличка» за 2 час. 49 мин. 8 => «МикроШахматы / Шахматные выборы» за 1 час. 49 мин. 9 => «МикроШахматы / Завершение хода» за 1 час. 34 мин. 10 => «МикроШахматы / ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК» за 1 час. 31 мин. 11 => «МикроШахматы / Шахматная бюрократия» за 28 мин. 12 => «МикроШахматы / Кто есть кто?» за 35 мин. − Я не собрал ни одного Мегахеша :o( Веселая семейка Web-Мастера была финализирована с удовольствием, счётчик считал, записи в базе сохранялись, разные браузеры показывали одно и то же исходя из данных в БД. OSPanel - суперинструмент, получаешь удовольствие от готовых решений, не надо бежать в тырнет, качать, инсталлить - всё под рукой. Курс прекрасен. Запрыгнул в следующую электричку, тут в шахматы играют. Путь неблизкий, но приятно, что сначала можно просмотреть видео, затем на пол-экрана открываешь код с изменениями (WIN+Left) ((Спасибо Валерию Владимировичу г.Пенза за полезнейшую информацию по размещению окон винды по бокам с помощью хоткеев, пользуюсь часто)), и саблайм и правишь свои строки. Результат не всегда с первого раза правильный, но F12 выручает, проблемы исправляются. Некствик виль би фор кантинью майкрочесс, простите, на следующей неделе будем продолжать играть в микрошахматы) Всем хорошего лета! |
|||
МикроШахматы Кто есть кто? | + 6 | ||
по сложности на взгляд неспециалиста: 1 - король самый простой (ходит на одну клетку, всех боится, живет до первого тупика) 2 - ферзь (линейное движение) 3 - слон (пол-ферзя) 4 - тура (похожа на урезанного ферзя с другой стороны) 5 - конь (что за выдумка с ходом Г, вот загадка) 6 - пешка самая сложная (ходит вперед, рубит диагональю, может стать ферзём, прохождение опять же надо реализовать) |
|||
МикроШахматы Шахматная бюрократия | + 8 | ||
is correct_move должна свич-кейсом подбирать для фигуры доступные поля, куда она может сходить |
|||
МикроШахматы ЧЕТВЕРТЬФИНАЛЬНЫЙ УРОК | + 12 | ||
Весь документ пасётся на двух дивблоках, определяемых про идентификаторам Определены пара массивов: с фигурами и с полем доступных ходов Переменная move_color отвечает за то, чей сейчас ход - белых или красных )) Используются переменные для координат по икс и игрек ОТКУДА ходит кликнутая фигура Функция init_inf занимается лишь тем, что обнуляет массив поля доступных ходов, присваивая каждой из шестидесяти четырёх клеток значение пробела " " Функция mark_moves_from обнуляет массив ходов и перебрав во вложенных циклах все 64 клетки проверяет их функцией can_move_from(x, y) с передачей в него в аргументы икса и игрека, на предмет ДОПУСТИМОСТИ хода, и там где допустимо помечает единицей "1" (метит фигуры игрока, чей сейчас ход) Функция mark_moves_to действует почти аналогично предыдущей mark_moves_from, но уже помечает двойкой "2" те клетки, КУДА можно сходить (требует доработки), проверка условия выполняется функцией can_move_to(x, y) с передачей в него в аргументы икса и игрека get_color (x, y) отвечает за цвет отображения фигуры click_box (x, y) в зависимости от индекса в клетке поля ходов вызывают функцию хода откуда или хода куда click_box_from (x, y) помещает координаты откуда сходила фигура figure_to_html (figure) меняет литералы фигур на картинки click_box_to (x, y) перемещает фигуру (делает ход) turn_move () переводит право хода init_map () расставляет фигуры для новой игры show_map () рисует доску, рисует клетки, закрашивает их, вызывает функцию замены литералов на картинки фигур, отрабатывает клики по фигурам - ЭТО САМАЯ НАГРУЖЕННАЯ ИНСТРУКЦИЯМИ ФУНКЦИЯ start () вызывает функции начала игры, установки стартовой позиции фигур и отрисовки доски |
|||
МикроШахматы Завершение хода | + 6 | ||
ход фигуры выполняется методом копирования элемента массива map с координатами по х и у и, последующим затиранием клетки ОТКУДА сходили пробелом Чей ход определяет функция turn_move простой заменой переменной move_color белого на черный и обратно Функция mark_moves_from "закрывает" режим хода и показывает поле снова с возможными для хода клетками |
|||
МикроШахматы Шахматные выборы | + 12 | ||
занялись функционалом выбора фигуры для выполнения хода Переменные move_from_x move_from_y нужны для запоминания координаты ОТКУДА ходит фигура Не сразу дошло, отчего кликая по фигурам противника не получал аналогичной картины, как для своих фигур - второй раз пересмотрел урок, ошибок не выявил, и лишь затем допёр, что надо поменять текущие фигуры в переменной с white на black ))) |
|||
МикроШахматы Фигурная перекличка | + 8 | ||
цвет по умолчанию move_color - белый Функция mark_moves_from (откуда можно ходить) перебирает все клетки поиском в циклах Функция can_move_from определяет можно ли ходить с клетки ДА или НЕТ Если ДА - клетка помечается 1 (единицей) |
|||
МикроШахматы Светофор для фигур | + 9 | ||
занялись лоцией на шахматном фарватере Был объявлен и создан массив для хранения доступных для хождения клеток Массив лоции был задействован в функции show_map в ветвлении if-else с проверкой на значение 1(стоит фигура) и 2(куда может идти) Красивый вариант доступных ходов - мигающие клетки Боролся со знаками "равно". На первой иллюстрации - прозевал знак присвоения при создании массива в init_inf -> долго думал, откуда ошибка в браузере Затем в ветвлении if-else вместо знака "эквивалентно" == присобачил присвоение и никак не мог понять, почему поля не раскрашиваются как надо Всё заб0рото, всем спасибо. Катайтесь - не ломайтесь, создавайте правильные стейтменты )) |
|||
МикроШахматы Фигуры на доске | + 9 | ||
заменили вывод фигур из массива map, когда они возвращались в виде букв, на графические представления шахмат из готовых кодов HTML-Unicode Конвертация литералов в графику реализовано свич-кейсом |
|||
МикроШахматы Шахматные буквы | + 10 | ||
фигуры: rook - ладья knight - конь bishop - слон queen - ферзь king - король Объявлять переменную необходимо перед ее использованием. Переменная создается (объявляется) с помощью ключевого слова var, за которым следует имя переменной, например, var map;. |
|||
МикроШахматы Координатное поле | + 9 | ||
  -неразрывный пробел (non-breaking space) — элемент компьютерной кодировки текстов, отображающийся внутри строки подобно обычному пробелу, но не позволяющий программам отображения и печати разорвать в этом месте строку |
|||
МикроШахматы В начале было поле | + 15 | ||
здесь есть курс "Наношахматы", посмотреть позднее В аргументах функции добавил переменную размера, которую задействовал в тегах width и height - доска подросла в размерах |
|||
Весёлая семейка Web-Мастера Финальный урок | + 13 | ||
Создали простой Web-сайт со счётчиком нажатий экранной кнопки и хранением количества нажатий в памяти браузера, в сессии, на сервере и в базе данных. Применили оформление экранных форм с помощью каскадных таблиц стилей CSS как внутри HTML, так и в отдельном файле .css Нажатия кнопки обрабатывали JavaScript-ом, отправкой формы, GET- и POST-запросом Создали БД с помощью MySQL (встроена в OpenServer), использовали таблицу с единственной записью (для простоты) как сетевое хранилище счётчика нажатий Применили PHP Data Objects (PDO) для подключения к БД - свежая библиотека работы с БД, заменившая mysql, mysqli |
|||
Дневник успеха 2019-05-26 : Не тряси яблоко пока зелено: созреет - само упадет. | + 10 | ||
За эту неделю: + Я проверил 601 отчёт у 76 формулистов. + Я написал 11 сообщений 6 формулистам общим объёмом 7 килобуквиц + Я набрал 6 текстов: 1 => «Java - Запуск / public private», без ошибок 2 => «Java - Запуск / void», без ошибок 3 => «Java - Запуск / Main», без ошибок 4 => «Java - Запуск / Скобки», без ошибок 5 => «Java - Запуск / String[] args», 1 ошибка 6 => «Java - Запуск / Главное заклинание», без ошибок + Я решил 7 задач: 1 => «Лирика / Банкиры» на 100% 2 => «Лирика / Трамвай» на 100% 3 => «Лирика / Огород» на 100% 4 => «Лирика / Коты» на 100% 5 => «Лирика / Студент Вася» на 100% 6 => «Лирика / Полторы куры» на 100% 7 => «Олимпиада / Случайная задача» на 100% + Я выполнил 12 видеоуроков: 1 => «Весёлая семейка Web-Мастера / CSS» за 3 час. 11 мин. 2 => «Весёлая семейка Web-Мастера / JavaScript» за 8 час. 37 мин. 3 => «Весёлая семейка Web-Мастера / Server» за 39 мин. 4 => «Весёлая семейка Web-Мастера / PHP» за 1 час. 8 мин. 5 => «Весёлая семейка Web-Мастера / Session» за 26 мин. 6 => «Весёлая семейка Web-Мастера / MySQL» за 25 мин. 7 => «Весёлая семейка Web-Мастера / PDO» за 7 час. 53 мин. 8 => «Весёлая семейка Web-Мастера / VIP. Parent» за 44 мин. 9 => «Пошаговый JavaScript / Introduction» за 1 час. 1 мин. 10 => «Пошаговый JavaScript / Where To» за 37 мин. 11 => «Пошаговый JavaScript / Output» за 2 час. 11 мин. 12 => «Пошаговый JavaScript / Statements» за 1 час. 49 мин. − Я не собрал ни одного Мегахеша :o( Неделя подъёма на перископную глубину прошла с удовольствием, но и курс был выбран не суперсложный, понимаю. Однако, сложно требовать от медведя мгновенного овладевания премудростями велосипеда. Так и молодого курсанта не посадишь сразу за штурвал эмбрайера. Сначала ЯК-52, а уже затем более увесистые птички. План на следующую неделю - сохранить эшелон, не опускаться ниже предоставленной диспетчером высоты и плавно обходить грозовые облака. Коридор предоставлен, время есть, вебкурсы к изучению. Ну и на Java посмотреть свежим взглядом, может поддастся. Всем теплого лета и стабильного учебного ритма! |
|||
Весёлая семейка Web-Мастера VIP. Parent | + 10 | ||
реализовали обработку счётчика через внешний файл plus.php, его фрейм сделали скрытым, чтоб не отвлекал Функционалом внешнего файла стало увеличение счётчика при нажатии экранной кнопки и возвращение значения в родительскую форму Тем самым достигнута полная синхронизация счётчиков, открываемых разными браузерами - нигде не будет отдельных веток подсчёта - при каждом нажатии возвращается актуальный счётчик |
|||
Весёлая семейка Web-Мастера PDO | + 12 | ||
у PHP существуют три расширения для работы с базой MySQL: mysql, mysqli и PDO PHP PDO (PHP Data Objects) включено в PHP 5.1 и выше Функции для работы с базой данных mysql_ не рекомендуют к использованию, так как разработка php_mysql остановилась на поддержке функционала MySQL 4.1.3. и не поддерживает транзакции, объектный интерфейс и подвержено уязвимостям при подстановке значений в запрос После mysql_ появилось расширение mysqli (MySQL Improved в 5 версии) Все эти библиотеки используют стандартную клиентскую библиотеку MySQL (libmysql) Самое свежее расширение – PDO fetch - это замена XMLHttpRequest (поиск по базе данных с целью выборки с условием, которое Вам нужно) $dsn - data source name (КУДА ПОДКЛЮЧАЕМСЯ) Счётчик плюсуется при обновлении страницы. Где причина - пока не понял |
|||
Весёлая семейка Web-Мастера MySQL | + 8 | ||
обращение к БД осуществляется скриптами PHP Команды к базе данных формируются языком структурированных запросов SQL HeidiSQL встроена в пакет OpenServer, ничего искать и инсталлировать не пришлось, всё под рукой |
|||
Весёлая семейка Web-Мастера Session | + 8 | ||
значение переменной счётчика в предыдущих версиях возвращалось на основе содержимого текстового окна Под сессией понимаем участок памяти на Сервере для хранения промежуточных данных Куки удаляются через настройки браузера, там же где история серфинга, простым рефрешем удаления не происходит. После удаления кукисов счётчик сбрасывается на ноль и идентификатор сессии другой (вторая иллюстрация) |
|||
Весёлая семейка Web-Мастера PHP | + 9 | ||
реализовали обработку нажатия кнопки через Сервер, вместо локального счётчика внутри браузера После добавления именования текстового поля с помощью ключевого слова name, при нажатии кнопки в адресной строке возвращается имя и значение из текстового поля, выводящего значение переменной counter Забирать с Сервера значение переменной можно с помощью $_GET["имя желаемой переменной"]; Метод POST у формы убирает информацию о передаваемом значении из адресной строки |
|||
Весёлая семейка Web-Мастера Server | + 11 | ||
сервер - мощнецкий комп в сети, обслуживающий запросы извне и существующий лишь для того, чтобы служить сетевым юзерам Выхлопом от работы PHP интерпретатора является готовый код HTML, который способен переварить и вывести на экран браузер у пользователя в сети OpenServer - эмуляция (замена) удаленного Сервера, устанавливаемая на локальном компе, и имитирующая работу с Сервером. Используется для локальной отладки сайтов с указанием сетевого адреса 127.0.0.1 |
|||
Весёлая семейка Web-Мастера JavaScript | + 10 | ||
getElementById как хороший пёс находит по запаху идентификатора объект в документе и приносит Хозяину Функцию написал, в отдельный файл вынес |
|||
Весёлая семейка Web-Мастера CSS | + 12 | ||
стили применяются: а) в строке стейтмента объекта, б)в теге стайл в хеде, в) в отдельном файле padding - отступы внутри объекта margin - отступы снаружи объекта ТОЧКА - стиль класса просто наименование адресует к тегу добавил точку - уже к имени класса |
|||
Пошаговый JavaScript Statements | + 14 | ||
statement - оператор, сообщение, инструкция values - значения Operators - операции над некими объектами Expressions - выражения Keywords - ключевые слова Comments - комментарии Окончание инструкции в JS обозначается точкой с запятой; Необязательно указывать ; - на конце строки, - перед закрывающей фигурной скобкой, - в конце программы Пробелы, табуляции, перенос строки - игнорируются JS и используются лишь для удобства чтения кода Однако, с текстовыми элементами история иная: перенос сток, к примеру, выполняется тегами <br> Блок кода выделяется фигурными скобками {} |
|||
Пошаговый JavaScript Output | + 11 | ||
innerHTML - часть Document Object Model (DOM), для строкового изменения сайта Javascript-кодом Можно читать и заменять все в пределах данного элемента DOM (HTML-тег) КАК НАЙТИ ЧТО МЕНЯТЬ СОБРАЛСЯ -> document.getElementById(id) КАК ПОМЕНЯТЬ НАЙДЕННОЕ -> .innerHTML = ТО ЧТО ХОТЕЛ УСТАНОВИТЬ НОВЫМ ЗНАЧЕНИЕМ outerHTML, в отличие от innerHTML, изменяет всю строку, а не лишь значение document.write - дописывает текст в текущее место HTML ещё до того, как браузер построит из него DOM document.write работает только пока HTML-страница находится в процессе загрузки Если же активировать document.write ПОСЛЕ загрузки страницы - всё будет удалено и выполнен вывод из document.write window.alert - всплывающее окно console.log - запись режима отладки(смотреть через F12 или CTRL+SHIFT+J) Если в слагаемых присутствует хоть одна строка - всё будет конкатенироваться, а не математически вычисляться |
|||
Пошаговый JavaScript Where To | + 7 | ||
под функцией в JavaScript понимают именованный блок кода, исполняемый по вызову(по событию) JavaScript ищи или пиши в HTML документе внутри (неожиданно:) тега <script></script> хоть в <head>, хоть в <body> Другой вариант - в отдельном файле с расширением .js Строки документа HTML исполняются обработчиком по порядку сверху вниз, как дочитает до строки скрипта, так он и запустится, не ранее Обработка скриптов замедляет загрузку страницы, отсюда выбор расположения скрипта как можно ниже в теге <body> способствует увеличению скорости загрузки сайта |
|||
Пошаговый JavaScript Introduction | + 8 | ||
getElementById - альтернатива прямой навигации от родителя к потомку годной, если элементы рядом. If искомый элемент неблизко в коде, применяют поиск по id ВАЖНО! значение id должно быть уникально, иначе поведение кода не будет предсказуемо innerHTML == содержимое элемента (потомки, комментарии, текст), хранится строкой. Доступно чтение и запись Если текст содержит "&", "<" или ">", то innerHTML конвертит в "&", "<" и ">" За пределами скриптов одинарные и двойные кавычки - требуют внимания, не путать пары меж собой Принцип работы прост. По некоему событию определяется элемент в документе HTML и ему присваивается новое желаемое значение атрибута (ЧТО У НЕГО ЕСТЬ) или стиля (КАК ВЫГЛЯДИТ) |
|||
Observer Observer - Sensor - Cat File | + 8 | ||
новый класс Кот создаёт файл ТОЛЬКО если температура == 18 градусам Для этого создаётся экземпляр класса File Затем для этого экземпляра применяется метод createNewFile() Точно расставив фигурные скобки избавился от ошибок в коде и получил кота делающего файл и заскребающего его при определенных температурах |
|||
Observer Observer - Sensor - Person | + 6 | ||
создали классы получателя оповещений с интерфейсом java.util.Observer Из аргументов получаем температуру с приведением значения к типу Integer |
|||
Observer Observer - Sensor - Visaginas | + 9 | ||
в новом проекте начали с создания класса Sensor наследуемого от системной библиотеки java.util.Observable Метод информирования Наблюдателей содержит инструкции: - установить наличие изменений - оповестить Наблюдателей (с аргументом из метода возвращаемого методом этого же класса getTemperature) |
|||
Observer Observer - School Bell - Study and Break | + 7 | ||
добавили аргументы в метод update класса Obell Для дифференциации звонков добавили перечисление BellMode Перечисляй через запятую, в конце - точка с запятой Применили свичкейс для аргумента из класса BellMode Нашел в сети новый звук, прикрутил и его в Obell.java через свичкейс Урок демонстрирует возможность допилить метод до работающего с аргументами, указываемыми в сигнатуре и обращающимся к разным звуковым файлам в разных контекстах происходящего - на урок один звонок, с урока другой |
|||
Observer Observer - School Bell - java.util.Observable | + 6 | ||
Observable интерфейс в системных библиотеках переведён(расширен/преобразован) в класс, поскольку методы универсальны и не требуют множества одинаковых реализаций(имплементаций): =================================== void addObserver(Observer o) protected void clearChanged() int countObserver() void deleteObserver(Observer o) void deleteObservers() boolean hasChanged() void notifyObservers() void notifyObservers(Object arg) protected void setChanged() =================================== Удалили самопальный интерфейс Observable, включавший в себя три метода add, delete и notify ВАЖНО! Не забыть implements (реализует) заменить на extends (расширяет) После подключения библиотечного java.util.Observable все методы, кроме doBreak() стали излишними и полетели со свистом в треш |
|||
Observer Observer - School Bell - java.util.Observer | + 11 | ||
Observer представлен в системных библиотеках Java В интерфейсе Observer реализован метод update с аргументами (звонок, кто звонит) Object Sender - кто звонит (от какого объекта прилетело событие) EventArgs - как звонит (доп. инфа об обработке события) Обработка события "щелч0к ПКМ" реализованный через делегат == методу update Add unimplemented methods - добавить нереализованные методы После удаления самолепного Observer -а) импортировали системный java.util.Observer во все классы, которые его имплементируют (используют/расширяют) -б) дописали в сигнатуру метода update аргументы Observable o и Object args Если аргументов нет - указали null На этом уроке мы избавились от самодельной реализации и применили то же самое, сделанное разработчиками ЯП Java Причина для этого - использование проверенного ресурса вместо самопального кода |
|||
Дневник успеха 2019-03-17 : Кончил дело — гуляй смело. | + 6 | ||
За эту неделю: + Я проверил 228 отчётов у 46 формулистов. + Я написал 16 сообщений 7 формулистам общим объёмом 8 килобукв + Я набрал 7 текстов: 1 => «C# набор / Заполнение массива», без ошибок 2 => «C# набор / Формирование массива», без ошибок 3 => «C# набор / Вывод элементов массива», без ошибок 4 => «C# набор / Ввод элементов матрицы», без ошибок 5 => «C# набор / Вывод элементов матрицы», без ошибок 6 => «C# набор / Вывод числа по разрядам», без ошибок 7 => «C# набор / Выделение подстроки», без ошибок + Я решил 15 задач: 1 => «Алгоритмика / Матрёшки» на 100% 2 => «For-to-чки / Сто квадратов» на 100% 3 => «Обман цикла / Цифра три» на 100% 4 => «Узник цикла IF / Делитель» на 100% 5 => «Математика / Косинусы» на 100% 6 => «Матрёшки / Звездный квадрат» на 100% 7 => «Олимпиада / Случайная задача» на 100% 8 => «Комбинаторика / Счастливые билеты 6» на 100% 9 => «110. Функции / Минимум и максимум» на 100% 10 => «110. Функции / Треугольники» на 100% 11 => «110. Функции / Звезда» на 100% 12 => «110. Функции / Степень» на 100% 13 => «110. Функции / Факториал» на 100% 14 => «110. Функции / Числа Фибоначчи» на 100% 15 => «110. Функции / Общий делитель» на 75% + Я выполнил 17 видеоуроков: 1 => «Python3: математика / Число прописью » за 47 мин. 2 => «Python3: математика / Автора - в кортеж» за 22 мин. 3 => «Python3: математика / Любое число прописью - новая программа и теория цикла for» за 22 мин. 4 => «Python3: математика / Любое число прописью - всё строится на цикле» за 34 мин. 5 => «Active Record / Active Record - UML» за 48 мин. 6 => «Active Record / Active Record - User - Imitation» за 1 час. 36 мин. 7 => «Active Record / Active Record - User - Create» за 41 мин. 8 => «Active Record / Active Record - User - Select» за 1 час. 26 мин. 9 => «Active Record / Active Record - User - Delete» за 31 мин. 10 => «Active Record / Active Record - User - Randoms» за 3 час. 1 мин. 11 => «Active Record / Active Record - User - Select all» за 1 час. 39 мин. 12 => «Active Record / Active Record - User - Update all» за 55 мин. 13 => «Active Record / ФИНАЛЬНЫЙ УРОК» за 17 мин. 14 => «Observer / Observer - Теория» за 55 мин. 15 => «Observer / Observer - School Bell - Student» за 58 мин. 16 => «Observer / Observer - School Bell - Sound Bell» за 1 час. 13 мин. 17 => «Observer / Observer - School Bell - Porter» за 1 час. 43 мин. − Я не собрал ни одного Мегахеша :o( Джава с аппетитом постигается в будни, в выходные с удовольствием наслаждаюсь питоньей математикой. Следующая неделя будет посвящена движению по обсерватории паттерна Обсервер. Звонок звенит, студенты орут Yeee! Текашнику удачного отпуска среди жарких арабских красот(ок))) |
|||
Python3: математика Любое число прописью - всё строится на цикле | + 5 | ||
методы редактирования списков list.append(x) Добавляет элемент в конец списка list.extend(L) Расширяет список list, добавляя в конец все элементы списка L list.insert(i, x) Вставляет на i-ый элемент значение x Длина списка возвращается методом len(имя_списка) Найти фото Текашника в ОАЭ ))) |
|||
Python3: математика Любое число прописью - новая программа и теория цикла for | + 5 | ||
возведение в квадрат **3 возведение в куб **3 Цикл for делается оригинально for i in range(стартовое значение включительно, окончание исполнения не включительно, шаг):инструкция |
|||
Python3: математика Автора - в кортеж | + 12 | ||
урок записывался в 6:30 утра - Валерий Владимирович спит ли когда? )) TUPLE Кортеж(список констант) объявляй в круглых скобках() Список объявляй в квадратных скобках[] Разница [списка] и (кортежа) в том, что к [списку] впоследствии можно добавлять элементы с помощью .append, а к кортежу после его создания ничего не присобачишь - он непокобелим! имя.__sizeof__() кажет нам размер кортежа или размер списка Кортеж в этом разрезе выглядит аскетичнее Мораль: динамичность не даётся даром и за неё платят б0льшим размером объекта Используй кортеж там, где не нужны последующие изменения элементов |
|||
Python3: математика Число прописью | + 11 | ||
соорудили функцию возвращающую строковое представление числа Поставил # - дальше строка закомментирована и не исполняется как инструкция Функция обрабатывает входной аргумент коллекцией строковых значений и возвращает прописной вариант введенного числа |
|||
Observer Observer - School Bell - Porter | + 13 | ||
оповещение Наблюдателей осуществляется оптом, не в розницу Наблюдатели хранятся в ArrayList<>(); Реагируют на событие лишь те наблюдатели, что добавлены Удаленный объект звонок как это ни удивительно, не звонит, но трое вечерних студентов рады и без звукового сопровождения (вторая иллюстрация) |
|||
Observer Observer - School Bell - Sound Bell | + 10 | ||
Если при создании класса OBell в интерфейсы указывается дефолтный Observer (не ObserverSchool/src) - то добавляются импорты и аргументы в методе update Чтобы звонок бренчал ваяем метод sound со строковым аргументом имени воспроизводимого файла Метод sound состоит из следующих инструкций: - создание экземпляра с аргументом имени файла - получение звукового потока из экземпляра выше - создание клипа - открытие звукового потока - запуск звукового потока в рамках трайкеча |
|||
Observer Observer - School Bell - Student | + 9 | ||
1:35 - цитата" Рассказывают, что Эклипс работает медленно даже на быстрых компьютерах". Оказывается не в железе дело )) Не поставил галку "Добавить абстрактные методы" от интерфейса. Посмотрим, выплывет ли это расхождение Создали интерфейс, дочерний класс студента и точку входа в программу |
|||
Observer Observer - Теория | + 8 | ||
схема Наблюдателя: - объект рассылает сообщения - количество Получателей может варьироваться - связь между Отправителем(Отправителями) и Получателем(Получателями) слабая Суперкласс Observer - способен принимать входящие сообщения (обрабатывать события) Дочерние классы реализуют деяния, связанные с событием, о котором информируется суперкласс Класс Observable (или Subject) отвечает за регистрацию обработчиков событий, удаление и оповещение оных Класс информатора (в примере - Porter) создает список оповещаемых, добавляет/удаляет в него элементы списка, инициирует оповещение слушателей в цикле перебирая всех Шаблон наблюдатель полезен в роли стартового пистолета на соревнованиях Вместо вахтёра в спорте стартёр — человек, который даёт старт соревнованию |
|||
Active Record ФИНАЛЬНЫЙ УРОК | + 16 | ||
суть Active Record в том, что ОДНА таблица базы данных превращается в ОДИН класс, а ОДНА строка таблицы в ОДИН экземпляр этого класса ActiveRecord устанавливает методы взаимодействия с данными каждой строки таблицы Создаётся шлюз для работы с требуемой БД и необходимым функционалом, настраиваемым в коде по техническому заданию потребителя услуг Курс вводит в тему, знакомит с основами шаблона на примере манипуляций с импровизированной БД на основе файловой системы, где одна учётная запись - это один текстовый файл |
|||
Active Record Active Record - User - Update all | + 16 | ||
dapoki готов трудиться за 500 евро Метод getMinSalaryUser возвращает экземпляр класса User В теле метода создается экземпляр с именем min из значением при инициации null В цикле, перебирающем все объекты ArrayListа userов с проверкой на значение null или зарплаты меньшей уже найденной, находится учетка с наименьшей зарплатой Последняя инструкция метода getMinSalaryUser возвращает экземпляр User min Похожим алгоритмом нашли самого молодого После удаления альтруистов, жаждущих менее одной тысячи евро, база сократилась на 700 учетных записей и самым альтруистичным стал работником стал fymi НА СТАРОЙ ТЕХНИКЕ ЭКЛИПС ТОРМОЗИТ, НЕ СТАВЬТЕ ЭТО ЧУДО БЕЗ НЕОБХОДИМОСТИ)) |
|||
Active Record Active Record - User - Select all | + 15 | ||
класс folder включает метод listFiles() возвращающий массив всех файлов Проверка найденного объекта на эквиватентность файлу возможна методом isFile() Моим самым молодым богатеем оказался... jozy balu pecu с ежемесячным заработком в размере 7440EUR! Мои поздравления молодому таланту! |
|||
Active Record Active Record - User - Randoms | + 15 | ||
random.nextDouble генерирует число от нуля до единицы charAt - Возвращает значение char по указанному индексу. Индекс находится в диапазоне от 0 до length () - 1. Первое значение последовательности в индексе находится в индексе 0, следующее в индексе 1... |
|||
Active Record Active Record - User - Delete | + 15 | ||
без реализации метода update() изменения касаются лишь переменной, не затрагивая содержимого БД При данной импровизированной базе данных на основе файловой системы, метод обновления идентичен методу создания файла После реализации метода update() зарплата Джона выросла беспрецедентно! |
|||
Active Record Active Record - User - Select | + 15 | ||
toString()позволяет возвращать строковое представление объекта 20 br.read считывает побайтно, символ за символом и возвращает их код |
|||
Active Record Active Record - User - Create | + 15 | ||
Active Record требует создания полей в классе соответствующих полям в таблице БД и методов, необходимых для манипуляции данными БД |
|||
Active Record Active Record - User - Imitation | + 14 | ||
в проекте роль таблицы отведена каталогу (директории) в операционной системе Роль строки в импровизированной таблице отведена текстовому файлу CREATE == создание файла READ == открытие с чтением UPDATE == сохранение изменений DELETE == удаление файла |
|||
Active Record Active Record - UML | + 15 | ||
active record создаёт класс, дублирующий содержимое БД (экземпляр этого класса отражает значение ОДНОЙ строки из БД Create Read Update Delete == CRUD https://www.draw.io - онлайн UML редактор Доступно чтение из базы, редактирование, возвращение данных При обновлении (создание/чтение/удаление) экземпляра класса, обновляется(создаётся/читается/удаляется) и строка в БД - синхронизация налицо |
|||
Дневник успеха 2019-03-10 : Маленькое дело лучше большого безделья. | + 15 | ||
За эту неделю: + Я проверил 209 отчётов у 56 формулистов. + Я написал 28 сообщений 12 формулистам общим объёмом 10 килобукв + Я набрал 7 текстов: 1 => «C# набор / Первая программа», без ошибок 2 => «C# набор / Служебные слова», без ошибок 3 => «C# набор / Определение массива», без ошибок 4 => «C# набор / Сравнение двух целых чисел», без ошибок 5 => «C# набор / Звездочки», без ошибок 6 => «C# набор / Обмен элементов», без ошибок 7 => «C# набор / Разделить строку на слова», без ошибок + Я решил 13 задач: 1 => «Строки / CompareTo» на 100% 2 => «Условный оператор / Минимальное расстояние» на 100% 3 => «For-to-чки / Сумма квадратов» на 100% 4 => «Вечность / 12 месяцев» на 100% 5 => «Точка и плоскость / Часть круга» на 100% 6 => «По цифрам / Четные цифры» на 100% 7 => «Олимпиада / Случайная задача» на 100% 8 => «101. Математика / Корни» на 100% 9 => «101. Математика / Удивительные корни» на 100% 10 => «101. Математика / Тригонометрия» на 100% 11 => «101. Математика / Параметрическая функция» на 100% 12 => «101. Математика / Минимум и максимум» на 100% 13 => «101. Математика / Площадь круга» на 100% + Я выполнил 15 видеоуроков: 1 => «Python3: математика / Обработка исключений в основной программе» за 41 мин. 2 => «Python3: математика / Проверка иных условий» за 26 мин. 3 => «Python3: математика / Списки - немного теории» за 30 мин. 4 => «Python3: математика / Списки - в программу!» за 1 час. 24 мин. 5 => «Python3: математика / Бесконечный while» за 18 мин. 6 => «Python3: математика / Словарь сотен» за 23 мин. 7 => «Tinklavimas / Контрольная работа» за 29 мин. 8 => «Template method / Template Method - Girl - Macho Boy» за 50 мин. 9 => «Template method / Template Method - Girl - Program» за 40 мин. 10 => «Template method / Template Method - Web Parser» за 56 мин. 11 => «Template method / Template Method - Web Parser - Abstract» за 52 мин. 12 => «Template method / Template Method - Web Parser - Time» за 34 мин. 13 => «Template method / Template Method - Web Parser - Loader» за 1 час. 9 мин. 14 => «Template method / Template Method - Web Parser - Currency» за 2 час. 10 мин. 15 => «Template method / ФИНАЛЬНЫЙ УРОК» за 50 мин. − Я не собрал ни одного Мегахеша :o( Над нами солнце светит - не жизнь, а благодать! Джава джавится, Пайтон питонится, весенние ручьи ещё не появились, но с крыш уже закапало. Дорога на вершину Фудзи длинна и извилиста, но вариантов, кроме как отталкиваться ножками от земли, помогая себе батогом и держась фарватера достойных сенсеев из Прибалтии и Приволжской возвышенности, вариантов немного. Потому ножками топ-топ, и урок за уроком, что-то да останется в голове. Всем успешного обучения! |
|||
Python3: математика Словарь сотен | + 15 | ||
создание словаря в фигурных скобках, через запятую пары "ключ:значение" Возвращается словарь указанием индекса элемента в квадратных скобках |
|||
Python3: математика Бесконечный while | + 15 | ||
while True: в Python указывается БЕЗ СКОБОК, но с двоеточием except KeyboardInterrupt: break так реализуется принудительный останов программы по CTRL+C Занятно, что для успешной отработки CTRL+C необходимо, чтобы была активна английская раскладка. Если давать контролЦ при активной русской раскладке - останова программы не происходит |
|||
Python3: математика Списки - в программу! | + 14 | ||
# в Python = это начало строчного комментария CTRL+X - скопировать в буфер с удалением в исходном месте Поставив каретку в конце строки присвоения переменной и нажав TAB получаем выпадающее меню доступных функций, типов и резервированных операторов |
|||
Python3: математика Списки - немного теории | + 14 | ||
создание списка -> имя_списка=[] Вывод в консоли - простым указанием имени списка Аналог адэдэ -> имя_спискаТЧКappend[добавляемое_значение_в_список] имя_листаТЧКextend(имя_списка_что_хотим_добавить) == сшивка имеющегося списка с другим Списки индексируются с нуля, при использовании имя.insert(номер_индекса, 'значение_которое_вставляем') учесть, что вставка будет выполнена после четвертого по счёту элемента списка |
|||
Python3: математика Проверка иных условий | + 11 | ||
после сигнатуры функции пиши двоеточие после иф, после элз, после элиф с условиями - также не забывай двоеточие Логическое ИЛИ в Пайтоне пишется англословом ОР (or) Женский состав курсантов с праздником! Ура! |
|||
Python3: математика Обработка исключений в основной программе | + 11 | ||
не забывать про отступы - 4(четыре) пробела или один табуляции символ - для выделения строк инструкций тела функции Код чётко отрабатывает трехзначные числа, и возвращает ошибку из переменной result в случае, если введено не число В случае, если ввод был не числа с тремя разрядами, то количество сотен указывается также верно, растёт лишь разрядность возвращаемого количества сотен |
|||
Template method ФИНАЛЬНЫЙ УРОК | + 12 | ||
Если есть скелет, рыба или общее представление о том, как должна работать программа, то Шаблонный метод - это наш выбор. Создаётся суперкласс, в котором описывается абстракция поведения кода, а конкретику мы описываем в классах наследниках. Поскольку при создании классов-наследников IDE уже автоматически заготавливает методы, которые требуют реализации, процесс создания программы упрощается, разбиваясь на два этапа: создание общего описания КАК ДОЛЖНА РАБОТАТЬ программа, и реализация мелких подробностей в наследниках. Курс знакомит неподготовленного курсанта с шаблоном, давая первые представления, доступные к пониманию с чистого листа. Развитие темы - преррогатива учащегося. Особо порадовал раздел по созданию парсинга реального сайта в интернете. Прежде лишь краем уха слышал о такой фиче, теперь знаю, что парсить надо выцепляя адрес сайта, найдя в коде сайта уникальный якорь, отсчитывать от него требуемый диапазон для последующего анализа, загонять этот диапазон в массив, разбивая по имеющимся в коде сайта знакам препинания и с последующим возвратом в переменную искомого значения, как элемента массива. Несложно. Курс смело рекомендую начинающим пытливым умам. Всем удачи и приятных праздников! Заниматься в двух метрах от праздничного стола с мандаринами и шампанским. |
|||
Tinklavimas Контрольная работа | + 18 | ||
1 HTML hypertext markup language - язык гипертекстовой разметки веб-страниц, применяется для создания сайтов. Отвечает за то, как выглядит страница в статичном состоянии. Веб-страница описывается в текстовом формате с расширением .html Структурируется блоками html, head, body, описывается тегами, заключаемыми в угловые скобки. Поддерживает каскадные таблицы стилей, как в теле самого файла, так и подключаемыми извне. Вывод пользователю - через браузеры. CSS каскадные таблицы стилей cascade stylesheet, текстовое описание форматирования, размерности, шрифтов, цветовой схемы сайта, применяемые к странице, описанной на HTML. Описывают элементы сайта, выделяемым по классам, идентификаторам. Может быть частью HTML-страницы, либо отдельным файлом подключаемым через тег link. JavaScript язык программирования веб-страниц, отвечающий за поведение сайта. Не имеет строгой типизации, исполняется на стороне клиента в браузере. К языку программирования Java отношения не имеет. Структурируется функциями, применяется в HTML коде с тегами <script></script>. Чтобы на странице тыкалось, кликалось, бахало, моргало, листалось, реагировало на действия пользователя - применяем скрипты JavaScript. PHP язык программирования, написанный на языке программирования Си, предназначенный для придания функциональности веб-страницам. Работает на стороне сервера, интерпретируется там же в HTML-код и после этого отправляется клиенту в браузер. Строгой типизации не имеет. Методы называются функциями. Переменные именуются со знака $. |
|||
Template method Template Method - Web Parser - Currency | + 5 | ||
принцип парсинга с сайта: ищешь уникальную запись привязываешься к ней как к якорю от этого индекса отсчитываешь через сколько начать парсить отсчитываешь на каком индексе закончить выдергивание информации Метод getURL возвращает полный адрес целевой страницы, откуда будем стягивать инфу Метод findInfo ищет якорь, стартовый индекс от якоря, финальный индекс от якоря и в переменную записывает найденное В валютном парсере реализовали поиск выделением подстроки от якоря до плюс 200 индексов с разделением как в иксельке по знакам "кавычка", не забыв её экранировать Метод, в сигнатуре которого ты указал булевый тип возвращаемых данных, не забывай завершать ритёрном тру или фолза, иначе ашыпка С первого запуска код вернул NO DATA! (иллюстрация номер 1) Попробовал парсить ЦБ России - успех (вторая иллюстрация) Не нашел поиска в коде веб-страницы, открываемый через F12 Изучаю проблему |
|||
Template method Template Method - Web Parser - Loader | + 8 | ||
для обработки содержимого веб-страницы использовали экземпляр StringBuffer InputStreamReader читает весь код страницы BufferedReader читает построчно Чтение кода в бесконечном цикле выполняется до строки равной null append == добавлять,присоединять,прилагать, конкатенировать, привешивать, прибавлять, добавлять в конец При адаптации класса WebTime.java для иных сайтов, кроме time100.ru можно выдергивать требуемую информацию из-под капота сайта, а он и не узнает )) |
|||
Template method Template Method - Web Parser - Time | + 11 | ||
создали поиск текущего времени по маске в коде страницы сайта %H%:%i%:%s Выделение подстроки с 19 по 27 индекс - высчитано прямо из кода сайта сначала неточно, не была указана стартовая позиция, хранящаяся в переменной pos (первая иллюстрация) После указания стартового индекса считывание из метода loadPage проходит успешно |
|||
Template method Template Method - Web Parser - Abstract | + 13 | ||
абстрактный метод getURL возвращает строковое поле в переменную url загрузка сайта реализована приватным методом loadPage Поиск информации - абстрактный метод возвращающий булево значение |
|||
Template method Template Method - Web Parser | + 11 | ||
F12 или CTRL+SHIFT+I - код страницы а) открыть сайт б) открыть код сайта в) найти строку г) найти информацию д) вернуть искомое значение |
|||
Template method Template Method - Girl - Program | + 10 | ||
клиент создаёт экземпляр абстрактного класса Единственный доступный метод - познакомиться, остальные закрыты Далее по шаблону отрабатывает каждый экземпляр со своими вариациями |
|||
Template method Template Method - Girl - Macho Boy | + 10 | ||
создали абстрактный класс с кириллическим именем Проблемы при создании класса не произошло, однако проверить кодировку не повредит: Window - Preferences - General - Workspace - Text file encoding У меня стояло Default (Cp1251) и не ругнулось на кириллицу в сигнатуре Поправил на Other - UTF-8, после применения имя класса исказилось, ошибки в коде. Удалил класс, пересоздал заново успешно |
|||
Дневник успеха 2019-03-03 : Не говори "гоп", пока не перепрыгнешь. | + 11 | ||
За эту неделю: + Я проверил 226 отчётов у 47 формулистов. + Я написал 17 сообщений 9 формулистам общим объёмом 6 килобукв + Я набрал 7 текстов: 1 => «Java - Запуск / String[] args», без ошибок 2 => «Java - Запуск / System.out», без ошибок 3 => «Java - Запуск / Главное заклинание», без ошибок 4 => «Java - Запуск / Компиляция», без ошибок 5 => «Java - Вывод данных / Java Keywords», без ошибок 6 => «Java - Вывод данных / Целые типы», без ошибок 7 => «Java - Циклы / Java For Loops», без ошибок + Я решил 8 задач: 1 => «Условный оператор / Отрицательный куб» на 100% 2 => «For-to-чки / Сумма квадратов» на 100% 3 => «Точка и плоскость / Четверть плоскости» на 100% 4 => «Узник цикла IF / Нули» на 100% 5 => «Узник цикла IF / Плюс-минус» на 100% 6 => «Матрёшки / Звездный квадрат» на 100% 7 => «Строки / Длинное слово» на 100% 8 => «Олимпиада / Случайная задача» на 100% + Я выполнил 14 видеоуроков: 1 => «JS Восточный гороскоп / Данные - на страницу» за 28 мин. 2 => «JS Восточный гороскоп / ФИНАЛЬНЫЙ УРОК» за 15 мин. 3 => «Singleton / Singleton - Config - Cant extend» за 1 час. 8 мин. 4 => «Singleton / Singleton - Config - Super child» за 27 мин. 5 => «Singleton / Singleton - Timer - Pattern Design» за 33 мин. 6 => «Singleton / Singleton - Timer - Start / Click» за 1 час. 0 мин. 7 => «Singleton / Singleton - Timer - Program» за 38 мин. 8 => «Singleton / Singleton - Timer - String vs Buffer Speed» за 1 час. 32 мин. 9 => «Singleton / Singleton - Timer - Experiment» за 44 мин. 10 => «Singleton / Singleton - Timer - Log class» за 42 мин. 11 => «Singleton / ФИНАЛЬНЫЙ УРОК» за 1 час. 3 мин. 12 => «Singleton / VIP - Singleton - Timer - Enum» за 47 мин. 13 => «Template method / Template Method - Introduction» за 20 мин. 14 => «Template method / Template Method - Girl - Abstract» за 31 мин. − Я не собрал ни одного Мегахеша :o( Одиночка финализирован и понят. Понят и освоен. Освоен и взят на вооружение. Вооружён и очень безопасен ) Java раздел подкинул курс по знакомству с девушками. Забавно, но девушки мне в машину сами садятся, периодически даже с детьми, в половине случаев в детское кресло для малышей. Бывает занятно наблюдать их общение между собой. В Кирове много красивых и душевных девушек. План на следующую неделю - продолжить курс по знакомству с девушками в рамках Template Method )) |
|||
Template method Template Method - Girl - Abstract | + 11 | ||
абстрактный класс содержит: +неизменяемый метод, одинаково применимый ко всем наследникам +переопределяемые методы, учитывающие особенности реализации конкретных наследников Саблайм не подсвечивал синтаксис. Нашел где включить(иллюстрация номер 1) |
|||
Template method Template Method - Introduction | + 14 | ||
абстрактный класс хранит в себе неизменяемый алгоритм действий, применяемый в массовом порядке Клиент обращается к абстрактному классу, а тот в свою очередь делегирует выполнение определённого алгоритма конкретным классам, обращающимся к абстрактному за инструкциями. Ежегодно у меня в рамках профессиональных обязанностей приходится обновлять корневые сертификаты всех пунктов моего региона. Их 600. И это 600 однотипных прохождений одного и того же. Залогиниться, десяток одинаковых, с малыми вариациями, кликов ПКМ, указание файла откуда взять обновку, проверка успешности обновления и выход. И так 600 раз. Если этого не делать - танцы с бубном, здравствуйте! Если это делать - немного тупеешь на время однообразного тыкания. Со временем скорость маслания мышью растёт, но идея автоматизации процесса всё равно витает в воздухе. Любопытно, поможет ли этот курс найти решение для подобной рутины. |
|||
JS Восточный гороскоп ФИНАЛЬНЫЙ УРОК | + 15 | ||
Создали несложное веб-приложение подтягивающее из свича данные о годе по китайскому календарю. Лишний раз зарубил себе на носу, что класс в каскадных таблицах стилей надо описывать с точки. По недостатку практики, это вечно забывается и идет поиск, как таки запомнить простые вещи. Нравятся курсы Валерия за их гармоничную подачу материала, от которой аппетит на учение лишь растёт. Хочу найти свою тему и начать с нуля, как это делает Валерий с помощью друга Эммета, свой проект некоего лабаза или исследовательского ресурса. Но поскольку за окном не кони в вакууме плаваютЪ, наверное надо магазин ваять По будням - традиционно грызём Java, по выходным - что-то на отвлечённые темы. |
|||
JS Восточный гороскоп Данные - на страницу | + 13 | ||
в стилях имя класса описывай с точечулечки (так запомнить можно?) |
|||
Singleton VIP - Singleton - Timer - Enum | + 7 | ||
при изменении класса на перечисление, обращение к перечислению происходит не по имени метода, а по имени экземпляра перечисления getLog() уходит в небытие, а вместо него пишем имя как в перечислении писали, в нашем случае LOG Весь код Одиночки стал не нужен, и был заменен одним экземпляром перечисления Если экземпляр перечисления не вызывается в коде, то и запуска конструктора не происходит |
|||
Singleton ФИНАЛЬНЫЙ УРОК | + 8 | ||
вся суть Одиночки в том, чтобы экземпляр класса был один и тчк Реализация задумки проста - есть такая баская штука как пустота Эта пустота называется у программистов нАллом (null) При объявлении экземпляра Одиночки, он инициализируется этой самой пустотой А при обращении из программы к Одиночке выполняется проверка на эквивалентность экземпляра пустоте, и если Одиночка ещё равен пустоте, то создаётся первый, он же последний экземпляр Одиночки Если же при обращении к услугам Одиночки, выясняется, что экземпляр уже не равен пустоте(которой он был инициализирован), то методом возвращается тот же самый первый, он же последний экземпляр Singletona Наследовать от Одиночки не получится Если требуется монопольный доступ к Одиночке, для предотвращения одновременного доступа пишите synchronized в сигнатуру getInstance() Курс знакомит с основами шаблона, при достаточном усердии способен дать толчок для развития, при слабой мотивации позволяет выполнить задания на удовлетворительно и идти дальше Каждый выберет себе степень погружения в тему |
|||
Singleton Singleton - Timer - Log class | + 15 | ||
создали класс SingleTimer утащили из класса Timer синглтон таймера + инициализацию nullом + getInstance, который у нас getTimer + конструктор экземпляра SingleTimerа, вызывающий родительский конструктор Одиночку целесообразно использовать в основном классе, откатили изменения назад git checkout Log.java git checkout Program.java git checkout Str |