Дата | Видеоурок | Результат | |
---|---|---|---|
Yii2 Soft - Вступление и подготовка | + 16 | ||
___ Скачать сервер ___ |
|||
Шаблоны ФИНАЛЬНЫЙ УРОК | + 16 | ||
Узнал, что такое шаблоны проектирование и как с ними работать Пройти столько уроков. Хотя странно, вот в Сокобане по часам где-то столько же, а уроков в 4 раза меньше. Такой себе минус коротких уроков =) Ну что сказать, курс вышел просто отличный. Конечно, ничто не идеально, но я и не говорил, что он такой =) С его помощью я узнал, что вообще представляют из себя эти шаблоны проектирования, зачем они нужны и как ими пользоваться. Как вы скорее всего догадались, он по большей части состоит из программ-примеров, на которых рассматривается один (почти всегда) или более (это уже ближе к концу курса) шаблонов. И выбор этих программ здесь как всегда замечательный, например, за курс мы написали две игры, парсер сайтов, стимулятор свиданий, кота, который создаёт файл, если температура равна 18, полноценный калькулятор на 4 операции градусам и ещё кучу всего. И это на курсе, который не то, что обещал вам чего-то такого, но и вообще по факту посвящён теории правильного программирования (или как-то так). Так что, если вы не знаете, что такое шаблоны программирования, или знаете, но хотите разобраться, где какой приминать, как конкретно их реализовывать и почему именно так, то вы знаете, какой курс вам нужен =) |
|||
State State - Целый калькулятор - Fix Bugs | + 16 | ||
Исправлять ошибки Правильно исправить ошибки Первые две и четвёртую я ещё до этого урока пофиксил. На прошлом скриншоте видны все исправления. Третью пропустил (и ещё думал, а зачем в результате при нажатии знака что-то вычислять) =) |
|||
State State - Целый калькулятор - 16 кнопок | + 16 | ||
Исправлять ошибки при реализации этого шаблона Ничего Ну, вроде теперь всё правильно работает =) |
|||
State State - Целый калькулятор - Logic | + 16 | ||
Создавать калькулятор Ничего Вау, это всё так классно, отличный шаблон, и просто замечательный пример =) Ошибка в том, что после вычисления результата, если мы вводим цифру, то х не сбрасывается, а остаётся прежним и эта цифра добавляется в конец |
|||
State State - Целый калькулятор - Press key | + 16 | ||
Узнал, что всё это время можно было делать со switch Ничего • Ого, спасибо, вы прямо мне глаза открыли на то как работает switch (почему обязательно нужно писать break; и всё такое)! • Я решил сразу с формами работать |
|||
State State - Целый калькулятор - Context | + 16 | ||
Писать 200 строк кода ни написав ни строчки =) Ничего Так, теперь надо действительно запомнить, как что делается |
|||
State State - Целый калькулятор - States | + 16 | ||
Принцип работы калькулятора В принципе, всё понятно Сейчас какие-то смешанные чувства. Тоже всегда хотел написать калькулятор, даже как-то делал что-то подобное, так что эти уроки действительно хочется посмотреть. Но после всего, что я уже прошел, у меня не то что каша, а кисель в голове =) Так что сложно всё воспринимать (точнее обрабатывать и запоминать). Но сегодня - последний день, когда я могу проходить курс, так что и выбора у меня особо нет. |
|||
State VIP - State - КНБ - JButtons | + 16 | ||
Встраивать шаблоны в форму Ничего Для счётчика нужно, чтобы context.Play() возвращал не строку а перечисление с результатом, а то со строкой немного коряво получается =) |
|||
State VIP - State - КНБ - JFrame | + 16 | ||
В Java всё сложно с формами Ничего =) Я тоже переделал консольное приложение в WinForms, но это было гораздо легче как-то. Создал форму двумя кликами, запустил (1 строка кода), указал в настройках проекта, что это теперь WinForms приложение и всё |
|||
State State - КНБ - Play | |||
Играть в камень ножницы бумага Ничего А почему мы не создаём enum для State, чтобы как минимум считывать фигуру пользователя, или чтобы передавать его в state.PlayVs(figure) ? |
|||
State State - КНБ - States | + 16 | ||
Реализовывать State Ничего А вот в старые добрые времена программисты сами состояние меняли, а теперь программа сама всё продумывает =) |
|||
State State - Вступление | + 16 | ||
Узнал, что это за шаблон такой Ничего То есть это Стратегия, где алгоритм для каждого состояния может влиять на это самое состояние |
|||
Observer VIP - Observer - Sensor - Alert | + 16 | ||
Реагировать только при изменении условий Ничего Как-то не впечатлил меня этот шаблон, не знаю. Ну есть же события. И в EventArgs можно передавать ту же информацию и реализуется легче |
|||
Observer Observer - Sensor - Banner | + 16 | ||
Использовать 2 шаблона стразу Ничего Всё хорошо |
|||
Observer Observer - Sensor - Cat File | + 16 | ||
Реализовывать деструктор Ничего Ну вот, а в C# есть и сборщик мусора и деструктор =) |
|||
Observer Observer - Sensor - Person | + 16 | ||
Реагировать на температуру Ничего Последний рывок =) |
|||
Observer Observer - Sensor - Visaginas | + 16 | ||
Повторил Observable Реализовать C#-овскую реализацию Так и не могу понять, зачем это нужно... |
|||
Observer Observer - School Bell - Study and Break | + 16 | ||
Присылать разные уведомления Ничего А почему нельзя было всё через NotifyObservers сделать? |
|||
Observer Observer - School Bell - java.util.Observable | + 16 | ||
Реализовывать IObservable Ничего Ну, тут опять же немного другая реализация, но с тем же смыслом: https://msdn.microsoft.com/ru-ru/library/dd782981(v=vs.110).aspx |
|||
Observer Observer - School Bell - java.util.Observer | + 16 | ||
В C# тоже есть Observer Реализация немного отличается Чем этот шаблон отличается от события, я всё ещё не могу понять.. |
|||
Observer Observer - School Bell - Porter | + 16 | ||
Реализовывать событие Ничего А не лучше ли вместо дубрейк и будущего дустади просто передавать соответствующий аргумент в нотифайобсерверс? (лень на английскую клавиатуру переключатся) |
|||
Observer Observer - School Bell - Sound Bell | + 16 | ||
Как воспроизводить mp3 Воспроизвести mp3 Вот не поревете, испробовал всё от DirectX до DllImport, ничего не работало, в итоге всё таки использовал WindowsMediaPlayer.. |
|||
Observer Observer - School Bell - Student | + 16 | ||
Всё знал Ничего Эх, помню, я воспроизводил любые звуковые файлы на шарпе, добавив на форму скрытый windows media player =) |
|||
Observer Observer - Теория | + 16 | ||
Принцип работы шаблона Ничего • Картинка обрезанная снизу, так и должно быть? • Так это ж обычное событие. Или в джаве их нет? Нет, хотя с другой стороны интересно, как это без делегатов можно реализовать =) |
|||
Active Record Active Record - User - Update all | + 16 | ||
Богатые богатеют - бедные беднеют, а средний класс всё оплачивает Ничего Когда выполняешь домашнее задание, становится скучно смотреть начало (первые две минуты) урока, так как именно на это оно и тратится |
|||
Active Record Active Record - User - Select all | + 16 | ||
Повторил получение файлов в папке по шаблону Ничего Да здравствует LINQ |
|||
Active Record Active Record - User - Randoms | + 1 | ||
Тестируем программу ддос атакой =) Ничего Такой метод тестирования сработает, если что-то сломается, а если ошибки не будет, то нужно же будет вручную каждый результат проверять |
|||
Active Record Active Record - User - Delete | + 16 | ||
Увольнять работников Ничего Ну, пока всё очень даже просто |
|||
Active Record Active Record - User - Select | + 16 | ||
UPDATE - это просто Ничего Реализовал Select через строковый аргумент и upadte |
|||
Active Record Active Record - User - Create | + 16 | ||
Создавать пользователя Ничего Уже в предвкушении готового класса =) |
|||
Active Record Active Record - User - Imitation | + 16 | ||
Будем работать с файлами, а не бд Ничего В этом плане этот шаблон даже лучше EF, он для простых проектов, не нужно морочатся с настройкой и всем таким |
|||
Active Record Active Record - UML | + 16 | ||
Принцип работы этого шаблона Ничего Хм, по описанию - один в один Entity Framework, только вторая пофункциональнее будет. Кстати, курс по ней уже закончен или ещё есть надежда на продолжение? =) |
|||
Iterator Iterator - BlackJack - Play game | + 16 | ||
Моя программа меня же обыгрывает.. Ничего Всё подровнял и немного по другому реализовал вопрос хочет ли пользователь взять ещё карту. Синглтон? Ну, сначала создаём колоду, а потом её только используем. |
|||
Iterator Iterator - BlackJack - Stages | + 16 | ||
Вспомнил правила игры Ничего А если перебор (кто-то проиграл)? |
|||
Iterator Iterator - BlackJack - Random | + 16 | ||
Перемешивать итерируемую коллекцию методом "Что? Где? Когда?" Ничего Для итератора просто отличный алгоритм, так как ему всё равно, что мы удаляем элементы из массива и на перемешивание время практически не тратится. Класс! |
|||
Iterator Iterator - BlackJack - Deck of Cards | + 16 | ||
Больше практики Ничего А зачем эти два метода? Они же дублируют уже существующие по функционалу.. |
|||
Iterator Iterator - BlackJack - Card | |||
Enum в Java прилично отличается от того, что в C# Ничего Это было ожидаемо, я уснул. Но есть и плюсы, я наконец-то выспался и первая пара в час, так что ещё даже успею пару уроков пройти =) • Вот, смотрите, уже и пригодилось то, что в шарпе можно создавать экземпляры внутренних классов. Так как Face и Suit по логике и должны находится в классе Card, зачем им быть вне его и захламлять пространство имён, они ж больше ни для чего не используются, и нужны только этому классу? • А в Java нельзя корректировать порядковые номера элементов перечисления, как на скриншоте? • И ещё. Там нельзя явно преобразовывать их в int? • И последний вопрос, почему вы пишете toString как обычный метод, его ж переопределить нужно, или в Java это тоже не так? |
|||
Iterator Iterator - Random | + 16 | ||
Всё знал Ничего А у меня внутренний класс не видел переменную max из внешнего. Разве он должен? Ведь мы свободно можем создать его экземпляр не создавая экземпляр внешнего (если бы он был публичным), и тогда переменной max вообще не будет UPD: В Java внутренний класс не может быть публичным, по этому там такое возможно |
|||
Iterator Iterator - BlackJack - Introduction | + 16 | ||
Что Евгений Витольдович азартный человек =) Ничего Ладно, я тут подумал, мне вставать через 2 часа, так что самое время ложится. Да и судя по всему намечается интересная программка, и её лучше писать на свежую голову =) |
|||
Iterator Iterator - Digits | + 16 | ||
Делать итератор для перебора цифр в числе Ничего А знаете, хоть сейчас и пять утра, а мне действительно стало понятнее, как работают итераторы =) |
|||
Iterator Iterator - Numbers - System | + 16 | ||
Реализовывать итератор, который возвращает определённый тип данных Странно, шарп настаивает на реализации ещё какого-то IEnumerator IEnumerable.GetEnumerator() При указании типа возвращаемого значения итератора Выше написал |
|||
Iterator Iterator - Numbers - Inner class | + 17 | ||
Объединить весь итератор в один* класс Ничего Теперь 2 минуты на урок?? С другой стороны, тут я даже настроится не успел, так что даже меньше дискомфорта, чем уроки по 5 минут =) |
|||
Iterator Iterator - Numbers - Running | + 16 | ||
Использовать итератор в своих целях Ничего Как-то курс по итератору понятнее был. Хотя, может я его уже идеализировал, уже больше полугода прошло как-никак. |
|||
Iterator Iterator - Numbers - Iterable | + 16 | ||
Вспомнил про IEnumerable, и понял, что забыл, зачем оно надо Ничего Уроки по 5 минут какие-то уж слишком короткие, только настроился, а он уже закончился. |
|||
Iterator Iterator - Numbers - 12345 | + 16 | ||
Повторил реализацию итератора Ничего Интересно, а в этом шаблоне тоже будет yeld return и всё такое |
|||
Iterator Iterator - Numbers - Introduction | + 16 | ||
Узнал, что итератор - это ещё и шаблон проектирования Ничего Стоп, мы ж уже рассматривали итератор вдоль и поперёк в одноимённом курсе (отличный курс, кстати получился) |
|||
Facade Facade - Motivator - Text Center | + 16 | ||
Повторил измерение размера текста Ничего Создать картинку в консоли. А это не так сложно, как я думал =) |
|||
Facade Facade - Motivator - Picture Border | + 16 | ||
Всякому разному Ничего К этому уроку нет заданий, которые нужно галочками отмечать, так и задумано? |
|||
Facade Facade - Motivator - Back Paint | + 16 | ||
Вспомнил, как запускать сторонние программы Ничего Всё всё ещё работает =) |
|||
Facade Facade - Motivator - Image | + 16 | ||
Вспомнил импорт системных библиотек На удивление, всё идёт довольно гладко Аж даже странно как-то =) |
|||
Facade Facade - Motivator - Methods | + 16 | ||
Реализации фосада Ничего Пока всё просто =) |
|||
Facade Facade - Motivator - Plan | + 16 | ||
Составлять план создания мотиватора Ну вроде всё не сложно, но в консоли я никогда с изображениями не работал, так что ожидаю кучу подводных камней Да смилуется надо мной великий бог работающего кода |
|||
Facade Facade - Motivator - Program | + 16 | ||
Не знаю Ничего Уже подумал, что будем с формами работать. Работа с изображениями в консоли, звучит заманчиво =) |
|||
Facade Facade - Computer - Power | + 16 | ||
Зачем нужен фасад Ничего Такой простой, что не кажется шаблоном, так как до него и самому можно додуматься =) |
|||
Facade Facade - Computer - Devices | + 16 | ||
Нашел способ получить имя текущего метода Ничего Сейчас интересно, что дальше будет, пока ничего не скажу |
|||
Facade Facade - Computer - Program | + 16 | ||
Узнал про шаблон Фасад Ничего Простой, но полезный - это именно то, что хочется услышать =) Но ведь эту роль и выполняют методы и классы. Мы сбрасываем на них определённую работу, а затем просто вызываем. Чем это шаблон лучше? |
|||
Strategy VIP - Strategy - Person - Enum | + 16 | ||
Всё знал Я когда увидел название урока, уже подумал, что мы опять будем шаблон под enum переделывать и мне опять придётся на Java переходить =) С enum всё становится лучше! |
|||
Strategy VIP - Strategy - Person - UML | + 16 | ||
Создавать карту кода Ничего Хех, а VisualStudion и сама так может =) |
|||
Strategy Strategy - Person - Save - Strategy | + 16 | ||
В Java сложнее работать с файлами Всё понятно Да, в шарпе тоже можно через поток записать, но можно и одной командой: File.WriteAllText(fname, data); Ну красота же =) |
|||
Strategy Strategy - Person - Save - Context | + 16 | ||
Реализовывать ещё одну стратегию Ничего Вот думал, приду пораньше, пройду уроков 20 и наконец-то лягу вовремя спать. В итоге начал в полпервого.. |
|||
Strategy Strategy - Person - Format - Strategy | + 16 | ||
Как формируется формат JSON Не сунуть =) Нет, всё, я уже не могу. Пожалуй 3 часа ночи это мой предел. Я спасть =) |
|||
Strategy Strategy - Person - Format - Context | + 16 | ||
писать программу мышкой =) Ничего Ну что ж, пора всё реализовывать =) |
|||
Strategy Strategy - Person - Program | + 17 | ||
Больше практики в стратегии Ничего Всё отлично |
|||
Strategy Strategy - Person - Schema | + 16 | ||
Принцип работы будущей программы Сделать UML диаграмму. Это долго, не обязательно и уже поздно, а я и так на парах их делал, так что просто напишу ТЗ 1) Написать шаблон для создания экземпляра класса person 2) Реализовать фабрики для различных типов данных 3) Написать шаблон для вывода 4) Реализовать стратегии для различных видов вывода |
|||
Strategy Strategy - Join - Log/Timer | + 16 | ||
Использовать несколько шаблонов проектирования в одном проекте Ничего Хм, однако в 2 раза быстрее =) Кстати, все таки думаю, что не стоит разделять синглтон на два класса. При импорте не удобно, да и пользы не очень много |
|||
Strategy Strategy - Join - String/Buffer | + 16 | ||
Реализовывать стратегию Ничего Это как учиться управлять балидом, работая таксистом. Какого же масштаба должен быть проект, чтобы создание кучи классов действительно пригодилось |
|||
Strategy Strategy - Join - Context | + 16 | ||
Много классов - не значит плохо Ничего Ещё надо научиться удобно хранить все эти классы |
|||
Strategy Strategy - Join - ArrayList | + 16 | ||
Вот за Shift + вниз, Ctrl + C, (Ctrl + V) x N отдельное спасибо =) ничего Какой-то слишком простой пример. Но судя по количеству уроков в следующем, он удовлетворит всю мою хотелку по масштабу =) |
|||
Strategy Strategy - Operation - Program | + 16 | ||
Использовать разные стратегии Ничего Хм, а ведь раньше для этой цели мы делегаты использовали =) |
|||
Strategy Strategy - Operation - Context | + 16 | ||
Реализовывать стратегию Вникнуть в принцип работы Интересно, а как контекст сам будет выбирать, какую стратегию использовать |
|||
Strategy Strategy - Intro | + 16 | ||
Что такое Стратегия Ничего Получается, что это что-то вроде фабрики, только работает не на этапе создания, а на этапе выполнения работы |
|||
Template method Template Method - Web Parser - Currency | + 16 | ||
Универсальности данного шаблона Ничего Теперь нужно научиться сразу видеть, где эти шаблоны нужно применять, а то пока это как-то сложно |
|||
Template method Template Method - Web Parser - Loader | + 16 | ||
Повторил загрузку страницы Ничего Ух ты ж. 2 строчки в C# против 10 в Java.. Интересно, зачем они сделали, чтобы сайт загружался/считывался построчно, если в целях уменьшения занимаемой памяти у большинства сайтов минимум лишних символов в коде (включая перенос строки) |
|||
Template method Template Method - Web Parser - Time | + 16 | ||
Запускать Шаблонный метод Ничего Интересный шаблон, нужно обязательно будет на чём-то испробовать |
|||
Singleton VIP - Singleton - Timer - Enum | + 16 | ||
В Java enum реализован иначе Ничего Хм, а вот тут шарп может даже и проигрывает джаве. Не знаю, на сколько это недостаток, что в перечислении нельзя создавать методы, но всё же |
|||
Template method Template Method - Web Parser - Abstract | + 16 | ||
sealed можно использовать только в паре с override То, чему научился Интересно, зачем так сделали |
|||
Template method Template Method - Web Parser | + 16 | ||
Что мы будем создавать парсер Ничего Как-то писал свой парсер, интересно, чем они будут отличаться |
|||
Template method Template Method - Girl - Program | + 16 | ||
Запускать экземпляр данного шаблона =) Ничего Даже пока не знаю, где буду его использовать, но как только возможность подвернётся, сразу начну =) |
|||
Template method Template Method - Girl - Macho Boy | + 16 | ||
В принципе всё знал Ничего Всё хорошо |
|||
Template method Template Method - Girl - Abstract | + 16 | ||
В C# есть sealed Ничего Сейчас бота для свиданий писать будем =) |
|||
Template method Template Method - Introduction | + 16 | ||
Узнал про шаблонный метод Всё понятно То есть мы закладываем основу алгоритма, а потом на её основе создаём различные его вариации. Звучит интересно =) |
|||
Factory Factory - Storage - Фабричные цеха | |||
Ничего Ну да, вызов CreateReader() же проще переместить внутрь основной фабрики, чтобы фабрика возвращала только сам Reader |
|||
Factory Factory - Storage - Фабрика | + 16 | ||
Придется делать много фабрик =) Ничего Аа, точно, прослушал. Вот зачем нужен был init =) |
|||
Factory Factory - Storage - Запуск | + 16 | ||
Всё понятно Так и не понял, зачем создавать метод init Хотел ещё в прошлом уроке спросить, но забыл. А зачем в каждом классе вместо конструктора создавать метод init? |
|||
Factory Factory - Storage - Файл и Сканер | + 16 | ||
Всё понятно Ничего Интересно, что в итоге получиться =) |
|||
Factory Factory - Storage - Читатель | + 16 | ||
Пока не знаю Ничего Дальше мы будем делать разные виды ридеров видимо (из консоли, из файла и подобные) |
|||
Factory Factory - Shapes - Interfactory | + 16 | ||
Реализацию фабрики на основе интерфейса Ничего Ну вроде пока синглтон даже сложнее был, но думаю, это пока только верхушка того, что может фабрика |
|||
Factory Factory - Shapes - Список | + 16 | ||
Создавать случайную фигуру Ничего Пришлось создать рандом вне метода, так как в шарпе он видимо зависит от времени и метод с ним вызывался быстрее, чем за миллисекунду видимо, так что все "случайные" фигуры были одинаковыми =) |
|||
Factory Factory - Shapes - Созидатель | + 16 | ||
Создавать экземпляры различных классов одним методом Ничего В Java нельзя делать switch по строке? Печально =) |
|||
Factory Factory - Shapes - Абстракция | + 16 | ||
Ничему Ничего О, ну я ж говорил, наследование от абстрактного класса! Та я прям что-то знаю =) |
|||
Factory Factory - Shapes - Три фигуры | + 16 | ||
Пока ничему Ничего Наследование от абстрактного класса вроде должно решить все эти проблемы |
|||
Singleton Singleton - Timer - Log class | + 16 | ||
Повторил эту штуку с разбиением синглтона на два класса Ничего Ну да, то есть, если мы хотим и синглтон и класс отдельно, то можно и разбить. |
|||
Singleton Singleton - Timer - Experiment | + 16 | ||
Создавать класс Лог - одиночку Ничего Всё отлично |
|||
Singleton Singleton - Timer - String vs Buffer Speed | + 16 | ||
Наглядно увидел, на сколько StringBuilder быстрее string Ничего 3,5 минуты против 4 сотых секунды... Мда =) |
|||
Singleton Singleton - Timer - Program | + 16 | ||
Всё знал Ничего В Java нет класса Stopwatch? Потому что судя по всему именно его мы и создаём =) Кстати, а почему у вас счётчик называется j, а не i? |
|||
Singleton Singleton - Timer - Start / Click | + 16 | ||
В Java как-то странно реализован класс DateTime. То ли его случайно впихнули не туда, или я не знаю, почему время - это свойство класса System. Нет, с какой-то стороны это логично, но так почти что-угодно можно приписать системе. DateTime.Now на порядок логичнее как по мне. Ничего Уже как-то всё выше высказал |
|||
Singleton Singleton - Timer - Pattern Design | + 17 | ||
Всё понятно Ничего Я купил этот курс где-то 20 дней назад и только до него добрался. Мне действительно нужна хорошая книжка по таймменеджменту.. |
|||
Singleton Singleton - Config - Super child | + 16 | ||
Более красиво реализовывать синглтон Ничего Хм, а интересная идея. Жаль конечно, что нельзя от какого-то универсального класса использовать, но этот способ почти наравне с ним =) |
|||
Singleton Singleton - Config - Cant extend | + 16 | ||
Нужно разбираться в наследовании Задание урока Всё дело в этой строчке, когда мы создаём экземпляр класса, после наследования там уже должен быть другой класс, но нет.. |
|||
Singleton Singleton - Config - Using pattern | + 16 | ||
Реализовывать синглтон Вникнуть Воу. Как это всё красиво... |
|||
Singleton Singleton - Config - Static class | + 16 | ||
Пока не понял Ничего Подходим к синглтону |
|||
Singleton Singleton - Config - Static field | + 16 | ||
Ленивой инициализации. Хотя я её в принципе использовал, но теперь знаю, что это как-то называется =) Ничего Чувствую, после этого курса мне придётся переделать пару десятков классов |
|||
Singleton Singleton - Config - Git default | + 16 | ||
Смотреть изменения относительно коммита Ничего Так и не понял, как добавлять новые файлы в VS |
|||
Singleton Singleton - Config - FileReader | + 16 | ||
В Java нельзя создавать свойства (или как там эти штуки с { get; private set; } называются) Ничего В каждом классе создавать свой экземпляр конфига не то чтобы и плохо. Явно лучше, чем делать его статичным =) |
|||
Singleton Singleton - Config - Git commit | + 16 | ||
Отменять коммит Разобраться с интерфейсов в VS Да, c GIT нужно будет отдельно разбираться. Ну ладно, пока что есть, то есть |
|||
Singleton Singleton - Config - Class | + 16 | ||
Недостаток констант Ничего Как вроде всё просто и банально, когда уже знаешь принцип и как это не очевидно, когда тебе никто об этом не рассказывает.. |
|||
Singleton Singleton - Config - Git add | + 16 | ||
Коммитить изменения Ничего Хм, а в VS это всё удобно встроено оказывается. Кто бы знал =) |
|||
Singleton Singleton - Config - Static | + 16 | ||
Всё знал Всё понятно У меня сначала ругалось на static, а потом я понял, что в шарпе константы и так статичные =) Ну да, в плане констант не очень удобно получается, и на счёт отдельного класса тоже согласен |
|||
Singleton Singleton - Config - Git init | + 16 | ||
--- ---- К сожалению, так и не смог разобраться с git, но обязательно буду проходить эти уроки, после прохождения курса по git. Давно уже хотел и видимо пора. |
|||
Singleton Singleton - Config - Final | + 16 | ||
В принципе всё знал Ничего Решил писать на C#, так как он мне больше нравится, да и интересно посмотреть, чем итоговый код будет отличатся =) |
|||
Singleton Singleton - Intro | + 16 | ||
Узнал о существовании шаблонов проектирования Вникнуть Никогда их не использовал (по причине незнания) и этот в том числе. И судя по описанию - очень зря |
|||
Фотошарп VIP. Делегаты на кубиках | + 10 | ||
Узнал про делегаты Ничего Да, смотрел этот урок ещё давно, но до сих пор, чтобы написать нормальный делегат нужно немного погуглить. Нужно больше практиковаться с ними =) |
|||
Фотошарп ФИНАЛЬНЫЙ УРОК | + 10 | ||
Ещё лучше работать с изображениями Всё было понятно и интересно =) Хороший получился курс. На нём я узнал и как попиксельно обрабатывать изображения, как реализовывать его коррекцию и как работают алгоритмы уменьшения и увеличения (особенно понравилась Билинейная интерполяция). В общем, если кто сомневается, стоит ли его проходить, просто посмотрите на приложенные скриншоты, это всё сделано с помощью C#. ПС: На втором увеличенная в 13000 раз картинка, изначальный размер которой 4 пикселя |
|||
Фотошарп Билинейная интерполяция | + 10 | ||
Узнал про билинейную интерполяцию Реализовать и понять, что к чему (а то уже спать жутко хочу) Всё отлично, билинейная интерполяция действительно отличный алгоритм для увеличения изображений, хороший был курс. И я довольный, с новыми знаниями и чувством выполненного долга иду спасть =) ПС: Кто не в курсе, изначальный размер картинки на скриншоте - 2x2 пикселя |
|||
Фотошарп Метод ближайшего соседа | + 10 | ||
Реализовывать метод ближайшего соседа Ничего Уменьшает. Всё понятно, всё просто, не очень красиво, но это цена простоты =) |
|||
Фотошарп Изменение размера | + 10 | ||
Удалять код кусками и ничего не сломать =) Ничего За способ переименования проекта отдельно спасибо =) |
|||
Фотошарп Гамма-коррекция | + 10 | ||
Что такое гамма коррекция и как её делать Ничего Всё хорошо, вот подобрал картинку, где хорошо видно как раскрываются или прячутся мелкие детали |
|||
Фотошарп Градационная коррекция | + 10 | ||
Делать классные эффекты (ещё надо разобраться, что они делают) Уместить 4 скриншота в 1 Ну не хорошо так, Евгений Витольдович, на одном уроке оптимизируете программу, убрав многократное обращение к элементам формы, а в следующем опять его добавляете (к комбобоксу, который добавился в этом уроке). А так эффекты просто потрясающие (или мне попалась очень удачная фотография). Просто сравните оригинал с синусоидальной или экспоненциальной коррекцией. Это что-то =) |
|||
Фотошарп Ярость и контрастность | + 10 | ||
Ещё одну вещь, которая замедляет программу Найти почему изменение контрастности превращает моего енота то в призрака, то в демона Сильнее всего запомнилась оптимизация, я б и не подумал, что это тормозит программу. Спасибо за такой полезный совет. ПС: А метод для обновления текста лень было делать так как у вас (с дополнительными переменными), так что я просто оставил весь текст там (скрин 2) |
|||
Фотошарп 256 оттенков серого | + 10 | ||
Попиксельно обрабатывать изображение Ничего Фух, наконец-то я сдал сессию и могу заниматься любимым делом, а тут как раз скидка по случаю =) ------------------------------------------------------------------------------------------------------------------------------------ Теперь по делу. За 20 минут сделать программу для превращения картинку в чёрно-белую - это нечто (в хорошем смысле естественно), а то я уже отвык от качества ваших уроков. У меня разве что замечания по оформлению формы (почему бы не поместить кнопку с текстбоксом и с чекбоксом на отдельную панель, чтобы не выставлять каждому новому элементу из этой области якорь или можно вообще TableLayoutPanel и FlowLayoutPanel использовать и тогда они даже сами будут друг под другом становится), а так всё отлично =) |
|||
Своя игра Актив формулиста | + 20 | ||
Что теперь проще создавать свой видеокурс ничего Отличная идея! Я б мог сделать курс по ниписанию универсального бота (каждое новое задание настраивается пользователем, код самой программы остаётся неизменным). К примеру, на скриншоте, как видно у меня 6 заданий и программа одинаково хорошо справляется со всеми. Сейчас основная задача бота следить за страницами и сообщать, когда изменится/появится интересующая меня информация, но в принцип, его функционал можно расширить, как кому хочется. Но блин, сейчас очень мало свободного времени, не знаю хватит ли его, чтобы сделать целый видеокурс.. |
|||
Секундомер Секундомер - Настройка формы | |||
|
|||
Секундомер Секундомер - Написание кода | |||
|
|||
Компилятор Секреты Designer файла | + 20 | ||
ключевому слову partial Ничего Курс хороший, но я и так это всё знал (так как часто рылся в дизайнерах форм, и не спрашивайте зачем =)). Даже как-то странно: для знающего человека - особо ничего нового, а для совсем новичка - слишком сложно (тот же partial). Так что именно начинать с этого курса я бы не рекомендовал. Скорее, когда уже освоишься в основах, тогда уже можно и посмотреть что VS всё это время от тебя скрывала =) |
|||
Компилятор Откуда берутся окна | + 20 | ||
Указывать несколько параметров в консоли, у компилятора есть аргумент, который определяет, что компилировать (форму или консоль) Ничего Всё понятно =) |
|||
Компилятор Где живёт компилятор | + 20 | ||
Менять директорию в консоли Работать с консолью Windows Всё бы было хорошо, если интересно, если бы я раньше хоть чуть-чуть знал как работать с консолью. А то вы всё, что касается курса объясняете, а сами что-то в консоли пишете, и потом понимаешь, что не понимаешь, как у вас получилась то, что получилось. И приходится отматывать и искать все эти необъясненные моменты.. |
|||
Базовый ASP.ект VIP. Установка домена | + 20 | ||
1) Ставить домен 1) Доползти до компьютера =) Спасибо за курс! Был рад его пройти и обучиться созданию базового ASP.NET проекта! (http://hearthforumstories2.tk/) |
|||
Сокобан VIP. Бот для игры БАЛДА | + 1 | ||
1) Перебирать все варианты на заданном поле 2) Оптимизировать сей процесс Ничего, спасибо, все понятно =) Вывод сделал через TreeView, чтобы можно было легко разделять слова разной длины; добавил поле для ввода стартового слова, чтобы самому его не вбивать; при выборе слова на поле показывается, куда ставить букву (если выбрать что-то другое - буква и выделение пропадают), если же на вариант нажать 2 раза, то он автоматически внесется в список использованных слов (и более отображаться не будет, если его возможно будет составить), а поле с вариантами - обновится; Как-то так =) |
|||
Базовый ASP.ект VIP. Модерация записей | + 20 | ||
1) Создавать сессии. Ура =) Ничего Все замечательно, спасибо за урок) Внес некоторые коррективы: в разделе "Модерация" отображаются все истории, ждущие своего вердикта, отклоненные истории меняют свой id на минимальный в базе-1, а значение auto_increment в таблице снижается до его старого id, тем самым мы избегаем "бреши" в id опубликованных записей! Хотел еще сделать, чтобы отсылать истории могли только зарегистрированные пользователи (а email сразу брался из их данных о регистрации), но сил уже не хватает =) Через часик доделаю сие действо =) |
|||
Базовый ASP.ект VIP. Авторизация на сайте | + 21 | ||
1) Создавать форму авторизации/регистрации (приступаю теперь к следующему уроку, чтобы познать суть сессий) =) Ничего Все замечательно, спасибо! Заодно сделал форму для регистрации, чтобы можно было вносить новых пользователей =) |
|||
Базовый ASP.ект ФИНАЛЬНЫЙ УРОК. Презентация | + 20 | ||
В этом курсе я научился: 1) Создавать базовые ASP.NET проекты 2) Отрабатывать ошибки в них возникающие 3) Подключать к ним базы данных 4) Ставить все это дело на хостинг Благодаря нашим учителям сложностей почти не возникало =) Спасибо за этот замечательный курс и затраченные Вами, Евгений Витольдович и Валерий Владимирович, на него силы! Все получилось красиво и понятно! |
|||
Базовый ASP.ект Отказ от статика | + 20 | ||
Собственно, ничему) Урок-то дебаггингу посвящен) Ничего Выполнил задание за 15 минут до начала урока (так что могу зваться учеником-экстрасенсом), исправляя ошибку, возникшую на прошлом уроке =) |
|||
Базовый ASP.ект Размещение проекта в Интернете | + 20 | ||
1) Ставить ASP.NET проекты на хостинг Ничего) Мой комментарий виден на скрине в 10 истории =) Та ошибка, что у Вас выскочила, была связана, что мы пытались постоянно держать подключение к базе данных открытым. Правильнее было переработать класс, чтобы подключение обновлялось при каждом новом запросе. И все прекрасно себе работает) |
|||
Базовый ASP.ект Оформление сайта | + 20 | ||
1) Обучился тому, как менять внешний вид сайта 2) Поразбирался с bootstrap Самое сложное в оформлении - сделать что-то нормально =) Все замечательно, спасибо за урок! |
|||
Базовый ASP.ект Валидация данных | + 20 | ||
1) Валидации (отчасти) 1) Заставить работать проверку регулярным выражением. Так и не понял, в чем была проблема, но вот это: [Required(ErrorMessage = "Укажите свой email")] [RegularExpression(@"^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2-6}", ErrorMessage = "Укажите допустимый email")] public string email { get; set; } Просто отказывается нормально работать и не пропускает вообще ничего Все замечательно, спасибо. |
|||
Базовый ASP.ект Добавление истории | + 20 | ||
1) Научился разделять Post и Get запросы 2) Научился таки методу Redirect() (благодаря которому наконец реализовал получение случайной истории как хотел) Ничего. Благодаря хорошим объяснениям все как всегда понятно, спасибо большое за урок =) Евгений Витольдович, я вот еще с урока, где вы указали получение ename'a через substring() думал, зачем было делать именно так. И когда Вы сейчас исправляли ошибку, возникающую в том случае, если email не содержит @, 4 строчками, решил, что все таки можно и попроще. У нас ведь цель вернуть имя до собачки, а это можно сделать при помощи email.Split('@')[0]. Вот и все. И никаких ошибок =) Мы пока к валидации не обращались, так что нам не надо отлавливать там ошибок (а когда обратимся - можно обрабатывать наличие собачки email.Contains("@")) Так, я думаю, покороче будет) |
|||
Базовый ASP.ект Работа со списком историй | + 20 | ||
1) Создавать гиперссылки Ничего Спасибо за урок, все замечательно =) Но хотел бы испросить совета: хотел сделать так, чтобы по нажатию на "Случайная" выдавалась случайная история (как и раньше), но чтобы в url значился ее адрес. И вот тут возникает вопрос: можно ли по нажатию на объект, созданный при помощи HtmlActionLink не только сделать редирект, но и выполнить действие из какого-либо класса перед этим (тогда можно будет создать ссылку прямо перед перенаправлением). Или же возможно ли изменить текущий url страницы на нужный? |
|||
Базовый ASP.ект Рефакторинг модели Story | + 20 | ||
1) Убеждаться, что все работает =) Абсолютно ничего Единственное замечание - Вы немного увлеклись в заменении ноликов на nr) В строчке с ename'ом сие было малость излишне =) |
|||
Базовый ASP.ект Что такое SQL-инъекция | + 20 | ||
1) Делать бэкапы баз данных 2) Делать SQL-инъекции 3) Защищаться от них) 4) Восстанавливать базы данных Ничего) Спасибо за урок Очень интересно все это работает. Спасибо за подробное разъяснение и предупреждения об опасностях) |
|||
Базовый ASP.ект Запуск модели Story | + 20 | ||
1) Работать с параметром id в составе url 2) Отрабатывать еще больше ошибок =) 1) Работать с залипающей от пролитого чая с сахаром клавиатурой =) А так - ничего) Спасибо за урок) Все здорово! Спасибо! |
|||
Базовый ASP.ект Работа над ошибками | + 20 | ||
1) Отрабатывать ошибки Ничего Все прекрасно) Кстати, заодно я реализовал вариант рандома, который предлагал в прошлый раз. Надо сказать, что использовать его имеет смысл в том случае, если у нас достаточно большая база, ибо генератор псевдо-случайных чисел уж не слишком-то и случаен, особенно хорошо сие наблюдается на диапазоне чисел 1-2, в этом случае более рандомной показывает себя именно функция RAND() в SQL. |
|||
Базовый ASP.ект Подключение к базе данных | + 20 | ||
1) Подключаться к базам данных 2) Считывать оттуда нужную информацию 3) Вносить параметры подключения в конфиг Ничего, все пока весьма понятно =) Все замечательно, спасибо за отличный урок! |
|||
Базовый ASP.ект Создание SQL-запросов | + 20 | ||
1) Познал суть SQL запросов Ничего Большое спасибо за доступный и понятный урок) В принципе, куда логичнее не использовать встроенный запрос RAND(), а программно сгенерировать псевдо-случайное число, верхним порогом которого будет последнее id, которое можно вытащить "select id from story order by id desc limit =1;", после чего использовать уже "select * from story where id='"+сгенерированное_нами_число+"';" Ибо какое-то уж очень громоздкое решение нашли sql-вцы для реализации рандома) |
|||
Базовый ASP.ект Схема базы данных | + 20 | ||
1) Создавать базы данных 2) Создавать в них таблицы Ничего Опять-таки, через саму консоль не вышло, ибо она отказывается принимать команду "mysql", но в HeidiSQL есть как возможность простого создания таблиц простым добавлением элементов, так и есть консоль для запросов. Оба варианта работают как надо. И да, в родном манипуляторе базами от MySQL отсутствует возможность удаления созданных баз (или я просто слепой)) |
|||
Базовый ASP.ект Установка сервера MySQL | + 20 | ||
1) Устанавливать MySQL сервер 2) Получать к нему доступ Ничего Собственно, по неизведанным для меня причинам я не смог получить доступ к базе данных через консоль. Либо, товарищи там поменяли для этого внутреннюю команду, либо же отказались от данного функционала, ибо в родном приложении таковой функционал появился, без всяких там HeidiSQL (скрин прилагаю) |
|||
Базовый ASP.ект Формирование меню | + 20 | ||
1) Изменять пункты меню в шапке проекта (господи, магия какая-то =) ) 2) Полазил по проекту и примерно понял, как сия магия работает) 3) Заодно увидел, где меняется копирайт страниц и приписка к основной ссылке) Ничего, все понятно Все замечательно) |
|||
Базовый ASP.ект Создание модели Story | + 20 | ||
1) Cоздавать модели для контроллеров 2) Создавать конструктор с инициализацией полей Сделать пошаговое выполнение проекта (я серьезно, у меня не работает линейка клавиш F =) ) А так - ничего, все доступно и понятно. Все замечательно! Спасибо за урок! |
|||
Базовый ASP.ект Создание пустых страниц | + 20 | ||
1) Создавать MVC проекты 2) Создавать новые контроллеры 3) Создавать для них представления 4) Задавать главный контроллер 5) Перенаправлять представления из одного методы в другой Пока что все доступно С хорошим учителем и замечаний быть не может =) |
|||
Базовый ASP.ект Выбор темы для проекта | + 20 | ||
1) Продумывать тему сайта 2) Продумывать его схему Ничего Все замечательно |
|||
Базовый ASP.ект Создание схемы проекта | + 20 | ||
1) Продумывать концепцию сайта P.S. - история прикреплена в виде фотографии Собственно, ничего. Замечаний нема. Все хорошо, как всегда. |
|||
Базовый ASP.ект Мы начинаем ASP.NET с MVC | + 20 | ||
1) Создавать ASP.NET проекты =) 2) Примерно понял структуру проекта Ничего Все замечательно |
|||
Мат Конём и Слоном Две структуры | + 20 | ||
ничего Не совсем понял что делает index. Почему он возвращает х + (y * 8) |
|||
Сокобан ФИНАЛЬНЫЙ урок. Видео-обзор проекта Сокобан | + 20 | ||
Закрепил классы и из наследование, деллигаты, enum и передочу данных по TCP/IP протоколу Вносить свои улучшения, но это было интересно =) Курс отличный! Если вы давно зотели написать большой проект, но боялись начать, то этот курс как раз для вас =) Но я уже немного подустал, так что обзор получился далеко не лучший.. Следующий курс. По всей видимости "Мат Конём и Слоном" надо добивать, а потом наконец-то смогу отдохнуть =) |
|||
Сокобан Сокобан - Завершение | + 20 | ||
Ничему Ничего Ура, последний урок!! Игры со спрайтами + Скобан меньше чем за месяц - неплохой получился марафон =) |
|||
Сокобан Сокобан - Игра - На двоих по сети | + 20 | ||
Играть в одну игру на 2-х компьютерах Ничего Сделал метод SendStep, который сам отправляет и выполняет нужное действие для заданного игрока (чтобы постоянно не писать отправку и проверку, что отправилось) |
|||
Сокобан Сокобан - Телефон - TCP/IP протокол | + 20 | ||
Передавать и получать данные между двумя компьютерами Ничего Для разнообразия получение сделал через событие, а не делегат (хотя он там тоже используется, но всё же). Вопрос: А сделать, чтобы клиентов могло быть больше одного? |
|||
Сокобан Сокобан - Игра - На двоих | + 20 | ||
Проходить свой уровень =) Ничего Я и не думал, что мой уровень окажется сколько-нибудь сложным, а нет, я его раз 5 перезапускал =) |
|||
Сокобан Сокобан - Редактор - На двоих | + 20 | ||
Создавать уровни на двоих Ничего Я оставил всё в том же редакторе, посмотрим, чем это обернется =) |
|||
Сокобан Сокобан - Игра - Автоходы | + 21 | ||
Внедрил автоходы Ничего Как вы, наверное, догадались, я кое-что улучшил =) Ящик вибирается по одному клику и выдиляется синим (видно на скриншоте). Синий ящик - значение Cell. Функция Cell_MouseClick на втором скриншоте =) |
|||
Сокобан Сокобан - Решалка - Оптимизация | + 20 | ||
Прямой доступ намноооого быстрее, чем поиск Ничего 20 секунд против 13 милисекунд!! Вау, это какая-то невозможная оптимизация =) |
|||
Сокобан Сокобан - Решалка - Яблоко | + 20 | ||
Находить кратчайший путь, чтобы передвинуть ящик из пункта А, в пункт Б Ничего • Сколько уроков подряд наблюдаю за структурой Place и так и не понял, почему не использовать Point, который даже лучше?? • Зачем отдельная структура для направлений? У нас же уже есть прошлая версия Brain, которая идеально подходит? Просто переименовать её в ChainUser, например, сделать глобальной и всё =) |
|||
Сокобан Сокобан - Решалка - Мышка | + 20 | ||
Двигать ящик из точки А в точку Б Ничего Жду 4-мерного массива =) |
|||
Сокобан Сокобан - Решалка - Тестер | + 20 | ||
Проверять решение лабиринта Ничего Не нужно было выносить координаты "яблока" в отдельные переменные, всё намного проще =) Можно было просто проверить, после последнего хода находится ли оно на месте финиша (см. скриншот 2) |
|||
Сокобан Сокобан - Игра - Управление | + 20 | ||
KeyPreview - это же то, чего мне не хватало все эти годы!!! Вы бы знали, как я до этого выкручивался =) Ничего • Ух, почему я раньше не знал об этом свойстве?? Огромное спасибо!!! Кхм-кхм. Всё, я успокоился =) • Сделал, чтобы map отображалась как BackgroundImage, а top как просто Image (на скриншоте видно) • Воу, я сделал как предлагал Orange (last_level = level_num + 1;) ещё с самого начала (до того, как он это предложил) |
|||
Сокобан Сокобан - Игра - Интерфейс | + 20 | ||
Ничему Ничего А чем Point не подходил? Зачем Place? |
|||
Сокобан Сокобан - Создаём свои уровни | + 20 | ||
Создавать уровни Создать уровни =) Уровни: • Осторожно, стены! • Тише едешь - дальше будешь |
|||
Сокобан Сокобан - Редактор - Улучшение | + 20 | ||
Ничему Ничего У меня уже всё было даже удобнее реализовано. То чувство, когда не зря старался =) ПС: Прикрепил то же видео, на всякий случай |
|||
Сокобан Сокобан - Редактор - Сохранение | + 20 | ||
Сохранять уровни Ничего Я к прошлому уроку сделал несколько значительных улучшений по добавлению/удалению строк и столбцов и размещению элементов, но к моменту отправки отчёта ещё не было готово интерактивное удаление. Сейчас всё доделал, всё на видео =) Кстати, обратите внимание, что с MouseMove не всё так просто (я где-то полчаса провозился) =) |
|||
Судоку VIP. Модульное тестирование | + 21 | ||
Создавать автоматические тесты Ничего А если один и тот же урок есть в разных курсах, его нужно несколько раз проходить? |
|||
Сокобан Сокобан - Редактор - Редактирование | + 20 | ||
Ничему Обработать на одном контроле MouseEnter во время, когда она нажата (MouseDown) на другом • enum можно спокойно преобразовать в int, так что кнопкам можно было кнопкам присвоить int-овый Tag и сделать один обработчик на всех • Сделал добавление строк/столбцов по лику на крайние ячейки |
|||
Сокобан Сокобан - Редактор - Интерфейс | + 20 | ||
Ничему VS отказывалась отображать мои картинки (добавляла в ресурсы, но не отображала) Я сделал пару небольших улучшений. Всё на видео =) |
|||
Сокобан Сокобан - Редактор - Загрузка | + 20 | ||
Создавать уровни Ничего Всё хорошо |
|||
Сокобан Сокобан - Подготовка - Картинки и лабиринт | + 20 | ||
Искать картинки Найти картинки Ещё не определился с местом, куда ставить ящики и поставленным ящиком |
|||
Игры со Спрайтами VIP урок. Телефон по TCP/IP протоколу | + 20 | ||
Передавать и получать данные между двумя компьютерами ничего Для разнообразия получение сделал через событие, а не делегат (хотя он там тоже используется, но всё же). Вопрос: А почему именно 2 компьютера, по идее клиентов же может быть сколько душа пожелает (но не в нашем случае) |
|||
Судоку ФИНАЛЬНЫЙ УРОК | + 20 | ||
Алгоритму решения судоку Сложного ничего не было, но было интересно =) Интересный получился курс. На нём вы повторите рекурсию, работу с файлами и делекаты, и что самое главное, напишете программу, которая сможет решить абсолютно любое судоку (так что теперь вы сможете скоротать зимние вечера перед камином за чем-нибудь другим). Особо ничего нового на нём вы не узнаете, но это не помешает вам с интересом его проходить. А ещё это отличная практика =) Что касается следующего курса: Это будет Сокобан, который закончит моё комбо из 6 курсов подряд. Если, конечно, не будет ещё какого-то супер предложения =) (Устал уже немного, но очень хочу его пройти) |
|||
Судоку Генерация головоломок | + 1 | ||
Генерировать случайное судоку Ничего (у меня сразу всё заработало) Следующий на очереди - Сокобан, который закончит моё комбо из 5 курсов подряд. Если, конечно, ещё какого-то супер предложения не будет =) (Устал уже немного, но очень хочу его пройти) |
|||
Судоку Сохранение ответа | + 20 | ||
Ничему Ничего Что-то мне всё больше начинает казаться, что делегаты - не лучшее решение подобных проблем. Лучше было бы подписка на событие. То есть чтобы мы в Prigram.Start написать что-то вроде: ss = new SudokuSolver(); ss.PlaceDigit += PlateDigit; //где ss.PlaceDigit - событие У меня даже где-то был пример, как это сделать |
|||
Судоку Рекурсивная функция поиска | + 20 | ||
Находить решение судоку Ничего • Хорошо, но можно же разделить PlaceDigit на два метода (1 - проверяет правила, 2 - записывает число), и тогда вместо ClearDigit вызывать второй • А почему в списку уроков у этого длительность - 00:00:00 |
|||
Судоку Идея алгоритма - 81 цикл | + 1 | ||
Рекурсивному методу решения судоку Ничего Можно было назвать урок "81 вложенный цикл" |
|||
Судоку Загрузка головоломки с интернета | + 20 | ||
Заполнять судоку из файла Ничего Ух, 4 вложенных цикла, неплохая ёлочка получилась =) |
|||
Судоку Проверка правил игры | + 20 | ||
Проверять, можно ли вставить число Ничего Ещё и по квадратам нужно было проверять?? Я всю жизнь играл неправильно =) |
|||
Судоку Печать цифр в таблице | + 20 | ||
Ничему Ничего А делегат вообще что-то ещё может кроме хранения ссылки на функцию с определёнными аргументами? Никаких дополнительных функций, никаких модификаций (например, необязательные аргументы). Вроде в курсе про функциональному программированию немного затрагивали эту тему и там, если я правильно помню, делегаты были немного больше того, что показано, например, в том же уроке из Новых технологий или здесь (хотя, может, я и ошибаюсь). |
|||
Судоку Сетка для цифр | + 21 | ||
Рисовать сетку для судоку Ничего • Стоп, а почему именно такое условие для цикла? По сути у нас получается: (x + 1) * x, что можно преобразовать в: x^2 + x, а учитывая, что x^2 = max, так что получается: max + sqr Как по мне эта формула смотрится лучше =) • И можно же сделать, чтобы значение sqr само считалось в зависимости от max |
|||
Судоку Вступление | + 20 | ||
Ничему Решить судоку Честно говоря, никогда не любил судоку.. Такая себе задача, в которой нужно больше гадать чем думать. Я, конечно, не знаю спецальных техник по его решению, но пока так |
|||
Сокобан Сокобан - Вступление | + 20 | ||
Играть в Сокобан Пройти уровни Прошел 5, было сложно.. Но что бы там ни было, правила я точно понял =) |
|||
Игры со Спрайтами ФИНАЛЬНЫЙ урок | + 21 | ||
Наследованию классов Сделать чтобы программа помогала выиграть Классный получился курс! Особенно сейчас доволен, так как таки доделал все исправления, которые хотел =) |
|||
Мат Конём и Слоном Псевдо-алгоритм перебора | + 22 | ||
Ходить назад Ничего Интересно, сколько он работать будет |
|||
Игры со Спрайтами Домино. Финальный аккорд | + 20 | ||
Ничему Найти свои ошибки Ураа, я сделал это!! Теперь нужно денёк всё доработать и готово. На очереди Сокобан =) |
|||
Игры со Спрайтами Домино. Наведение порядка | + 20 | ||
Воплощать в жизнь кучу классов Ничего Как вы удаляете всю строчку целиком? Для того чтобы сделать выбор плашки нужна функция, которая находит плашку по координатам экрана. Её я сейчас писать не хочу.. |
|||
Игры со Спрайтами Домино. Rolling Stones | + 20 | ||
Выкладывать пирамиду из домино Ничего Немного улучшил вашу анимацию. Кстати, я ещё до видео хотел сделать именно такую =) |
|||
Игры со Спрайтами Домино. Пирамида из анимашек | + 20 | ||
Подготавливать заглушки для переопределения Ничего internal - доступ внутри одного пространства имён |
|||
Игры со Спрайтами Домино. Три наследника Аниматора | + 20 | ||
Ничего • Зачем было создавать ещё один метод Move (без steps), если им просто можно было задать значение по умолчанию: public void Move(... , int MaxStep = 100) • Хм, я не переопределял GetZoom, а просто перенёс zoomx и zoomy в базовый класс • Так, а теперь самое важное! Не нужен нам ещё один класс (open/hide) или те дополнительные методы, которые вы написали. Можно просто сделать один класс, который меняет видимость (посмотрите скриншот и видео). |
|||
Игры со Спрайтами Домино. Базовый класс Анимаций | + 20 | ||
Чувствую, на практике узнаю применение virtual Ничего Я таки оставил оригинальный зум доминошки в классе доминошки (так как он является её частью), а добавочный (или как его назвать) в классе анимации |
|||
Игры со Спрайтами Домино. Подъём переворотом | + 20 | ||
Переворачивать плашку за нужное кол-во шагов Ничего ...Почему вы произносите zoom как "цум"? (очень слух режет..) |
|||
Игры со Спрайтами Домино. Анимация спрайта | + 20 | ||
Двигать доминошки Ничего Чем вам всё-таки так не угодил Point?? |
|||
Мат Конём и Слоном Королевское правило | + 20 | ||
Проверять, находится ли фигура под боем коня или слона Понять, почему isCheckmate не работает Ладно, функции я вроде написал |
|||
Игры со Спрайтами Домино. Двойной спрайт | + 20 | ||
рисовать спрайт по шаблону из несольких частей Ничего Ну не знаю, я поместил зум в класс с домино и получается, что он уже вместе с экземпляром передаётся |
|||
Игры со Спрайтами Домино. Отображение плашки | + 20 | ||
Десереализировать строку У вас-то не было .xml а у меня было, так что файлы воспринимаются как строка и ваш способ десереализации на подходит, пришлось гуглить =) Доминошки прикольные |
|||
Мат Конём и Слоном Ворошиловский слон | + 21 | ||
Написать свою функцию для слона (не нравится мне ваш цикл) • Не знаю, что такое каталог, но если нужно быстро и чтобы было под рукой, то SQLite - лучший выбор, как мне кажется. Как ни как СУБД, и там всё заточено под быструю обработку информации, и занимает всего один файл. • Написал функцию для слона без цикла, но она выдаёт 182. Хм, я всё пересмотрел, вроде правильно. Не знаете, где может быть ошибка? А то, мне моя функция на порядок больше нравится =) |
|||
Мат Конём и Слоном Нотация Форсайта - Эдвардса | + 21 | ||
Со слоном не всё так просто Ничего Только я не учитываю, что между слоном и королём могу стоять другие фигуры, а так всё хорошо =) ПС: Функции выкладывал в предыдущем уроке |
|||
Мат Конём и Слоном Конь ходит буквой Гэ | + 20 | ||
Исправил ошибку Ничего Исправил ошибки. Со слоном получается 1306 вариантов |
|||
Мат Конём и Слоном Перебор всех комбинаций | + 22 | ||
Ничему Ничего • Почему byte и чем плох Point? (потому что памяти меньше занимает?) • Переменную (счётчик) цикла МОЖНО менять. В VBA это разве что делать нельзя • Ого, намного меньше получается |
|||
Мат Конём и Слоном Постановка задачи | + 20 | ||
Поставил мат конём и слоном -||- Вот такой-вот мат получился =) |
|||
Секундомер VIP. Секрет мастерства | + 20 | ||
Ничего Я уже всё забыл за выходные, через не хочу всё же написал =) |
|||
Секундомер VIP. Биоритмы | + 20 | ||
Оказывается есть ещё и биоритмы, которые у всех одинаково начинаются со дня рождения. Чего только люди не придумают, чтобы свалить свои неудачи на кого-то / что-то... Ничего Похоже, меня ждёт пара лет спокойной жизни =) Самое оно для первого курса института |
|||
Игры со Спрайтами Спрайт. Рисуем плашки | + 20 | ||
Я художник от бога =) Нарисовать Интересно, как это будет смотреться |
|||
Игры со Спрайтами Домино. Ура! Победа! | + 20 | ||
Не спать всю ночь =) Ничего Ура, дописали. У меня уже рассвет =) Кстати, нашел ошибку. Если у нас будет ОДНА шестёрка, то IsLuser будет возвращать false |
|||
Игры со Спрайтами Домино. Выбираем и убираем | + 20 | ||
Ничего Хм, по поводу "нигде не используем пирамиду" я погорячился =) • А зачем мы в функции OpenFreePlates перебираем вообще всё? Не лучше ли было бы перебирать плашки только вокруг удалённой? • Tag это ж object, зачем туда строку записывать? Можно же сразу Point, например, там как раз два свойства X и Y • Хм, как-то слишком много переменных для двух плашек (для проверки можно ли их удалить). Я через List сделал, и в моём случае сумма считается на всех выделенных плашках (а не только на двух). На скриншоте видно, как я три сразу удалил =) |
|||
Игры со Спрайтами Домино. Делегаты отображения | + 20 | ||
Повторил делегаты Ничего Я тут ещё раз столкнулся с нерациональным использованием двумерного массива (на этот раз Label-ов) и подумал, а зачем нам вообще двумерный массив? Ведь в самой логике игры эта "двумерность" вообще нигде не используется (например: нам всё равно в каком ряду находится доминошка на которую кликнули, главное, чтобы она была открыта). Так вот. Не проще ли везде использовать одномерные массивы и просто немного усложнить функцию для размещения плашек на экране (ведь это, по сути, единственное место в коде, где мы используем форму пирамиды)? |
|||
Комбинаторика Рекурсия. Заливка области | + 20 | ||
Наблюдать рекурсию в действии Ничего Действительно, смотрится, как какой-то жутко сложный и непонятный алгоритм =) |
|||
Игры со Спрайтами Домино. Динамическая пирамида | + 20 | ||
В C# оочень не хватает явных ссылочных типов данных Изменить значение элемента массива не обращаясь к массиву напрямую • Мне из прошлого урока жутко не понравилась сортировка и двумерный массив, в которых мы всё пихали, так что я реализовал функцию GetPlateByNum, которая получает элемент массива с указанным номером (0-27 в нашем случае), кстати, интересная получилась задачка для 3-х часов ночи =) И нормально-таки перемешал доминошки (на скриншоте самая верхняя функция). И заменил массив на ступенчатый. Честно, не понимаю, чем его неудобно использовать (вы так говорили)? Почему вы так не делали? За одно и практика с таким типом массивов была бы и задачку по нахождению элемента массива в виде пирамидки по его порядковому номеру (для нормального перемешивания), да и алгоритм перемешивания массива пригодился бы (ну, может алгоритм - это сильно сказано, но менять рандомные доминошки местами 100 - точно не он) • Кстати, пока это всё дело реализовывал, столкнулся с проблемой, что в C# не видно, хранится ли в переменной сам объект или ссылка на него, и это очень затрудняет написание кода.. Например: в переменных string, ArrayList, да и вообще любого класса храниться ссылка, а в bool. int и остальных struct - сам объект. Нужно какую-то статью на эту тему почитать... • Зачем создавать две переменные plateWhdth и plateHeight, если есть такой тип данных, как Size, как раз для таких случаев и предназначенный?? • И зачем всё-таки вы в прошлом уроке делали protected методы, а не privat? |
|||
Игры со Спрайтами Домино. Перемешиваем плашки | + 20 | ||
Ничего Зачем protected. мы что наследовать этот класс будем? Чем private плох |
|||
Игры со Спрайтами Домино. Правила игры | + 20 | ||
Новой странной игре Ничего • А что было не так с прошлой программой? (вы сказали в 3:35) • Немного не понял логику заполнения доминошек. Почему она именно такая? И почему эта игра сделана так, что в 80% случаев в неё невозможно выиграть, что бы вы не делали? |
|||
Комбинаторика Рекурсия. Главный секрет | + 20 | ||
Кривая Гильберта Понять, как её рисовать Я раза три перечитывал ту страницу, но так и не понял, как её рисовать. Да, она состоит и П-образных элементов, но как мы выбираем, в какую сторону будет направлен очередной элемент? И тот же вопрос к фигурам более высокого порядка.. |
|||
Секундомер ФИНАЛЬНЫЙ УРОК | + 3 | ||
Ничего 7 минут 25 секунд Кто повторит =) |
|||
Секундомер 5 часть. Видеофиксация | + 20 | ||
Ничего Ура, я дошел!!! |
|||
Секундомер 5 часть. Пункты 240 – 273 | + 20 | ||
Ничего Ctrl + K + M у меня чего-то не работает |
|||
Секундомер 4 часть. Видеофиксация | + 20 | ||
Ничего Фух Я себе шпаргалку сделал, но на неё не смотрел, если что. Это на всякий случай =) |
|||
Секундомер 4 часть. Пункты 200 – 239 | + 20 | ||
Не люблю много писать Писать.. Можете ругать, но я слил StartTimer и StopTimer, уж слишком много у них общего =) |
|||
Комбинаторика Рекурсия. Вступление | + 20 | ||
Ничему Ничего Вот гугл понимает, что такое рекурсия =) Рекурсия - это когда в ходе выполнения какого-то действия требуется выполнить это же действие |
|||
Секундомер 3 часть. Видеофиксация | + 20 | ||
Устал.. Хватит на сегодня секундомера. Спокойной ночи =) |
|||
Секундомер 3 часть. Пункты 150 – 172 | + 20 | ||
Ничего 46 секунд. Как ему это удалось?? Вау |
|||
Секундомер 2 часть. Видеофиксация | + 22 | ||
Ничего Так мы без открытия проекта? Ну ладно. Кстати, посмотрите, как я делаю всё одной высоты =) ПС: Я немного таймер поменял |
|||
Секундомер 2 часть. Пункты 120 – 145 | + 20 | ||
Ничего |
|||
Секундомер 1 часть. Видеофиксация | + 20 | ||
Ничего • Стресс? Ну не знаю, я всегда в голове разбиваю проекты на маленькие части (сейчас я элементы размещу, сейчас реализую клик на эту кнопочку -> так, она должна писать что-то в базу данных -> сейчас создаю базу данных...) и всё отлично получается даже в достаточно немаленьких проектах. • Я "FastStone Capture" использую, удобная вещь. Взломанную, кстати. У меня даже windows лицензионный только потому, что мне его Microsoft бесплатно дали (за участие в программе предварительного тестирования) =) https://www.youtube.com/watch?v=ivuP-dTyzh8 |
|||
Секундомер 1 часть. Пункты 100 – 113 | + 20 | ||
Сочетания клавиш узнал =) ничего Я решил сначала полностью форму настроить, а потом менять картинку exe-шника, и форму настраивать сверху вниз по свойствам. ПС: Там одна попытка - фальстарт, поэтому там текст размытый |
|||
Секундомер Написание кода | + 20 | ||
Нажимать Alt, чтобы убирать привязку контролов Ничего А зачем использовать Duration, если при вычитании DateTime в результате и так TimeSpan |
|||
Секундомер Настройка формы | + 20 | ||
Ничему Ничего • Так как мы вручную настраиваем поведение каждого столбца, менять значение AutoSizeColumnsMode не нужно. Это ничего не даст (я проверил) • На счёт времени. В одном уроке мы за 20 минут реализуем алгоритм для нахождения кратчайшего пути, а в другом только создаём форму с 5-ю элементами. Прикольно получается. |
|||
Секундомер Моральная подготовка | + 20 | ||
Не знаю Ничего Зачем программирование? Ну, компьютеры повсюду, и я, например, чуть ли не постоянно в контакте с каким-то из них, так как это неплохо упрощает жизнь. И уметь командовать ими (в плане, что тебе хочется, чтобы умел так, и ты может сделать, чтобы он умел) это несомненный плюс! Что мешает? Для эффективного обучения нужны деньги, для этого нужна работа, работа занимает время. Вот, я нашел работу и времени на курсы (а тем более на собственные программы) осталось не очень много.. Всего написал программ 100-200 из них где-то 10-20 больше 1000 строк. Последняя программа, которую я сейчас пишу - универсальный бот. Там реализован класс, который принимает минимальные настройки по взаимодействию с интернет страницей и выполняет их (например, можно узнать последние новости с какого-то сайта или последнюю запись по определённой теме, в общем, ограничено только вашей фантазией). У меня просто в браузере было открыто пара страниц просто потому, что я их периодически обновлял и проверял нужную мне информацию, вот и решил такую программу написать. Хм, она даже может автоматически отчёты на этом сайте проверять (ставить всем хорошо) =) |
|||
Игры со Спрайтами Полуфинальный урок | + 21 | ||
У нового микрофона качество на порядок выше =) Ничего Фух, вот и первая часть первого курса позади. Давно хотел его пройти. Даже где-то, на просторах интернета, исходники находил, и вот, наконец-то, я сам всё это прохожу. Ура =) |
|||
Игры со Спрайтами Аполлон. Финальное прилунение | + 20 | ||
Двигать спрайты Ничего Оно работаеееет!!!! Классс. Мне очень понравился результат =) Большое спасибо за такую классную игрушку |
|||
Игры со Спрайтами Аполлон. Graph и Sprite на Луне | + 20 | ||
Можно использовать классы из другого проекта не импортируя их в другой в пределах одного решения Ничего А как работают псевдонимы в using? Неудобно же каждый раз Sprite.something писать |
|||
Игры со Спрайтами Спрайт. Рисуем Аполлона | + 20 | ||
Ничему Ничего Хм, хоть ускорение свободного падения и не зависит от массы корабля, но ускорение двигателя зависит (по закону сохранения импульса: mv = const) |
|||
Игры со Спрайтами Аполлон. Плавное прилунение | + 20 | ||
реализовывать физику в программе Ничего Если что, в данном случае, ускорение не зависит от массы (в реальном мире) |
|||
Игры со Спрайтами Аполлон. Законы физики | + 20 | ||
Все ошибаются Ничего • Эм, скорость при включённом двигателе равна не: v0 + a*t, а v0 + (a+g)*t (с учётом того, что g отрицательное) Так как Луна никуда не девается и продолжает притягивать корабли, включён у нас двигатель или нет • Вот отличия readonly от const: http://piccy.info/view3/9971994/e77c3232d361352719dba6f1db2e03c6/ Если кратко: readonly может быть вычесляемым значением (2+5) и может задаваться в конструкторе (но только там), а const задаётся исключительно при инициализации и значение не может быть вычесляемым. • Кстати, а как же те изменения формы для рисования спрайтов, о которых вы говорили на прошлом уроке? (да-да я могу их и сам сделать. но по сути, я уже всё здесь могу сам сделать) |
|||
Игры со Спрайтами Аполлон. Главные герои | + 20 | ||
Что не знаю, как выглядит поверхность луны Нарисовать вертикальную посадку истрибителя Надеюсь, больше ничего не нужно будет рисовать? =) |
|||
Игры со Спрайтами Спрайт. Сериализация объекта | + 20 | ||
Ничему Ничего Mission 1: Complete |
|||
Игры со Спрайтами Спрайт. Панель инструментов | + 20 | ||
Удалять последнюю линию Ничего Я не знаю, что у меня получилось =) |
|||
Игры со Спрайтами Спрайт. Рисуем линии мышкой | + 20 | ||
Стирать линии Ничего Хм, а почему для этих целей не использовать Paint? Он же сам вызывается, когда требуется перерисовка. Чем вам не нравиться Point, зачем постоянно создавать две переменные для хранения одной координаты? (да в Point тоже две, но они-то создаются за вас) |
|||
Игры со Спрайтами Спрайт. Класс для Спрайта | + 20 | ||
Ничему Ничего 1) Когда я в классе Sprite написал List<MyLine>, то VS мне сказала, что нужно добавить юзинг (для MyLine), и добавила такой: using static Sprite.Paint; Вопрос: что значит статик при использовании его в юзинге? До меня просто не доходит, в чём здесь его предназначение. 2) Отправлять ли скриншот кода? А то Кирилл ругался на счёт этого =) |
|||
Игры со Спрайтами Спрайт. Класс для графики | + 20 | ||
И функция и процедура называется методом (раньше думал, что метод - это процедура) Успевать. Но не хочу повторяться, так что ничего. Пока всё легко |
|||
Игры со Спрайтами Спрайт. Структура для линии | + 20 | ||
Ничему Не отставать =) Я как-то пытался использовать структуры, но когда хотел изменить свойство в уже созданном экземпляре, мне писало, что так делать нельзя, потому что это не переменная: Cannot modify the return value of 'TEST.mystruct' because it is not a variable http://stackoverflow.com/questions/3729873/problem-with-struct-and-property-in-c-sharp В общем, я так понял, что структуры лучше не трогать и переписал всё в класс. Что я делал не так? |
|||
Игры со Спрайтами Спрайт. Первая форма | + 20 | ||
Ничему Ничего Да начнётся приключение =) ПС: Остальные игры из плана отсутствуют, так как написание этих заняло слишком много времени? |
|||
Шарики ФИНАЛЬНЫЙ УРОК | + 20 | ||
У меня что-то с микрофоном =) И что-то не так с нахождением короткого маршрута Нормально говорить Я видимо где-то ошибся в алгоритме нахождения короткого пути. Завтра исправлю, сегодня уже всё =) |
|||
Шарики Шарики. Поиск линий | + 20 | ||
Идти до конца =) Продолжать писать Ого. Я и не думал, что этот курс такой длинный. Прям облегчение от того, что закончил =) Интересно, на сколько хорошо у меня в таком состоянии получится обзор записать |
|||
Шарики Шарики. Поиск пути | + 20 | ||
Повторил алгоритм поиска в ширину Ничего Ура, финишная прямая =) |
|||
Шарики Шарики. Логика игры | + 20 | ||
Как на путаться в куче кода Ничего Это было долго =) А почему не сделать функцию SelectNextBall как на втором скнишоте (сначала ищем все пустые места, том выбираем случайное)? |
|||
Шарики Шарики. Анализ игры | + 20 | ||
Ничему Ничего А как же TableLayoutPanel? И располагать удобнее и координаты сразу есть. |
|||
Шарики Шарики. Вступление | + 20 | ||
Ничему Передать фотографию на компьютер без кабеля и блютуза Ну, погнали =) |
|||
НаноШахматы ФИНАЛЬНЫЙ УРОК | + 2 | ||
Использовать CSS, JavaScript и перемещать элементы Ничего Если не сравнивать фото-курс с видеокурсом, а писать отзыв именно о нём, то это просто нечто! Для человека, который до этого курса о CSS и JavaScript знал только названия, я на удивление много узнал об их синтаксисе и основах применения в связке с PHP и HTML, да ещё и остался с работающей программой на выходе. И хотя используемые шаблоны вряд ли получится где-нибудь приминать, это и не нужно, так как целью этого курса (как мне кажется) было показать, как в принципе все эти языки работают и сочетаются между собой. Что удалось ему на отлично! |
|||
НаноШахматы JavaScript - Я тебя съем! | + 21 | ||
Работать с дочерними элементами Ничего Вроде всё отлично, но не могу переместить фигуру туда, где уже когда-то была другая. Наверно, что-то не так с удалением |
|||
НаноШахматы JavaScript - Тронул? Коди! | + 20 | ||
Отображать всплывающие уведомления, обрабатывать события Понять, где ошибка Хм, странно, почему у вас всё работает. Сразу решил первую ошибку (забыл короля дописать), но возникла другая - белый король отказался отобразаться. Я порылся в коде и оказалось, что символ "К" (белый король) первый в строке для поиска кода символа, то есть его номер - 0, который в свою очередь равен false (если переводить в bool). И этот иф считает, что символ не найден: if (!$num) return ""; |
|||
НаноШахматы JavaScript - Завершение хода | + 20 | ||
Вроде перемещать span из одного контейнера в другой Ничего А почему он не копируется? |
|||
НаноШахматы JavaScript - Посадку давай! | + 20 | ||
Разрешать Drop Ничего ... |
|||
НаноШахматы HTML5 - Поднятие фигур | + 20 | ||
Реализовывать первую половину DragDrop Ничего Выглядит даже лучше, чем перетаскивание в C# |
|||
Entity Framework Добавление - Извлечение | + 20 | ||
Доставать данные из базы данных Додуматься, как сразу вывести все роли полученного пользователя: string.Join(", ", user.Roles.Select(t => t.Name)) Отличный курс!!! Всё очень понравилось (кроме части про MySql, но то ладно). А вот по поводу моего второго вопроса отсюда (videosharp.info/9567/checking/ef=853). Я подумал, я порылся в context'е и так и не понял, как это делать. Пожалуйста, можете ответить, для меня это действительно важно (есть у меня одна программка, которой пользуется один учебный центр в нескольких филиалах, и если программа будет сама обновлять базу данных - будет просто замечательно) =) |
|||
Entity Framework Один за всех и Все за одного | + 20 | ||
Реализовывать различные типы связей и создавать промежуточные таблицы не создавая их =) Ничего Всё просто замечательно =) И пара маленьких вопросов =) 1) Почему вы называете таблицы в единственном числе? Например, таблица User (в которой хранятся пользователИ). Мне кажется, это может приводить к небольшой путанице, допустим, создадим мы какую-то переменную user (в которой хранится 1 пользователь) и перепутаем её с User (таблицей со всеми пользователями). Это я конечно утрирую, но всё же =) 2) В чём разница между: public string Name { get; set; } и public string Name; Да, get и set можно настраивать, но обычно, мы этого не делаем. Какие преимущества нам даёт эта запись? А по самому уроку вопросов нет, всё супер =) |
|||
Entity Framework Миграция Базы | + 20 | ||
Понял, что такое миграции и как их делать вручную Ничего Миграции - это действительно классно =) У меня есть несколько вопросов: 1) Если я хочу откатится к миграции, которая была несколько миграций назад, то приложение будем откатывать поочерёдно все миграции от самой новой, до той, что мне нужна? 2) Допустим, у меня есть готовое приложение, которое работает с локальной БД, и я его отдал паре друзей. Я обновил это приложение (и структуру БД), создал миграцию, проверил её корректность и обновил базу данных на своём компьютере. Как мне сделать так, чтобы новая версия приложения сама проверяла структуру БД, к которой подключена и при необходимости выполняла недостающие миграции? |
|||
Entity Framework Использование MySQL | + 20 | ||
Ничему Ничего Я очень извиняюсь, если что-то не так скажу, но просто я уже не могу об этом молчать. Нет, я конечно всё понимаю, информация, которую вы нам преподносите чрезвычайно полезная и интересная, НО к вебинарам нужно готовится, так как в записи никому не хочется смотреть, как половина времени уходит на поиск (именно на поиск) решений непредвиденных проблем или, ещё хуже, если эти проблемы так и останутся нерешенными. И этот относится ко всему вышеперечисленному. Я ещё когда выполнял задания с предыдущего вебинара решил, что сразу буду работать с MySql, так что проблема подключения возникла сразу же, я покопался интернете, в самой программе и потихоньку, но решил эту проблему. И отправил отчёт об этом с инструкцией, если ещё кому-то будет нужно (videosharp.info/9567/checking/ef=841). В итоге, оказалось, что нужно всего лишь немного откорректировать строку подключения и над классом с моделью (Context) написать: [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] Как видите, на всё это уходит отсилы минута (ну, если писать всё с нуля 5-10 минут максимум). Это на счёт первого пункта. Теперь дальше. Вместо той надписи над классом с моделью, в уроке в рекомендовали в строке подключения дописать: "Allow User Variables=True;". Я подумал, ну ладно, может это тоже поможет, и угадайте что? Не помогло, что видно на скриншоте 1. В то время, как моё решения, которое я отправил за дня 4 до вебинара, работает (скриншот 2). Ну ладно, видимо эти отчёты не доходят до автора этого курса, но на самом уроке показать, что всё работает нужно же было... Ещё раз, извините, просто уже не мог не сказать. |
|||
НаноШахматы PHP - Превращение букв | + 20 | ||
Писать функции в PHP Ничего Почему вы назвали второй вариант "хакерским", по моему, это просто более продуманный вариант |
|||
НаноШахматы PHP - Массив для фигур | + 20 | ||
Ничему Ничего 1) Что такое @ 2) Зачем использовать два цикла, если всё можно сделать в одном? |
|||
НаноШахматы PHP - Циклы для клеток | + 20 | ||
В PHP можно инкриминировать строку Ничего Всё хорошо |
|||
НаноШахматы HTML - Фигуры на Доске | + 20 | ||
Ничему Текст почему-то не по центру Вроде всё правильно списал |
|||
НаноШахматы CSS - Шахматная доска | + 20 | ||
Узнал, как работать с CSS Ничего Ура, я понял, что такое CSS |
|||
НаноШахматы HTML - Шахматные фигуры | + 20 | ||
Ничему Ничего Ещё раз, зачем писать "<br/>", если можно просто "<br>"? |
|||
Интернет-магазин ФИНАЛЬНЫЙ УРОК | + 21 | ||
Познакомился с PHP, узнал как с помощью него обрабатывать POST и GET запросы, а также работать в нём с базой данных MySql. Понять, что я пишу =) Курс по содержанию получился классный. Всё, не считая банального HTML и MySql запросов было для меня абсолютно новым, так что я многое для себя узнал. Здесь и основы PHP, и POST - GET запросы и работа с MySql (через PHP), и обработка отправки файла, и даже два вида переадресации =) И всё это уместилось на 25-и фотографиях! Но знаете, в этом и главный недостаток этого курса. Он слишком приблизился к черте, где единственное задание - списать и не задавать вопросов. По мере его прохождения я всё больше убеждался, насколько мне не хватает формата видеокурсов, где ты чувствуешь себя частью большого коллектива и проходишь весь этот путь не один. |
|||
Интернет-магазин Запись имени файла в базу | + 1 | ||
Ничему Ничего Всё успешно загрузилось =) Ну, для проверки идентичности файлов надо их хэш находить, а я не знаю, как это на PHP делать =) |
|||
Интернет-магазин Сохранение файла | + 20 | ||
Сохранять выбранный файл для сайта Ничего Всё отлично =) |
|||
Интернет-магазин Отправка файла | + 20 | ||
Добавлять файлы Ничего что значит $_FILES? |
|||
Интернет-магазин Интерактивный список | + 20 | ||
Делать ссылки с помощью PHP Реализовать удаление С удалением пришлось немного помучаться, но я таки сделал это =) |
|||
Интернет-магазин Редирект на список | + 1 | ||
Делать перенаправление Ошибся в одной букве и думал, почему не работает, эх, отладчик бы сюда (или как это назвать).. Не понял последнее задание |
|||
Интернет-магазин Нет картинки | + 20 | ||
Добавлять файл по умолчанию Найти картинку =) Всё хорошо |
|||
Интернет-магазин Значения по умолчанию | + 20 | ||
Задавать значения по умолчанию Ничего ... |
|||
Интернет-магазин Сохранение изменений | + 20 | ||
Nothing Nothing /// |
|||
Интернет-магазин UPDATE товара | + 20 | ||
Ничему Ничего ... |
|||
Интернет-магазин Товар на форме | + 20 | ||
Вставлять данные в поля на форме Ничего Хорошо, но теперь без параметра форма не работает. Кстати, а зачем / ставить после br, он же и без этого работает? |
|||
Интернет-магазин SELECT из РНР | + 20 | ||
Обрабатывать Get запросы Ничего ... |
|||
Интернет-магазин INSERT из РНР | + 20 | ||
PHP не обрабатывает ошибки выполнения запроса Ошибся в имени таблицы (написал "wares") и минут 20 не мог найти ошибку (она вообще нигде вы высвечивалась) • Как вообще ошибки обрабатывать? • А зачем id передавать, он же сам генерируется? |
|||
Интернет-магазин Форма Товара | + 20 | ||
Я что-то сделал, но не уверен, что научился этому.. Ничего ... |
|||
Интернет-магазин Таблица с Картинками | + 20 | ||
Ничему Ничего Всё хорошо |
|||
Интернет-магазин Картинки для товаров | + 20 | ||
Ничему Ничего --- |
|||
Интернет-магазин Товары в таблице | + 20 | ||
Обрабатывать запрос, возвращающий несколько значений в PHP Ничего Ладно, теперь минус фото-курса становится очевидным: я не совсем понимаю, что пишу. Что значит "$", и зачем его писать перед именем переменной; почему нельзя написать "$row[0]"? И всё в таком духе. И без общения (ну, точнее голоса за кадром) уже как-то не так, не так в голове откладывается. |
|||
Интернет-магазин Подружить PHP с MySQL | + 20 | ||
подключаться к MySql используя PHP Ничего Всё отлично =) |
|||
Entity Framework Основные приемы работы с БД через EF | + 20 | ||
Подключаться к базе данных и получать данные из неё • Помните я переименовал Model1 на Context? Так вот, при выполнении запроса, мне выдало: :No connection string named 'Context' could be found in the application config file." (видимо, не до конца переименовал), так что я вернул первоначальное имя. • Дальше у меня начала вылетать пустая ошибка (null) на строке, где мы получаем пользователя, наверно, это из-за того, что я к MySql подключился... • Ещё покопался в App.config и к серверу приложение таки подключилось, и даже таблицу создало, но появилась такая ошибка: "Specified key was too long; max key length is 767 bytes". Оказалось (http://stackoverflow.com/questions/20602114/mysql-connector-6-8-2-rc-entity-framework-6-and-code-first), что нужно перед классом с моделью писать: [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] Фух, если самому что-то делать, то столько времени уходит =) Нет, ну LINQ это далеко не всегда выход, SQL в плане удобства формирования запроса, как по мне, на порядок удобнее (особенно, если этот запрос 100+ символов в длину). У меня в паре программ есть запросы для формирования статистики, так они вообще больше 1000 символов (да, я пытался их оптимизировать, но дело в том, что там статистика довольно объёмная). В общем, знание, как выполнять свои SQL запросы очень бы пригодилось =) |
|||
Entity Framework Подключение БД по методу CodeFirst | + 1 | ||
Создавать базу данных с помощью метода CodeFirst Сначала у меня Visual Studio просто отказывалась показывать ADO.NET EntityFramework Data Model, и что бы я не делал она не появлялась. Так что сегодня ночью я переустановил студию и всё снова стало хорошо =) Ещё, когда создавали класс Initializer, мы там передавали Context, а у меня его не было, у меня этот класс назывался Model1, странно. А так всё просто =) Всё отлично, всё понравилось =) • Когда вы писали {Key}, возможно, вы имели ввиду [Key], просто второй вариант у меня работает, в отличии от первого • Не очень понятно, как нам при изменении модели сохранять данные, которые уже находятся в БД. Ну добавил я один столбец, и что теперь всю базу затирать? Нельзя ли как-то просто модифицировать текущую версию (посмотреть чем новая модель отличается от старой и применить эти изменения)? • Ещё не до конца понял, как указывать параметры столбцов (такие как NOT NULL) и как создавать, например, вторичные ключи? |
|||
Entity Framework Создание приложения | + 20 | ||
Ничему Ничего Всё хорошо |
|||
Entity Framework Введение в EF | + 20 | ||
Что ADO.NET лучшее, что можно использовать для работы с СУБД Ничего Вроде всё понятно, идём дальше =) |
|||
Интернет-магазин Добавление товаров | + 20 | ||
Ничему Ничего Теперь всё хорошо =) |
|||
Интернет-магазин Всё готово для работы | + 20 | ||
Ничему Ничего Всё сделал =) |
|||
Интернет-магазин Запуск РНР | + 21 | ||
Написал скрипт нa РНР Ничего Как-то не очень получилось.. |
|||
Интернет-магазин SELECT запросы | + 20 | ||
Ничему Ничего Находим самый дорогой товар |
|||
Интернет-магазин phpMyAdmin | + 20 | ||
Ничему Ничего Добавил 5. А почему нельзя вносить русские буквы? |
|||
Интернет-магазин Запуск базы данных | + 20 | ||
Ничему Запустить консоль MySql Создал ярлык, дописал аргументы, запустил, а он просит пароль (которого я не знаю). В общем, создал всё это через phpMyAdmin |
|||
Интернет-магазин Установка EasyPHP | + 20 | ||
Установил EasyPHP Запустить сервера Не удалось запустить MySql сервер. Нажимаю старт, он вроде запускается, но когда загрузка заканчивается, он всё ещё не запущен. |
|||
Графические циклы VIP - Квадрат Гарри Поттера | + 20 | ||
Попрактиковался во вложенных циклах Сделать ромб по центру (так и не получилось, зато получился квадрат по центру) 6 - x < 13 || y < 13, 11 - x == 1 || y == 1 || x == lim - 2 || y == lim - 2, 17 - y - 15 > Math.Sin(x / 2.0) * 4, 20 - (x + y) % 2 == 0, 22 - (x + y) % 3 == 0 23 - x % 2 == 0 && y % 3 == 0 Квадрат по центру - Math.Abs(x - (lim / 2)) < 5 && Math.Abs(y - (lim / 2)) < 5 Какая-то странная кривая - Math.Abs(x * y - (lim / 2)) > 5 |
|||
Unity 3D Приглашение на видеокурс | + 20 | ||
Искать картинки с лабиринтом =) Ничего Всё отлично |
|||
Новые технологии Модульное тестирование | + 20 | ||
Создавать автоматические тесты Ничего Вау, я как раз пару дней назад узнал про то, что они существуют, и вот теперь узнал, как это всё реализовать, класс =) Было бы классно, если бы была серия таких уроков, например, ещё про тестирование интерфейса: https://habrahabr.ru/post/97012/ Я понимаю, что это доступно только в Visual Studio Enterprise (https://www.visualstudio.com/en-us/products/compare-visual-studio-2015-products-vs.aspx), но всё же =) Ведь тестировщик сейчас довольно популярная и востребованная профессия, да и самим программистам полезно =) |
|||
Бурные потоки ФИНАЛЬНЫЙ УРОК | + 21 | ||
Повторил то, что знал о потоках и предназначении static, узнал о приоритетах потоков и Monitor Ничего Этот курс, как и другие в этой серии (других я не проходил), получился просто замечательный, особенно в плане визуализации. Но, в отличии от других, в этот раз это больше замечательная заготовка (для обучения и демонстрации работы с потоками). Сейчас попытаюсь объяснить. Я заметил, что все курсы из линейки "Професишарп" связаны: после того, как в первом мы во всех подробностях рассмотрели IEnumerator, с лёгкостью использовали его во втором, для создания класса работающего с графами, который, я надеюсь, очень пригодится нам здесь для того, чтобы змейка, например, шла к ближайшему зайцу. Как бы то ни было, в этом курсе заметно, что он третий подряд. За одну неделю одному человеку практически невозможно подготовить такую обширную тему, как потоки, тем более с такой потрясающей визуализацией. Теперь о самом курсе. Если вы ничего не знаете о потоках, лучше сначала пройдите урок "Нити на кубиках" (videosharp.info/video/soft2/nr=62), так как курс называется "Професишарп" и подразумевается, что что-то мы таки знаем =) Что же мы делали на этом курсе? Как я уже сказал большую его часть заняла визуализация, но она полностью стоила того, чтобы потратить на неё столько времени, но, естественно, это не всё. Также мы довольно детально рассмотрели подводные камни, которые встречаются, когда вы хотите, чтобы один объект работал в нескольких потоках, такие как: использование ключевого слова static и механизмы для синхронизации доступа к объектам lock и Monitor. Кроме этого, мы узнали, как задавать потоку определённый приоритет, что это даёт, как прерывать потоки извне, как обрабатывать это прерывание в самом потоке и как один поток может ожидать завершения другого (но, я считаю, что на последнее было выделено мало времени). Как видите, получился с одной стороны не длинный, и с другой стороны довольно насыщенный курс, и хотя довольно много всего было рассмотрено, почти всё это основы, так сказать база, без которой возможно рассматривать потоки на более глубоком уровне; вот почему, я считаю, что то, что есть на данных момент - это замечательный шаблон, взяв который который за основу можно ещё очень много сделать. С другой стороны, я и сам не знаю, что находится на этом "более глубоком" уровне, да и есть ли он вообще, так что вполне могу ошибаться на счёт всего этого. Но, в любом случае, с нетерпением жду продолжения =) |
|||
Бурные потоки Смысл жизни | + 22 | ||
Убивать змей голыми руками Ничего Не совсем понял, зачем нужна эта строчка: PutScreen(head, color, aNone); в основном цикле (предыдущая голова вроде и так очищается), так что перенёс её в самый конец жизни змеи (последний шаг убийства - стереть голову) и сделал, чтобы во время умирания она не могла вертеть головой. Так, последний (на текущий момент) урок в этом курсе. Нужно написать отзыв. И так, после вебинара прошла целая ночь, вроде всё в голове уже устаканилось, сейчас попробую объективно всё это оценить =) Этот курс, как и другие в этой серии (других я не проходил), получился просто замечательный, особенно в плане визуализации. Но, в отличии от других, в этот раз это больше замечательная заготовка (для обучения и демонстрации работы с потоками). Сейчас попытаюсь объяснить. Я заметил, что все курсы из линейки "Професишарп" связаны: после того, как в первом мы во всех подробностях рассмотрели IEnumerator, с лёгкостью использовали его во втором, для создания класса работающего с графами, который, я надеюсь, очень пригодится нам здесь для того, чтобы змейка, например, шла к ближайшему зайцу. Как бы то ни было, в этом курсе заметно, что он третий подряд. За одну неделю одному человеку практически невозможно подготовить такую обширную тему, как потоки, тем более с такой потрясающей визуализацией. Теперь о самом курсе. Если вы ничего не знаете о потоках, лучше сначала пройдите урок "Нити на кубиках" (videosharp.info/video/soft2/nr=62), так как курс называется "Професишарп" и подразумевается, что что-то мы таки знаем =) Что же мы делали на этом курсе? Как я уже сказал большую его часть заняла визуализация, но она полностью стоила того, чтобы потратить на неё столько времени, но, естественно, это не всё. Также мы довольно детально рассмотрели подводные камни, которые встречаются, когда вы хотите, чтобы один объект работал в нескольких потоках, такие как: использование ключевого слова static и механизмы для синхронизации доступа к объектам lock и Monitor. Кроме этого, мы узнали, как задавать потоку определённый приоритет, что это даёт, как прерывать потоки извне, как обрабатывать это прерывание в самом потоке и как один поток может ожидать завершения другого (но, я считаю, что на последнее было выделено мало времени). Как видите, получился с одной стороны не длинный, и с другой стороны довольно насыщенный курс, и хотя довольно много всего было рассмотрено, почти всё это основы, так сказать база, без которой возможно рассматривать потоки на более глубоком уровне; вот почему, я считаю, что то, что есть на данных момент - это замечательный шаблон, взяв который который за основу можно ещё очень много сделать. С другой стороны, я и сам не знаю, что находится на этом "более глубоком" уровне, да и есть ли он вообще, так что вполне могу ошибаться на счёт всего этого. Но, в любом случае, с нетерпением жду продолжения =) |
|||
Бурные потоки Замри! | + 20 | ||
Закрепил голику использования lock, повторил Abort, узнал, какие состояния бывают у потока Ничего Мне кажется, нужно было сделать больший акцент на том, что когда мы прерываем поток, то внутри него может возникнуть именно ОШИБКА (если мы его прерываем не во время ожидания). Просто у когда я у себя в одной программе так делал во время выполнения sql запроса (выполнялся он долго, так что в фоновом потоке), программа не ждала, пока он выполниться и просто вырубала весь поток, в связи с чем в нём возникала ошибка. А так всё хорошо =) |
|||
Бурные потоки Приоритет | + 20 | ||
Узнал, как задавать приоритет потоку Ничего Приоритеты классная вещь =) |
|||
Бурные потоки Бурная жизнь | + 20 | ||
Ничему Ничего Как я и писал, нужно, чтобы она сама в себя не закручивалась и шла к ближайшему зайцу (мы же как раз графы прошли, вот и отлично практическое применение) =) |
|||
Бурные потоки Поток питонов | + 20 | ||
Повторил, зачем нужен IsBackgroung, как использовать lock и Monitor Ничего Вот и потоки =) |
|||
Бурные потоки Поворот головы | + 20 | ||
Передавать enum как int Я всё ещё не разобрался, как всё работает, так что, ничего =) Мы почти сделали свою змейку в консоли, круто =) |
|||
Бурные потоки Питонатор | + 20 | ||
Ещё раз понял, зачем нужен static в случае с несколькими потоками (теперь на примере переменных) =) Ничего Так, теперь нужно начинать разбираться, как всё это работает, а то на вебинаре только переписать успевал =) ПС: классная идея с проверкой отчётов перед уроком. А ограничение на кол-во непроверенных осталось? |
|||
Бурные потоки Зайчики | + 20 | ||
Функции нужно делать как можно меньше, почему фигурные скобки нужно писать только тога, когда нужно Ничего Хм, а меня учили, что их всегда нужно писать, чтобы код лучше читался, да и можно забыть, что должен быть только один оператор, написать 2+, а потом думать, почему цикл не работает =) |
|||
Бурные потоки Террариум | + 20 | ||
Понял, зачем нужно использовать static для класса, который выполняется в нескольких потоках Ничего Всё хорошо |
|||
Бурные потоки Вступление | + 20 | ||
Узнал о существовании Monitor и Interlocked Ничего Всё хорошо |
|||
Итератор ФИНАЛЬНЫЙ УРОК | + 21 | ||
Узнал, что такое итератор и как он реализуется в C#, лучше разобрался в работе foreach, как реализовать класс, наследуемый от IEnumerable и IEnumerator, а так же волшебное слово yield Вникнуть, как работает yield Курс получился просто отличный! На нём в мою голову за пару десятиминутных уроков вбили то, во что сам бы я наверное месяц вникал =) И всё это в такой форме, что единственное желание после проработки очередного видео было как можно быстрее узнать что же дальше. Я его прошел за один вечер, а потом ещё пару дней это всё укладывалось у меня в голове. И в итоге, сейчас я понимаю, что такое IEnumerable, IEnumerator, что именно делает yield и как с этим всем работать =) |
|||
Коллекция графов ФИНАЛЬНЫЙ УРОК | + 21 | ||
Узнал о паре новых коллекций, сравнил скорость их работы и не только вспомнил теорию графов, но и реализовал наглядное отображение поиска в ширину и глубину. Ничего Мне всё понравилось =) Особенно часть, где ты видишь, как написанный тобой код пошагово показывает тебе работу различных способов поиска по графу. А кто не любит, когда работу программу можно буквально увидеть своими глазами? =) |
|||
Коллекция графов Глубокий алгоритм | + 20 | ||
Ничему Ничего Мне пришлось ждать день (буквально), чтобы открылся доступ к этому уроку, какое-то это неправильное ограничение... Пока я ждал, я сам реализовал этот алгоритм и доработал предыдущий, чтобы он обновлял граф только когда сделает один полный шаг (а то у нас получалось, сначала эта "волна" идёт на клетку влево, потом вверх и т.д.) и возвращал количество сделанных шагов (как показано на скриншоте). А так, курс понравился =) Узнал о паре новых коллекций, сравнил скорость их работы и не только вспомнил теорию графов, но и реализовал наглядное отображение поиска в ширину и глубину. |
|||
Коллекция графов Глубокий поиск | + 20 | ||
Вспомнил поиск в глубину Ничего Вроде всё повторил, но как-то не очень получилось =) Блин, действительно классно. Использовать рекурсивныый алгоритм без рекурсии. |
|||
Коллекция графов Визуализация процесса | + 20 | ||
Наслаждаться поиском в ширину Ничего Ого, я знаю что-то, чего не знаете вы =) Просто вместо panel1.Refresh(); Напишите Application.DoEvents(); И программа сама отобразит своё текущее состояние (и не нужно вообще ничего перерисовывать). =) |
|||
Коллекция графов Широкий пошаговый ход | + 20 | ||
Ничему Ничего Ну хорошо, для Hashtable это бы не сработало (там у элементов индексы меняются), но вы сами разрешили мне использовать Dictionary, где такого вроде не происходит =) Так что в моём случае это было простое правильное решение =) Да, сначала сохранять ключи - хорошая идея, но если бы вы сразу использовали Dictionary, то вам бы просто это было бы лишним (и память сэкономили бы) =) |
|||
Коллекция графов Широкий алгоритм | + 20 | ||
Перебирать коллекцию во время её изменения Ничего Я запустил пошагово и убедился, что мы изменяем коллекцию (о чём и говорилось в ошибке). Так что я просто заменил foreach на for (нам же никто не говорил, что вершины нужно возвращать в каком-то определённом порядке), таким образом перебор выполняется по индексу элемента коллекции и ошибка не возникает =) |
|||
Коллекция графов Широкий поиск | + 20 | ||
Вспомнил алгоритм поиска в ширину Ничего Всё хорошо =) |
|||
Коллекция графов Шахматная доска | + 20 | ||
Очищать conrol от рисунков (серьёзно, до этого момента я понятия не имел, как это делать) Ничего Всё классно |
|||
Коллекция графов Отображение | + 20 | ||
Ничему Ничего Ну, я только по центру линии выровнял и координаты прописал, и получилось тоже самое =) Я наверное уже ван надоел, но почему List<Label>, а не Dictionary<int, Label>? Так нам не нужно будет волноваться о порядке добавления вершин, да и их уникальность будет гарантирована =) Как-то после того, как выполнишь задание с предыдущего урока, следующий не интересно смотреть... |
|||
Коллекция графов Инициация | + 20 | ||
Ничему Вывести граф Пришлось немного симпровизировать, но для чернового варианта пойдёт =) |
|||
Коллекция графов Рёбра | + 20 | ||
Ничему Ничего О, Dictionary, теперь я рад жизни =) А почему мы его для вершин не использовали? |
|||
Коллекция графов Вершины | + 20 | ||
Пока ничему, но чувствую, скоро всё станет на свои места =) Переписывать русские названия на английском =) Я всё таки остановлюсь на Dictionary (вместо Hashtable). Не знаю, почему вы его не выбрали... |
|||
Коллекция графов Граф | + 20 | ||
Виды графов Придумать способ хранения графа Уф. Как-то я не очень хорош в хранении графов =) Лучшее, что смог придумать: вершина - ключ, соединённые с ней вершины - значение (например, массив int). Да, буде куча дублирующиеся информации, но лучше ничего не придумал =) ПС: Я это написал до того, как посмотрел вторую половину урока. Можно создать структуру: вершина и чтобы она содержала ссылки на другие вершины с которыми оно соединена и значение закрашена она или нет. (в C# же можно хранить ссылку на объект, а не его копию?) Кстати, покажите класс для хранение графов от microsoft? |
|||
Коллекция графов BitArray | + 20 | ||
Работать с BitArray Ничего Прикольно, не знал о нём. Порылся по методам, вроде всё понятно, так что просто сделал то, что было на уроке |
|||
Коллекция графов Hashtable | + 20 | ||
Ничему Ничего Так, я видимо на прошлом уроке сделал больше, чем нужно =) Так что, скриншот не меняется. Кстати, оказывается HybridDictionary на порядок круче даже Hashtable. Dictionary всё же быстрее него, но там-то мы указываем тип данных. |
|||
Коллекция графов ListDictionary | |||
Dictionary - лучший способ хранения пары ключ-значение Ничего Так, а почему вы не использовали Dictionary<TKey, TValue>? Я всегда использовал его в таких случаях, и за счёт того, что мы заранее знаем типы данных (что, как я думаю, бывает почти всегда), он работает быстрее, чем все предложенные вам варианты (результаты тестов на скриншоте). И ещё вопрос: что можно использовать, чтобы связать два уникальных объекта, то есть не ключ-значение, а ключ-ключ или как-то так. Чтобы я мог получить 1-й ключ, зная второй и 2-й зная первый. |
|||
Коллекция графов Array vs List | + 21 | ||
List работает быстрее ArrayList, переменные типа double числа можно делить на 0 ничего Ого, прикольно. Оказывается 1.0/0 = бесконечность. Я думал вообще ничего на ноль делить нельзя =) ПС: Чтобы постоянно не писать sw.Reset(); sw.Start(); Можно писать sw.Restart(); |
|||
Коллекция графов
List |
+ 20 | ||
Ничему Ничего А почему сразу не воспользоваться foreach? |
|||
Коллекция графов ArrayList | + 1 | ||
Узнавать реальный размер ArrayList ничего Пока ничего нового =) |
|||
Webbot On-Line Проверяем авторизацию | + 21 | ||
Просматривать исходный текст страницы Ничего Отлично, теперь могу проверить вышла ли новая серия сериала =) Вопрос: после авторизации адрес стал таким: http://nebo.mobi/home;jsessionid=A445D50505A05CCDFC05C41820BF5D57 В обычных браузерах такого нет. Я понимаю, что это что-то вроде моего id, но откуда он взялся =) И ещё вопрос: почему мы так уверены, что если имя пользователя встречается на странице (даже если в определённом теге), это значит, что именно он сейчас залогинен? Да, для этого сайта такое решение подойдёт, но мы же пишем универсального бота. А вдруг это просто сообщение от этого пользователя пришло или ещё что-то =) Можно, например, проверять, находится ли рядом с именем пользователя картинка с человечком (второй скриншот). Было бы интересно посмотреть на реализацию этого алгоритма. Вопрос №3: можно ли как-то сделать перехват логина и пароля при входе и сохранить их (как делают обычные браузеры). Вопрос №4: можно ли управлять загружаемым сайтом, например: отключить загрузку картинок (они нам не нужны, и такое решение существенно сэкономит трафик)? В любом случае, большое спасибо за эти уроки, узнал много нового =) |
|||
Webbot On-Line Подготовка формы | + 20 | ||
Основам работы с WebBrowser Ничего Когда заходил на videosmile.ru с помощью WebBrowser через некоторое время (пера секунд) адресная строка стала такой: about:blank. Много раз видел такое в обычных браузерах, но до сих пор точно не знаю, что это. И ещё вопрос, как сделать так, чтобы можно было перехватывать копирование текста с адресной строки и подменять его другим? Как делают обычные браузеры (копируешь страницу без "http://', а копируется с). Конечно, это немного не по теме, но всё же =) |
|||
Webbot On-Line Планирование функций | + 1 | ||
Оказывается в Word можно рисовать блок-схемы =) Ничего Ну, понеслась =) |
|||
Webbot On-Line Видеообзор Игры | + 20 | ||
Играть в небоскрёбы =) Ничего Ух, давно хотел что-то такое написать. Например, чтобы проверять вышла ли новая серия сериальчика, а не самомо по 50 раз в день на сайт заходить =) |
|||
Итератор Итератор. Зачем нужно два класса | + 20 | ||
Понял, зачем нужно было 2 класса ничего Хм, никогда даже об этом не думал. Как же сложно было бы самому до этого дойти =) ПС: Не захотел откатывать программу, так что сделал обычную таблицу умножения |
|||
Итератор Итератор. Один метод вместо классов. | + 20 | ||
Функции могут возвращать IEnumerable и в таких функциях можно использовать yield ничего Воу, функция, которая может приостанавливать своё выполнение в пользу подпрограммы, которая её вызвала. Это просто нечто!! =) Нужно это всё переварить. Спасибо за урок =) |
|||
Итератор Итератор. Список простых чисел. | + 20 | ||
Создал самый оптимальный алгоритм в моей жизни для поиска простых чисел разобраться как он работает =) Что же дальше будет? =) |
|||
Итератор Итератор. Волшебное слово yield. | + 20 | ||
Использовать ключевое слово yield Вникнуть в его принцип работы Ваааааааау, как же это круто. После первой минуты урока я перестал повторять и просто смотрел. Какой же C# всё-таки классный язык, и какой же вы классный учитель =) |
|||
Итератор Итератор. Перебор простых чисел. | + 20 | ||
Реализовывать функцию MoveNext() В прошлом уроке установил максимум 1000 и благополучно забыл про это. А потом где-то минуту искал почему выводит не все делители =) Всё классно =) |
|||
Итератор Итератор. Перебор чисел в итераторе. | + 21 | ||
Создавать параметры для объекта класса (или как это сказать? =)) ничего становится всё интереснее и интереснее =) |
|||
Итератор Итератор. Создание пустого итератора. | + 20 | ||
Реализовывать классы, наследуемые от IEnumerable и IEnumerator. Глубже понял принцип работы цикла foreach В общем-то ничего, нужно было просто переписать Что такое интерфейс? Пару раз сталкивался с этим словом, но ничего о нём не знаю =) Что это? И как это, множественное наследование классов нельзя, а интерфейсов можно? В остальном всё замечательно =) |
|||
Итератор Итератор. Разложение числа на простые множители. | + 20 | ||
ничему ничего Понравился способ, с помощью которого выводились именно простые делители. Я бы просто после нахождения делителя сбросил j на 2 (первая мысль, которая в голову пришла). Понравилось то, что даже в такой просто программе уже есть чему поучиться =) |
|||
Семантика Я решил всю Семантику! | + 21 | ||
Insert в строках стал для меня новостью, вы бы видели, как я раньше что-то в строку вставлял =) Также открыл для себя пару возможностей DateTime и научился извлекать кубический корень. Задания из блока Календарь. Но я их почти все решал сегодня ночью, так что может, дело в этом =) Очень понравились задачи на это курсе. Их было настолько интересно решать, что я прошел его почти не отходя от компьютера =) Особенно понравились задачи с числами (из раздела Цифры и Лирика) и курицами. |
|||
Нано-игры Арканоид - Уровень и ракетка | |||
|
|||
Итератор VIP. Оптимизация поиска простых чисел | |||
|
|||
Начало здесь День №1. Создание микро-Привычки. | |||
|