Online обучение c#

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Статистика по видеоурокам

  • Всего просмотрено уроков: 166
  • Всего выполнено уроков: 164

Отчёты по видеоурокам

Дата Видеоурок Результат
2017-01-14 13:16 C# Четыре в ряд - Соревнование Оценка позиции + 14 4 час. 00 мин.
Научился думать позиционно, а не комбинаторно.
Научиться думать позиционно.
Сначала думал, что без поиска вглубь/вширь хорошего бота не написать, но оказалось, что при достаточно хорошей функции оценки позиции бот тоже играет довольно неплохо.
Я вот у своего теперь не всегда даже и выигрываю!
Хотя, конечно, любой перебор должен легко выиграть у такого бота, поэтому важно комбинировать оба способа достижения цели.
В функции оценки еще довольно сложно подобрать коэффициенты для определенных "позиционных событий", одна и та же функция с разными коэффициентами может как играть очень сильно, так и сливать на пустом месте.
2017-01-09 19:53 C# Четыре в ряд - Соревнование Пять в Ряд - Соревнование + 21 15 мин.
Смотреть видео.
Разобраться в авторском коде.
Требуется написать класс, реализующий интерфейс IRobot. Этот интерфейс, по сути, содержит одну функцию - оценки позиции на доске. Вот нужно написать эту функцию оценка позиции идет с точки зрения крестиков - первого игрока.
2017-01-05 23:25 Базовый ASP.ект Подключение к базе данных + 20 35 мин.
Создавать подключение к БД и делать запросы.
---
А почему установка ADO.NET провайдера не из nuget?
Для конструирования коннекшнстрингов рекомендую использовать готовый класс MySqlConnectionStringBuilder, здесь всё более современно и проверка уже кое-какая на уровне компилятора получается, как минимум это дает некоторую защиту от опечаток и потом мучительных поисков этой ошибки.
2017-01-05 22:39 Базовый ASP.ект Создание SQL-запросов + 20 30 мин.
Научился писать SQL-запросы
---
В СУБД FireBird есть ключевое слово/команда CONTAINING, которая работает как LIKE, но не является регистрозависимой.
Возможно, здесь это было бы более уместно, но в mySql похоже нет такой команды.
2017-01-05 22:12 Базовый ASP.ект Схема базы данных + 20 20 мин.
Создавать таблицы в БД mySql
---
Список задач? Хранение наших историй/постов и всей связанной информации.
2017-01-02 20:26 Базовый ASP.ект Установка сервера MySQL + 20 40 мин.
Научился устанавливать MySQL Server
Исправить ошибки в работе MySQL и сбросить пароли от прошлых установок.
На работе очень широко используется СУБД FireBird, для нее есть очень мощный инструмент - IBExpert, много приходится со всем этим делом работать, поэтому в SQL немного уже поднаторел.
2017-01-02 18:40 Базовый ASP.ект Формирование меню + 20 15 мин.
Научился править навигационную панель.
---
---
2016-12-25 00:27 Базовый ASP.ект Создание модели Story + 20 20 мин.
Создавать модели и передавать их в представление
---
Кривоватая модель какая-то, конечно, зачем в модели методы add и прочие. Story - это одна порция данных, т.е одна история, в нее ничего не добавишь, она либо есть, либо ее нет. Нужен какой-то репозиторий, коллекция экземпляров Story, вот тогда добавление отдельной истории будет как создание экземпляра Story и добавления его в репозиторий.
2016-12-25 00:00 Базовый ASP.ект Создание пустых страниц + 20 15 мин.
Создавать пустые контроллеры и представления
---
---
2016-12-24 23:40 Базовый ASP.ект Создание схемы проекта + 20 10 мин.
Составлять схему сайта
---
---
2016-12-24 23:31 Базовый ASP.ект Выбор темы для проекта + 20 10 мин.
Придумывать тематику для сайта
---
Сайт будет содержать смешные гифки с котиками)
2016-12-24 23:16 Базовый ASP.ект Мы начинаем ASP.NET с MVC + 20 10 мин.
Создавать шаблон для ASP.NET MVC проекта
---
---
2016-12-24 23:03 Комбинаторика Динамика. Поле дураков + 20 15 мин.
Динамическому программированию
---
---
2016-12-24 20:36 Игры на JavaScript Сколько мне дней + 20 10 мин.
Азам JS
---
---
2016-10-08 16:51 ASP.NET и GMaps Запуск ASP.NET MVC + 20 15 мин.
Научился создавать проект ASP.NET, добавлять в него контроллеры и представления
---
---
2016-10-08 11:46 ASP.NET и GMaps Презентация + 20 5 мин.
Придумывать применение технологии
Придумать применение технологии
Можно разместить на карте фотографии, причем координаты можно взять из EXIF фотки, в большинстве смартфонов туда пишутся координаты при съемке (хотя, идея, конечно, не моя, существует куча таких приложений)
2016-09-22 19:47 Секундомер Секундомер - Настройка формы  


2016-08-22 21:58 Демо софт Вам телеграмма! + 20 10 мин.
Устанавливать телеграм
---
Посмотрим зачем это...
2016-08-14 10:33 Фотошарп VIP. Делегаты на кубиках + 20 50 мин.
По идее научился использовать делегаты, по факту - знаком был с ними ранее =)
---
---
2016-08-13 16:25 Бурные потоки VIP. Игры со словами + 20 2 час. 00 мин.
Научился играть со словами!
---
Очень интересный видеоурок!
Все-таки для поиска анаграмм выгоднее найти все массивы использования букв один раз и потом работать только с ними, это даст ускорение примерно в 1,5 раза
А еще, я сначала не сравнивал длину слов, поиск анаграмм занимал почти минуту, после добавления проверки равенства длин время работы сократилось до 10 с!
2016-08-12 18:07 Фотошарп ФИНАЛЬНЫЙ УРОК + 20 5 мин.
Интересный курс в целом, получил много информации об обработке изображений
Сложным было реализовать что-то вне курса, в частности написать проект полностью на WPF
А двигаться по курсу вполне можно и новичку-"середнячку"
> 5. Кaкoй кypс ты бyдешь прохoдить следyющим?
Планирую "добить" все незавершенные курсы.
2016-08-12 17:56 Фотошарп Билинейная интерполяция + 20 50 мин.
Научился реализации алгоритма билинейной интерполяции
---
При использовании четырехпиксельной картинки выяснил, что у меня в методе ближайшего соседа неправильно округление идет, как видно на первом скрине получилось почти всё красным, лишь узкие полосы шириной в один пиксель по краям, на втором скрине видно, что это уже исправлено.
Написал операторы сложения для цветов и умножения цвета на число float - так использовать формулы ну гораздо удобнее... :)
2016-08-11 18:40 Фотошарп Метод ближайшего соседа + 20 20 мин.
Реализации ресайза методом ближайшего соседа
---
---
2016-08-11 15:40 Фотошарп Изменение размера + 20 10 мин.
Изучил методы ресайза изображений
---
---
2016-08-11 14:31 Фотошарп Гамма-коррекция + 20 20 мин.
Научился гамма-коррекции изображений
---
Логичнее было бы реализовать гамма-коррекцию так же, как и предыдущие виды коррекции
Также передать делегат, остальное уже всё есть...
2016-08-11 13:41 Фотошарп Градационная коррекция + 20 30 мин.
Научился функциональной коррекции изображений
---
В шарпе есть некоторые готовые "шаблоны" делегатов, такие как Action, Func и т.п., поэтому не обязательно в таком простом примере писать свой делегат, я использовал просто Func<byte, byte>
Ну и передаю функцию как лямбду (куда уж без нее... :D)
2016-08-11 12:17 Фотошарп Ярость и контрастность + 20 2 час. 00 мин.
Научился попиксельно менять яркость и контрастность изображений
---
В WPF с помощью привязок кое-что можно сделать прямо в XAML-разметке без написания кода, например, слайдер (здесь так называется аналог trackBar'а WinForm), его значение можно забиндить в поле Text элемента TextBlock:
<TextBlock Text="{Binding ElementName=slBrightness, Path=Value}" ... />
Здесь slBrightness - имя моего слайдера, так вот при изменении Value в текст-блоке автоматически отображается это значение. Обработчик события писать не требуется
2016-08-11 10:34 Фотошарп 256 оттенков серого + 20 3 час. 00 мин.
Научился делать картинку "в оттенках серого"
---
Решил сделать проект на WPF.
Здесь стандартный набор классов значительно отличается (в общем-то сама работа с графикой отличается), например, класса Bitmap здесь нет вообще.
Пришлось много гуглить и читать SO и MSDN, в итоге написал класс-обертку над WriteableBitmap для удобной попиксельной работы с изображением
2016-08-03 11:20 Мат Конём и Слоном ПОЛУФИНАЛЬНЫЙ УРОК + 20 5 мин.
---
---
Курс очень интересный.
Что самое необычное - недооцененность его сложности и разнообразности...
Задумка как одного урока к курсу комбинаторике переросла во что-то чуть ли не большее чем сам курс комбинаторики :)
2016-08-03 11:16 Мат Конём и Слоном План визуализации + 20 25 мин.
Продумывать план визуализации приложения
---
---
2016-07-15 18:38 Мат Конём и Слоном Игра без массива + 20 15 мин.
Научился читать из файла по определенной позиции
---
Реализовал кеширование БД, массив оставил =)
Мало ли... для затяжных игрищ =)
2016-07-15 18:02 Мат Конём и Слоном Шестнадцать мегабайт + 21 20 мин.
Читать и писать файлы побайтово
---
---
2016-07-15 17:16 Мат Конём и Слоном Экономия памяти + 20 25 мин.
Оптимизировать размер данных
---
Ну раз уж мы сеттер написали, то надо его использовать, незачем лишний раз генерировать отдельную структуру:
вместо
move.MoveFrom = new Coord { index = 0 };
запишем просто
move.MoveFrom.index = 0;
2016-07-15 16:37 Мат Конём и Слоном Сериализация матрицы ходов + 20 40 мин.
Бинарной сериализации .Net
---
---
2016-07-15 16:01 Мат Конём и Слоном Нано Шахматы + 20 5 мин.
---
---
НаноШахматы выполнил ранее
2016-07-15 15:53 Мат Конём и Слоном Мат в 33 хода. + 20 1 час. 00 мин.
Проигрывать в шахматы своей программе
---
0. Патовых ситуаций в нашей базе в принципе быть не может, так как мы решаем с конца, с матовой позиции и выполняем назад только ВОЗМОЖНЫЕ ходы.

2016-07-15 13:27 Мат Конём и Слоном 156 матов в полтора хода + 20 40 мин.
Научился перебирать возможные ходы назад для черного короля
---
---
2016-07-15 12:34 Мат Конём и Слоном Консольная шахматная доска + 20 10 мин.
Рисовать в консоли шахматную доску
---
---
2016-07-15 12:13 Мат Конём и Слоном Белая коробка + 20 20 мин.
Хранить позиции в массиве
---
WhiteBox сделал встроенным в Chess, все-таки вне контекста шахматного класса этот вайтбокс неактуален...
но для того чтобы не загромождать файл, сделал его partial
еще один + от этого - при использовании других nested классов в WhiteBox не требуется указывать префикс "Chess."
2016-07-15 10:49 Мат Конём и Слоном Генерация белых ходов + 20 55 мин.
Реализации хода назад для трех шахматных фигур
Пришлось кое-что подебажить, вкралась очепятка
Непонятно, почему не используете String Interpolation (Или у вас C# не шестой?)
Код становится более лаконичным:
public string ChessNotation => $"{(char)('a' + x)}{8 - y}";

Или здесь:
Console.WriteLine($"{++qty} {white.Combo.GetFen()} {white.Combo.WhoThis(white.MoveFrom)}{white.MoveFrom.ChessNotation}-{white.MoveTo.ChessNotation}");
2016-07-14 00:08 Мат Конём и Слоном Псевдо-алгоритм перебора + 20 20 мин.
Рисовать
Вспомнить буквы
---
2016-07-13 18:48 Мат Конём и Слоном Белая и чёрная очередь + 20 20 мин.
Поэтапно реализовать алгоритм.
---
---
2016-07-13 18:05 Мат Конём и Слоном Чистый ход + 20 5 мин.
К-Р-А-С-О-Т-А !-!-!
---
То что он Coord зелененьким подчеркивает - решается очень просто:
набираете слово override, появляется список что можно заоверрайдить, двойной клик на нужном методе и он добавляется в код - генерируется автоматически, в принципе можно так и оставить уже и все будет работать (тем более у нас эти методы нигде и не используются)
2016-07-13 17:42 Мат Конём и Слоном Рефакторинг кода + 20 50 мин.
Рефакторингу!
---
Сеттер пригодился при реализации AllCoords() :)
Логично было бы методы IsKnight/Bishop/King реализовать внутри Combo, тогда этот хвост "combo." не пришлось бы тащить везде за собой
да и проверка шаха/мата... что может быть прекраснее: combo.IsCheckmate()  :)
Ну да ладно, пока и так хорошо
Еще, кстати, вместо тернарного: (a > 0 ? 1 : -1) можно использовать Math.Sign(a)
-------
PS: У меня сразу запустилось без ошибки, те же 232 позиции было выведено на экран...
Так что я даже и не знаю, где вы могли ошибиться, скорее всего опечатка и меня от этого спасло Find/Replase
2016-07-13 14:35 Мат Конём и Слоном Две структуры + 20 12 мин.
Азам рефакторинга.
Решиться на него.
Операторы сравнения реализовал в виде лямбда-выражений, ну не зря же мы их изучали в конце-то концов :D
Для поля Index добавил и сеттер на всякий случай.
2016-07-13 14:15 Мат Конём и Слоном Ворошиловский слон + 20 25 мин.
Научился реализации метода проверки атаки клетки слоном.
---
---
2016-07-13 13:37 Мат Конём и Слоном Нотация Форсайта - Эдвардса + 20 15 мин.
Реализации построения FEN-нотации
---
---
2016-07-13 13:18 Мат Конём и Слоном Конь ходит буквой Гэ + 20 12 мин.
Читать википедию.

---
---
2016-07-13 13:10 Мат Конём и Слоном Королевское правило + 20 17 мин.
Писать цикл для перебора всех клеток вокруг черного короля.
Писать проверку атаки коня на клетку.
---
---
2016-07-13 12:43 Мат Конём и Слоном Перебор всех комбинаций + 20 20 мин.
Перебирать все возможные взаимные расположения фигур на доске.
---
---
2016-07-13 12:17 Мат Конём и Слоном Постановка задачи + 20 10 мин.
Ставить задачу
Искать тематическую картинку в интернете
---
2016-06-11 14:24 Шифрование Полиалфавитный шифр Виженера + 20 10 мин.
Научился шифровать по методу полиалфавитного шифра Виженера
---
---
2016-06-10 19:05 Шифрование Перестановочный шифр - 2 этап дешифровки + 20 5 мин.
---
---
Выполнил задание на позапрошлом уроке.
2016-06-10 19:02 Шифрование Перестановочный шифр - 1 этап дешифровки + 20 5 мин.
---
---
Выполнил всё на прошлом уроке
2016-06-10 18:58 Шифрование Перестановочный шифр - 2 этап шифровки + 20 30 мин.
  1. Сoздaть cтoлбцы втоpой сетки.
  2. Скoпиpoвaть их в нyжном порядке.
  3. Сфopмиpoвать шифpовку.
  4. Пpoвepить рaботу прогpаммы.
  5. Рacшифpoвать cообщение и нaписать oтвет.
---
---
2016-06-10 17:45 Шифрование Перестановочный шифр - Алфавитный ключ + 21 20 мин.
  1. Сoздaть фyнкцию getAbc().
  2. Пoмecтить pезyльтат её рабoты в текстoвое поле textKeyAbc.
---
Подход автора, конечно, сомнителен...
GetAbc() - костыль тот еще... Функция (которая возвращает значение) попутно изменяет еще какие-то глобальные данные!
Правильно было бы, конечно, вынести весь этот функционал в отдельный класс и обращаться к нему чтобы получить ключ стринговый или массив abc.
Да и использовать можно было бы какую-нибудь коллекцию словарного типа и с помощью Sort() отсортировать сразу и abc и ключ, но это, конечно, в данном примере не эффективно и привело бы к лишним затратам ресурсов и времени
2016-06-10 15:25 Шифрование Перестановочный шифр - 1 этап шифровки + 20 15 мин.
  1. Сoздaть oбpабoтчик кнопки Шифровать
  2. Дoбaвить пpoвеpки на исходныe данные.
  3. Сoздaть вce стoлбцы.
  4. Зaпoлнить вce стpочки.
  5. Пpoвepить рaботу прогpаммы.
---
---
2016-06-10 14:20 Шифрование Перестановочный шифр - Форма + 1 15 мин.
  1. Сoздaть лeвyю чаcть формы.
  2. Пpoдyблиpовaть для правой чаcти.
  3. Пepeимeновaть текстовые пoля, кнопки и сeтки.
---
---
2016-06-10 13:50 Шифрование Перестановочный шифр + 20 15 мин.
Узнал чем кодирование отличается от шифрования
---
---
2016-06-03 16:05 Бинарная жизнь VIP урок. Игра Жизнь + 21 3 час. 00 мин.
Научился реализации игры "Жизнь"
---
---
2016-06-02 19:47 Бинарная жизнь ФИНАЛЬНЫЙ УРОК + 20 10 мин.
Курс помог понять, что для достижения целей необходимо "выйти из зоны комфорта" (как сейчас любят говорить) и в корне поменять жизненные устои и привычки.
Материальные блага если и меняют жизнь в лучшую сторону, но только в краткосрочной перспективе.
---
---
2016-06-02 19:35 Бинарная жизнь Смысл жизни + 21 30 мин.
Научился:
  1. Внимaтeльнo пoслyшать.
  2. Пoэкcпepиментиpовать.
  3. Нaйти и пpикpeпить сoответствующий мoтиватоp.
---
---
2016-06-02 16:29 Бинарная жизнь Новое поколение + 20 20 мин.
Научился:
  1. Сoздaть мeтод SetRule (int nr).
  2. Сoздaть мeтoд Next ().
  3. Пoмecтить в цикл вызoв этих мeтодов.
  4. Пoэкcпepиментиpовать с рaзличными прогpаммами.
---
---
2016-06-02 13:04 Бинарная жизнь Конструктор организма + 20 20 мин.
Научился:
  1. Сoздaть нoвый кoнсoльный проект.
  2. Избaвитьcя oт static.
  3. Сoздaть клacс Logic и oписать его пoля.
  4. Сoздaть кoнcтрyктор.
  5. Рeaлизoвaть метoды SetRandom(), SetMiddleOne().
  6. Сдeлaть мeтoд отoбражения Life().
---
---
2016-06-02 09:29 Бинарная жизнь Правила игры + 20 1 час. 00 мин.
"Играть в жизнь"
---
Люблю нагромождение формул в Excel :)
По мне Excel - один из самых лучших инструментов автоматизации расчетов, причем возможна реализация довольно сложных программ, с условиями, циклами, подпрограммами.
Я на работе целые проекты (электроснабжения) рассчитываю на одном листе экселя :)
2016-05-30 19:58 НаноШахматы VIP. PHP - Рисуем буквы + 20 5 мин.
Научился менять толщину линий при рисовании в PНР
---
   
2016-05-30 19:56 НаноШахматы VIP. PAINT - Координаты отрезков + 20 10 мин.
Грязным хакам =)
---
)))
2016-05-30 19:50 НаноШахматы VIP. PHP - Создание картинки + 20 30 мин.
Научился рисовать в PHP.
---
Воспользовался тем, что мое отчество начинается на одну букву с именем, написал рисование букв в цикле =)
2016-05-29 10:14 Entity Framework Добавление - Извлечение + 20 1 час. 30 мин.
Научился писать и читать БД программно.
---
Все вроде понятно и просто.
Но столкнулся с проблемой - не срабатывает user.Roles.First() - пишет что "последовательность не содержит элементов"
Поставил брейкпоинт - и в правду, почему-то у юзера Roles.Count = 0, хотя в БД все добавилось нормально...
Надеюсь, будет еще вебинар с Константином, чтобы можно было задать возникшие в процессе проработки вопросы...
2016-05-29 09:20 Entity Framework Один за всех и Все за одного + 20 50 мин.
Научился реализации связей один-к-одному, один-ко-многим, много-ко-многим с использованием Entity FW!
---
Создание базы данных как Объектно-ориентированной Модели - это круто! Все логично и понятно!
Кстати, у кого не установлена Managment Studio - в VS есть тот же SQL Server Object Explorer, искать в меню View.
Да и даже если установлена - проще все равно прямо не выходя из VS открыть и посмотреть.
2016-05-28 14:57 НаноШахматы ФИНАЛЬНЫЙ УРОК + 20 10 мин.
Курс в целом прикольный, но, имхо, от такого фотокурса толку мало и для начинающих (а я таковым и являюсь) он скорее вреден чем полезен.
Хотя, если призадуматься, кое-чему все-таки я научился:
- Азы HTML - тут без наворотов;
- Азы CSS - тут тоже минимум;
- Азы PHP - тут уже посерьезнее, работа с циклами, массивами, функциями, пришлось даже по мелочи погуглить;
- Азы JS - тут очень поверхностно и написанный код новичку не понятен, не понятны используемые сущности и их методы;
- также, для абсолютного новичка в вебе, мне пришлось покопаться чтобы понять как запустить php-скрипт, не все очевидно, в какую папку положить файл, что должно быть запущено, по какому адресу запускать в браузере...
---
Что можно сделать?
Из "красоты" самое первостепенное - чтобы фигура хваталась за середину, а не за нижний правый угол.
Далее, для начала, проверку правильности ходов
Консоль для вывода ходов
Часы
...
2016-05-28 14:39 НаноШахматы JavaScript - Я тебя съем! + 20 5 мин.
Научился реализации перетаскивания фигур со взятием.
---
Детский мат, это слишком сложно!
Даёшь "дурацкий мат" - в 2 хода!!!
2016-05-28 12:35 НаноШахматы JavaScript - Завершение хода + 20 15 мин.
Научился реализации Drag'n'Drop
---
Как реализовать задание со звездочкой пока не знаю - JS не владею, но в принципе есть догадки, что надо использовать не appendChild, а replaceChild, либо после аппенда удалять предыдущего потомка.
Ну да ладно, посмотрим как это реализовано в следующем уроке.
2016-05-28 12:18 НаноШахматы JavaScript - Посадку давай! + 20 5 мин.
Научился "разрешать посадку"
---
---
2016-05-28 12:13 НаноШахматы JavaScript - Тронул? Коди! + 20 5 мин.
Научился добавлять функции JS в HTML-код странички, научился добавлять вызов этой функции по событию.
---
---
2016-05-28 12:04 НаноШахматы HTML5 - Поднятие фигур + 20 5 мин.
Научился выдавать разрешение на захват объекта.
---
---
2016-05-28 11:58 НаноШахматы PHP - Превращение букв + 20 24 час. 00 мин.
Научился писать функции и свитчи в PHP.
---
Не понятно, зачем функция, в прошлом еще уроке сделал массивом.
Хотя понятно - просто в учебных целях, ведь на самом деле такие функции состоящие из одного свитча никто не пишет, массив тут сам напрашивается...
2016-05-28 11:53 НаноШахматы PHP - Массив для фигур + 20 30 мин.
Научился пользоваться массивами PHP.
Задание со звездочкой!
   
2016-05-28 08:02 НаноШахматы PHP - Циклы для клеток + 20 30 мин.
Научился азам PHP.
---
---
2016-05-27 05:48 НаноШахматы HTML - Фигуры на Доске + 20 10 мин.
Размещать фигуры на доске.
---
---
2016-05-26 19:19 НаноШахматы CSS - Шахматная доска + 20 25 мин.
Научился подключать CSS к HTML-файлу.
---
Пришлось уменьшить размеры клеток доски, на ноутбуке в масштабе 100% не помещается на экран.
2016-05-26 05:53 НаноШахматы HTML - Шахматные фигуры + 20 5 мин.
Научился азам HTML.
---
---
2016-05-24 19:28 Entity Framework Миграция Базы + 20 15 мин.
Научился выполнять миграции БД.
---
---
2016-05-24 19:04 Entity Framework Использование MySQL + 20 30 мин.
Подключать БД MySQL к EF.
---
---
2016-05-19 20:20 Entity Framework Основные приемы работы с БД через EF + 20 40 мин.
Научился делать запросы к БД.

---
---
2016-05-19 19:36 Entity Framework Подключение БД по методу CodeFirst + 20 1 час. 00 мин.
Научился пользоваться графическим интерфейсом пакетного менеджера NuGet.
Научился добавлять в проект Entity Framework.
Научился создавать контекст/модель.
Научился создавать классы-строки таблиц.
Научился добавлять таблицы в БД.
Научился создавать инициализатор БД.
---
---
2016-05-15 12:10 Entity Framework Создание приложения + 20 20 мин.
Создавать форму для логина пользователей.
---
---
2016-05-15 08:12 Entity Framework Введение в EF + 21 20 мин.
Узнал о существовании Entity Framework, о его функционале и возможностях, а также о вариантах использования.
---
---
2016-05-10 19:14 Хранитель экрана ФИНАЛЬНЫЙ урок + 20 20 мин.
Записывать видеообзор приложения.
Записывать видеообзор приложения.
---
2016-05-08 07:43 Коллекция графов ФИНАЛЬНЫЙ УРОК + 20 5 мин.
Курс в целом очень полезный. В первую очередь из-за знакомства со списками/коллекциями, на самом деле это такая нужная "обыденная" вещь, без которой ни один более-менее средний (про большие уж не говорю) не обходится, поэтому знать и уметь пользоваться нужно обязательно.
Ну и как бонус курса - знакомство с графами и алгоритмами их обхода вширь и вглубь.
---
Курс очень понравился, здесь не было чего-то особо запутанного и сложного для понимания.
Единственное замечание - это автор немного "перемудрил" с алгоритмом добавления ребер на графе шахматной доски, но я реализовал свой алгоритм, поэтому для меня это не минус.
2016-05-08 07:35 Коллекция графов Глубокий алгоритм + 20 20 мин.
Научился реализации алгоритма поиска вглубь в коде, а также познакомился с очередной коллекцией - стеком (Stack).
---
При закрашивании лейбла, достаточно рефрешить только его, а не целиком панель или форму, тогда не будет мерцания и отпадет необходимость в перерисовке ребер, да и работать будет всё немножко быстрее.
Как показывал в своем отчете у меня свой алгоритм добавления ребер на шахматной доске, поэтому алгоритм перебирает чуть в другой последовательности.
2016-05-08 07:07 Коллекция графов Глубокий поиск + 20 15 мин.
Обходу графа по алгоритму поиска вглубь.
---
---
2016-05-08 06:51 Коллекция графов Визуализация процесса + 20 20 мин.
Научился использовать делегаты для выполнения определенных действий в вызывающем классе/объекте по сигналу из вызываемого класса/объекта.
---
---
2016-05-08 06:19 Коллекция графов Широкий пошаговый ход + 20 15 мин.
---
---
Задание под звездочкой пока выполнять не стал, есть идея сделать это, используя делегаты/события, но эту тему еще не изучал, поэтому самому не просто реализовать.
Посмотрю реализацию в следующем уроке.
2016-05-07 07:40 Коллекция графов Широкий алгоритм + 20 40 мин.
Научился реализации алгоритма поиска вширь в коде.
Разобраться с изменением коллекции при ее переборе.
На сколько я понял, изменение коллекции при переборе не рекомендуется, в этом случае рекомендуют формировать новую коллекцию.
Я примерно так и сделал, заодно и реализовал интерфейс ICloneable в нашем классе графа.
Немного кривенько пока вышло, но, посмотрим, что предлагает нам следующий видеоурок.
2016-05-07 06:35 Коллекция графов Широкий поиск + 20 25 мин.
Научился обходить граф вручную.
---
---
2016-05-06 18:53 Интернет-магазин Добавление товаров + 20 10 мин.
Добавлять записи в таблицу и выводить таблицу на экран посредством SQL-запросов.
---
---
2016-05-06 18:39 Интернет-магазин Запуск базы данных + 20 15 мин.
Научился создавать базу данных и добавлять в нее таблицу.
---
---
2016-05-06 18:30 Интернет-магазин Установка EasyPHP + 20 10 мин.
Устанавливать и запускать EasyPHP with Devserver
---
---
2016-05-06 18:04 Семантика Я решил всю Семантику! + 20 16 час. 00 мин.
По курсу в целом - натренировал навыки написания консольных приложений, освоил синтаксис языка.
---
Курс пройден, все задачи решены на 100%, хотя, конечно, с некоторыми условиями/решениями/тестами я не совсем согласен.
2016-05-03 12:44 Коллекция графов Шахматная доска + 20 40 мин.
Научился разбираться в нагромождениях кода и приводить его в хоть сколько-то читаемый вид.
---
Добавление ребер "шахматного" графа сделал по своему, в уроке код избыточный и неочевидный, имхо.
Сделал двумя вложенными циклами, сначала проходим и добавляем горизонтальные связи, потом проходим и добавляем вертикальные связи.
Обошелся вообще без условного оператора.
Вообще, строго говоря, в шахматах нет ни одной фигуры, которая ходит по этому графу, например, если бы мы писали граф возможных ходов для ладьи, то, например, при положении фигуры в вершине 10 есть возможные ходы не только в 2, 9, 10 и 18, но и 26, 34, 42, 50 и т.д.
2016-05-03 11:27 Коллекция графов Отображение + 20 25 мин.
Научился перебору членов коллекции, которые являются членами коллекции.
---
Добавил обработчик события для перерисовки ребер при необходимости.
2016-05-03 09:28 Коллекция графов Инициация + 20 25 мин.
Научился создавать элементы формы в процессе выполнения программы.
---
Ну пока сильно не заморачивался с выводом - вывел все лейблы на окружности.
Будем смотреть как реализовано в уроках.
2016-05-03 08:16 Коллекция графов Рёбра + 20 20 мин.
Научился создавать вложенные коллекции, их инициализировать и добавлять элементы на все уровни вложенности.
Научился пользоваться созданным классом графа, добавлять в него вершины и ребра.
Не утонуть в обилии скобочек.
Считаю, что инициализировать список ребер нужно сразу при создании вершины.
С моей точки зрения это более логично, я, собственно, так и сделал.
2016-05-03 07:48 Коллекция графов Вершины + 1 20 мин.
Пока в общем-то ничего нового, ждем добавки :)
---
В текущей реализации пока не очень понятно как мы будем хранить ребра...
Единственное что приходит в голову - это создать коллекцию ребер, которая будет по тому же индексу, что используется в коллекции "вершины" хранить в себе массив/коллекцию индексов вершин связанных с этой. %)
2016-05-03 07:13 Коллекция графов Граф + 20 15 мин.
Освежил в памяти начальные сведения из теории графов.

---
Как вариант:
List<List<int>> g = new List<List<int>>();
ну или даже массив массивов, например: int[][] g;
F вообще, конечно, в каждой конкретной задаче нужно использовать реализацию которая подойдет конкретно к этой задаче:
Например, если нам нужно хранить еще и цвет, то создаем структуру (ну или класс) "Вершина" с полями "Цвет" и "Список смежных вершин", затем создаем коллекцию этих "Вершин"
2016-05-02 15:56 Коллекция графов BitArray + 20 20 мин.
Познакомился с коллекцией BitArray.
Независимо от размера коллекции, она использует 110 байт в служебных целях, поэтому если у нас до 110+4=114 элементов ее использование экономии памяти не дает, хотя тут другой вопрос - сколько накладных расходов при использовании обычного массива?
---
Составил таблицу истинности ф-й And, Or, Xor.
2016-05-02 14:39 Коллекция графов Hashtable + 21 25 мин.
"Попробовал" Hashtable и HybridDictionary.
---
Результаты тестов на скриншоте!
2016-05-02 13:57 Коллекция графов ListDictionary + 20 20 мин.
Познакомился с коллекцией "словарного" типа - ListDictionary, такие коллекции позволяют хранить совместно с элементами коллекции ключи, для доступа и поиска этих элементов, причем ключи эти тоже являются любыми наследниками object.
---
Отдельно познакомился с методом Remove(), в отличие от коллекций-дженериков здесь идет поиск члена коллекции по его ключу, а не номеру.
2016-05-02 09:49 Коллекция графов Array vs List + 20 15 мин.
Научился использовать класс Stopwatch для проведения замеров времени.
---
Провел эксперимент с указанием количества элементов массива и коллекции при создании, так вот типизированный List работает в этом случае примерно с такой же скоростью, что и обычный массив
2016-05-02 09:25 Коллекция графов List + 20 15 мин.
Усвоил простейшие приемы работы с типизированной коллекцией List<>.
---
Изучил метод Insert() - он позволяет вставить в коллекцию элемент в выбранную позицию.
Опять же, при использовании массива нам пришлось бы вручную переместить часть элементов, коллекция же все делает сама в автоматическом режиме.
2016-05-02 08:52 Коллекция графов ArrayList + 20 15 мин.
Узнал о существовании ArrayList, BitArray и прочих реализациях коллекций.

---
Поэкспериментировал с методом RemoveAt(int) - он позволяет удалить из коллекции элемент с заданным индексом.
В этом как раз огромное отличие от обычного массива - в обычном массиве, чтобы удалить элемент из середины пришлось бы перемещать часть элементов вручную
2016-05-01 07:08 Итератор ФИНАЛЬНЫЙ УРОК + 21 3 мин.
По курсу в целом.
Курс короткий (буквально на 3-4 часа со всеми перерывами на попить чайку), но на самом деле очень ценный (по крайней мере оказался для меня).
Магия интерфейса IEnumerator/IEnemerable и ключевых слов foreach()/yield завораживает.
Что называется - однозначно мастхэв.
---
Приложил книгу, о которой говорил в первом уроке
||
V
2016-05-01 07:00 Итератор Итератор. Один метод вместо классов. + 20 10 мин.
Научился использовать возможности интерфейса перечисления без создания специального класса, наследующего этот интерфейс.
---
Возможность, конечно, очень интересная, но смысла от нее я не вижу никакого, если мы уж пишем такой метод, то логично его выделить в отдельный полноценный класс, отвечающий всем канонам IEnumerator.
В теле цикла foreach() метода Start() добавил строчку
if (j > number) break;
после вложенного цикла while(), т. к. если начальное число большое, а его делители маленькие, очень долго приходится ждать пока он там впустую прогонит цикл до конца, хотя множители все уже найдены...
2016-05-01 06:38 Итератор Итератор. Список простых чисел. + 21 10 мин.
Освежил в памяти работу с List<> (шутка, List не забыть, т. к. он очень часто используется)
---
Теперь алгоритм очень прост для восприятия, чист и понятен.
В конкретно нашем случае двойку можно было не сохранять в список, т. к. у нас потом идет перебор только по нечетным числам, которые заведомо на 2 не делятся, но мы с завидной упрямостью каждое все же пробуем разделить.
Хотя, конечно, класс от этого перестанет быть универсальным, но ведь у нас все же нет публичного доступа к List<long> primes из вне и если нам потребуется список простых чисел еще раз, мы начнем генерировать его заново... %)
2016-04-30 08:15 Итератор Итератор. Волшебное слово yield. + 20 25 мин.
Узнал новое ключевое слово - yield.
Вникнуть заново в алгоритм
> Сфopyлиpовaть своими словaми, что такoе yield.
yield используется для возвращения поочередно членов перечисления, при этом текущее состояние перечисления сохраняется.
Для завершения итераций используется конструкция yield break.
2016-04-30 07:38 Итератор Итератор. Зачем нужно два класса + 20 20 мин.
Теперь понятна потребность в двух интерфейсах, все более-менее становится на свои места.
---
---
2016-04-30 07:09 Итератор Итератор. Перебор простых чисел. + 20 15 мин.
Гуглить список пятичначных простых чисел.
---
---
2016-04-30 06:40 Итератор Итератор. Перебор чисел в итераторе. + 20 10 мин.
Организовывать перечисление в методах IEnumerator.
---
---
2016-04-30 06:20 Итератор Итератор. Создание пустого итератора. + 20 15 мин.
Создавать класс, который наследует один или несколько интерфейсов
---
> Нaпиcaть, чтo такoе итератoр свoими словами.
Итератор - это такой интерфейс, который должен уметь отдавать последовательно члены "своей последовательности".
Кстати, массив в .Net (класс Array) тоже наследник IEnumerable, поэтому он позволяет перебирать элементы в цикле foreach.
2016-04-30 05:53 Итератор Итератор. Разложение числа на простые множители. + 20 10 мин.
---
---
Когда я слышу что-то про простые числа - всегда вспоминаю замечательную книгу:
Дербишир, Джон. Простая одержимость. Бернхард Риман и величайшая нерешённая проблема в математике.
Всем интересующимся читать обязательно, книга читается не хуже чем хороший детектив + с драматической подоплекой.
Многие думают (да и я думал), что простые числа, да и вообще теория чисел придумана математиками для себя лишь для развлечения, но на самом деле теорема о распределении простых чисел так широко используется и связана с такими областями физики, что вы будете ... в шоке. Подробнее в книге ;)
2016-04-28 15:32 Новые технологии Модульное тестирование + 20 50 мин.
Научился создавать проект для модульного тестирования. Писать простые юнит-тесты для своего класса и его методов.
---
Что-то интересное и новое, хотя, я полагаю, написание юнит-тестов - довольно рутинная работа...
2016-04-23 17:52 Бурные потоки ФИНАЛЬНЫЙ УРОК + 22 10 мин.
По отношению к курсу в целом.
Курс достаточно интересный, позволяет изучить азы работы с потоками: их созданию и прерыванию, заданию приоритетов и обработке запросов на прерывание.
Пожалуй, особо сложного ничего не было лично для меня, единственное что смущает - это сам код змей, он достаточно запутан и вникнуть в него лучше особо не пытаться, задачу курса - усвоить азы работы с потоками - это решить не мешает.
Ожидал от курса более глубокого рассмотрения работы с потоками, хотя, возможно, для кого-то и этот объем будет достаточно сложен для понимания.
К сожалению, в это время года у меня традиционно очень мало времени, поэтому переписать код возможности сейчас нет, но он нуждается в большой работе, возможно даже в полном переписывании.
Если запал к июлю-августу не пропадет и не появится другого "неотложного" увлечения или идеи, то попытаюсь переписать код этих змей.
2016-04-23 09:50 Бурные потоки Смысл жизни + 20 25 мин.
Научился использовать внешние прерывания потока с какой-то пользой, завершение потока наполнять смыслом, так сказать.
---
---
2016-04-23 09:16 Бурные потоки Замри! + 20 30 мин.
Научился обрабатывать запросы на прерывание процесса и (при необходимости) противодействовать им.
---
---
2016-04-23 08:17 Бурные потоки Приоритет + 20 20 мин.
Узнал о Monitor и о способе задания приоритета потока.
---
При выводе легенды все же стоит использовать форматированный вывод, например:
Console.Write("#{0,-2}\t{1,3}", Thread.CurrentThread.ManagedThreadId, body.Count);
Самое главное здесь - выровнять длины змей по правому краю, т.к. если змея имеет длину 10, а потом уменьшается до 9, то этот нолик от десятки сам не исчезнет...
2016-04-22 20:10 Бурные потоки Бурная жизнь + 20 35 мин.
---
---
Очень сложный нетривиальный неочевидный алгоритм перемещения змей получается, но в принципе суть курса не в этом, а в изучении работы с потоками, поэтому не страшно.
> Пpидyмaть cвою фишкy и реализовaть, написaть, что сделал.
Добавил у змей поле для скорости speed, с помощью него у разных змей реализуется разная задержка в теле Run():
Thread.Sleep((10 - speed) * 25 + 50), где speed может быть от 0 до 9
2016-04-22 19:23 Бурные потоки Поток питонов + 20 25 мин.
Научился запускать код в отдельном потоке и базовой работе с этим потоком.
---
---
2016-04-22 18:41 Бурные потоки Поворот головы + 20 25 мин.
---
---
Питон не отображался в самом начале из-за проблемы в методе ShowMe:
            PutScreen(cHead, color, aHead[(int)arrow]);
            PutScreen(cNone, color, aNone);
т.е. он рисуется, а потом в том же самом месте затирается, если поменять строчки местами, то сразу все становится на свои места :)
2016-04-22 18:01 Бурные потоки Питонатор + 20 15 мин.
---
---
---
2016-04-22 06:10 Бурные потоки Зайчики + 21 15 мин.
---
---
> какие не статичные поля нужны питону?
Координаты тела и его длина, цвет, скорость и направление движения
2016-04-21 19:07 Бурные потоки Террариум + 20 15 мин.
---
---
---
2016-04-21 06:11 Бурные потоки Вступление + 20 15 мин.
---
---
Вопрос: какие ещё статические поля нужно добавить в класс Питона?
Ответ: Поле, массив для его представления.
2016-04-16 22:50 Webbot On-Line Подготовка формы + 20 45 мин.
Пока особо ничего нового.
---
---
2016-04-15 12:36 Хранитель экрана Режим предобзора и установка + 20 40 мин.
Научился с помощью вызовов функций WinAPI32 выводить свой скринсейвер в окне предпросмотра!
---
---
2016-04-15 11:26 Хранитель экрана Полноэкранный режим + 20 20 мин.
Научился выводить свою форму на весь экран и поверх всех окон.
---
Редактирование кода создания PictureBox было излишне, конечно, достаточно просто отредактировать параметры формы и PB сам растянется на всю нее.
2016-04-15 09:43 Хранитель экрана Параметры командной строки + 20 30 мин.
Научился работе с параметрами командной строки
---
---
2016-04-14 14:46 Хранитель экрана Использование реестра + 20 20 мин.
Научился работе с реестром Windows
---
Непонятно зачем автор хранит значения в виде строк, ведь это куча лишних шишек и конвертаций, есть ведь ключи реестра типа DWORD
2016-04-14 13:52 Хранитель экрана Применение настроек + 20 40 мин.
Передавать параметры из формы в форму
---
У компонента Button (кнопка) есть свойство DialogResult, изменив которое в конструкторе можно уже не писать код на присваивание.
У компонента TrackBar (движок с засечками) правильнее использовать событие ValueChanged все-таки, а не Scroll, т.к. оно должно охватывать изменение любым способом, например стрелками с клавиатуры, про Scroll я так не уверен...
2016-04-14 12:34 Хранитель экрана Форма настроек + 20 40 мин.
Создавать и открывать модальное окно.
---
---
2016-04-14 11:30 Webbot On-Line Видеообзор Игры + 20 15 мин.
Играть в "Небоскребы"
---
---
2016-04-05 19:25 Хранитель экрана ПОЛУФИНАЛЬНЫЙ урок + 1 1 час. 20 мин.
Научился записывать видеообзор приложения.
Набраться храбрости записать видео.
---
2016-03-26 10:41 Хранитель экрана Новый класс Polygone + 20 1 час. 30 мин.
Более глубоко изучил работу с классами.
Изучил работу со списками.
Изучил передачу массива объектов в параметрах.
---
---
2016-03-22 21:02 Хранитель экрана Новый класс Figure + 20 1 час. 20 мин.
Более детально изучил создание новых классов
---
По поводу статических переменных внутри класса - ключевое слово this к ним не относится, но вместо него можно использовать имя класса, так в методе InitMinMax(Pixel min, Pixel max) можно написать:
Figure.min = min;
Figure.max = max;
и все прекрасно работает
2016-03-20 18:38 Хранитель экрана Новый класс Graph + 20 50 мин.
Научился выносить сходный функционал в отдельный класс.
---
Автор выбрал не тот конструктор за основной.
Если выбрать за основной конструктор наиболее полный из них, то избежать повторного запуска кода легко.
На скриншоте можно увидеть мое решение, как видно код инициализации повторно не выполняется.
Еще как вариант (еще проще) - использование параметров по умолчанию, но конкретно в моем исполнении этот  вариант не подошел, т.к. у меня по умолчанию в качестве фона используется "естественный" цвет формы Windows, а такой цвет не является константой и компилятор на него ругается.
2016-03-15 20:46 Хранитель экрана Движение шарика + 20 50 мин.
Подгонять ответ прибавлением и отниманием единицы.
---
---
2016-03-15 19:28 Хранитель экрана Создаём графику + 20 50 мин.
В общем все просто и понятно, ничего пока нового.
---
Пункта рефакторинга кода в контекстном меню у меня нет, видимо это из-за более "свежей" версии VS2015.
Как оказалось, вместо этого нужно использовать пункт QuickActions и он автоматически предлагает извлечь метод.
2016-02-13 08:36 Демо игры Картинка с секретом + 20 1 час. 20 мин.
Ознакомился со средой VS; работе с окнами properties, toolbox, solution explorer; настройке свойств приложения через графический интерфейс VS, добавлению и привязке объектам событий; добавлению ресурсов в проект и работе с ними.
---
---
2016-02-11 20:32 Демо софт Вступительное слово + 21 40 мин.
Этот урок научил меня терпеливо смотреть видео и заставил скачать английский ленгпак к Visual Studio.
---
Прикладываю скриншот одного из последних приложений - это логическая игра MAX8. Игровое поле 8х8 клеток, каждая клетка содержит случайное число из диапазона [-8;-1]+[1;8]. Игроки ходят по очереди, один из игроков может ходить только по горизонтали, другой - только по вертикали. Цель игры - набрать больше очков, чем соперник.
Приложение написано в Delphi в 2011 году. После этого я забросил программирование (хотя в общем-то я и тогда был новичком в этом деле), сейчас возникло желание подтянуть и изучить один из современных ЯП (C#, Java или др.). Т.к. учился я давно, программирую в императивном стиле (вроде это так называется) и ООП мне дается не очень легко.
От курса ожидаю подтянуть ООП и научиться мыслить объектно. Ну и в итоге написать несколько приложений для Windows и Windows Phone (10 Mobile), этому должно поспособствовать наличие у меня смартфона на WP и отсутствие на этой платформе некоторых необходимых лично мне приложений.
  Нано-игры Арканоид - Уровень и ракетка   Открыто


  Повторение задач Stop. Think. Act. Review.   Открыто


Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Курс очень интересный. Что самое необычное - недооцененность его сложности и разнообразности... Задумка как одного урока к курсу комбинаторике переросла во что-то чуть ли не большее чем сам курс комбинаторики :)


Научился: Научился реализации перетаскивания фигур со взятием.
Детский мат, это слишком сложно! Даёшь "дурацкий мат" - в 2 хода!!!