Показаны сообщения с ярлыком programming. Показать все сообщения
Показаны сообщения с ярлыком programming. Показать все сообщения

19 июня 2025 г.

Попробовал новый редактор кода Zed

Редактор кода Zed, запущенный на Windows 11

На этот редактор кода я положил глаз очень давно - уже больше года многие программисты хвалят Zed и называют "убийцей VS Code". Я решил выяснить, насколько этот громкий титул правдив и забегаю вперёд отвечу, что только отчасти, но перспективы и амбиции у него нешуточные. 

У этого редактора кода была трудная судьба (все обожают вот такие истории). Многие уже и не помнят, что был когда-то отличный редактор кода Atom от команды разработчиков из GitHub (тех времён, когда его ещё не купила могущественная Microsoft). Ему довелось жить "в эпоху перемен", когда хороших и бесплатных редакторов кода почти не было (а neovim не был настолько популярен) и в этот момент "майки" выкатили на рынок тогда ещё легковесный и быстрый VS Code. Atom хоть и имел у себя много функций, приятно выглядел, но изобиловал многочисленными багами, а потом Microsoft официально купили Github и проект Atom спустя некоторое время решили закрыть из-за бесперспективности. И вот, спустя долгие годы тот же автор, что раньше делал Atom, выпускает на рынок свой прорывной и сверхбыстрый редактор Zed, написанный на rust - это был великолепный камбэк. 

Новый редактор все сразу восприняли с большим энтузиазмом (первыми его оценили пользователи MacOS, а потом Linux). VS Code к этому времени сильно "разжирел", долго открывался, а полная инсталляция с только необходимыми плагинами у меня весит 2,5 Гб (не сказать, что время первого открытия большая проблема, но иногда он начинал тормозить и при печати, особенно если в проекте много Typescript). Zed написан на быстром языке rust (быстрее только Zig и C++), открывается за секунду и имеет минималистский дизайн, в котором, тем не менее, есть всё необходимое для программиста: языковые сервера всех современных языков, совместная работа (можно даже говорить через микрофон!), git, работа со всеми нейронными сетями и агентами на высшем уровне (подобный режим агента в VS Code появится сильно позднее) и масса фишек, которые облегчают написание кода и навигацию по проекту. Кроме того у редактора кода Zed свой собственный графический движок (если можно это так назвать), который позволяет интерфейсу работать плавно на мониторах с высокой герцовкой - программисты с игровыми мониторами сразу оценят это, ведь разница в отзывчивости редактора по сравнению с VS Code заметна невооруженным взглядом. 

Редактор кода Zed запускает тесты в терминале с помощью Bun
С самого первого запуска этот редактор кода не ведёт пользователя за ручку. Сразу видно, что он рассчитан на уже зрелых программистов, которые не боятся заглядывать и читать документацию. И вам придётся это делать, чтобы настроить этот редактор под себя, ведь вся настройка ведётся исключительно в json файле (в крайнем случае можете взять чужие настройки и подправить под себя). В Zed первоклассная поддержка VIM-сочетаний и это самый лучший редактор помимо непосредственно helix и neovim, чтобы работать в подобном стиле. Да и обычные сочетания похожи на VS Code, так что долго привыкать не надо, чтобы поменьше прибегать к мышке во время написания кода. 
Мои настройки: шрифт текста CommitMono, шрифт интерфейса от JetBrains

Есть ли минусы? Конечно и для кого-то они будут критичными. Этот редактор разрабатывается долгое время, до релиза ещё очень далеко, есть баги (и их очень много), а плагинов в магазине крайне мало по сравнению с VS Code, у которого их сотни тысяч. Например, нету расширения для Tailwind и многих всяких "полезностей" для веб-разработчки, зато есть поддержка Astro и Svelte (современных и не очень популярных UI фреймворков). 

Авторы редактора не очень любят Windows (точнее корпорацию Microsoft, которая похоронила их Atom) и хотя их редактор прямо сейчас можно собрать под эту операционную систему, но разработчики не собираются этим заниматься официально, поэтому сборками занимаются посторонние люди, а качать сделанный чужими руками исполняемый код может быть чревато для безопасности, особенно если вы ведёте коммерческую деятельность. 

Большая часть функций этого редактора совершенно бесплатны, но всё таки это коммерческий продукт, потому что он использует нейросети для активной работы с кодом и предсказаний автодополнения при наборе, а за эти функции нужно будет доплачивать после окончания trial. Вы платите только за нейросети, когда как функция совместной работы будет бесплатной (привет IDE JetBrains). 

В данный момент я бы всем труженикам программистам рекомендовал присмотреться к этому редактору, как минимум запустить и сделать пару проектов в нём, особенно тем людям, которые зачем-то в 2025 году всё ещё сидят на остановившемся в развитии Sublime Text (тоже, кстати, платный редактор кода) - Zed его полностью уделывает по скорости работы и мгновенно открывает большие файлы. В Zed есть всё из коробки для работы с JavaScript, PHP, Python, Go и других популярных языков программирования. Новичкам я бы тоже мог смело рекомендовать Zed, потому что у него простой интерфейс и запутаться в нём трудно.  

Как не настраивай VS Code, а его интерфейс всё равно выглядит перегруженным

Ну и небольшое отступление, чтобы описать как я сейчас работаю с фронтендом на домашнем компьютере. Я полностью перешёл на замечательный Bun, который практически на 99% совместим с Node. Какое-то время я сидел на Deno версии 2 (где была заявлена совместимость с библиотеками из npm), но слишком часто в нём что-то не работало из библиотек и приходилось "воевать". Мне нравится в Bun скорость работы, поддержка Typescript из коробки, отличная стандартная библиотека и встроенная библиотека для тестирования. Благодаря всем этим возможностям я бы рекомендовал всем новичкам сразу начинать свой путь в изучении javascript именно с Bun, а не с Node. В отличии от Deno тут нет встроенного линтера и форматтера, поэтому данную работу у меня выполняет Biome (можно ещё использовать Oxc для линтинга, который быстрее Biome). Biome не только проверяет явные ошибки, но из коробки имеет великолепные правила, которые не дадут вам писать откровенно плохой код - он вас заставит соблюдать все хорошие правила современного JS и TS. Да, Bun ещё не готов полноценно для продакшен серверов (хотя он и крайне быстрый, но встречаются баги при очень больших нагрузках и при работе с базами данных), но для личных и новых проектов это отличный выбор, тем более его очень быстро заменить на Node, если что-то пойдёт не так. 

В качестве шрифтов мне приглянулись 0xProto и CommitMono. Вообще радует, что в последние годы шрифты для программистов продолжают появляться. Тема редактора VS Code Ganbaru. 

UPDATE: в октябре 2025 года появилась официальная сборка Zed под ОС Windows. Используйте её.  

12 июня 2024 г.

Свой личный ChatGPT: OLLAMA на локальном компьютере

Я считаю, что нынешнее взрывное развитие нейронных сетей это именно та вещь, которая приведёт наш мир к технологической сингулярности. Осталось буквально несколько лет, когда в недрах дата-центров мировых технологических гигантов заработает почти полноценный AI, который сможет заменять учёных, инженеров и изобретателей (ну и обычных программистов, конечно же). Такие вещи как Copilot и ChatGPT это технологии, которые поражали воображение 2 года назад и вот уже сейчас у нас есть сравнимые по эффективности технологии, которые могут полноценно работать не на серверах с профессиональными видеокартами Nvidia, а на самых обычных домашних компьютерах и видеокартах.

Любой пользователь с видеокартой последнего поколения (у меня RTX 4060 всего с 8 ГБ оперативной памяти и этой памяти уже откровенно не хватает) или достаточно мощным процессором может установить на свой компьютер средство запуска языковых моделей Ollama. К этому средству запуска полагается скачать языковую модель (LLM), благо программисты и корпорации постоянно выкатывают новые модели для открытых тестов. Вы можете скачать модель на 7 миллиардов (7B) параметров и она будет весить всего 5 ГБ (в среднем), а можете замахнуться на самую подробную модель и там вес будет около 50 ГБ и они будут очень медленными на обычной видеокарте. У меня быстро работают только 7B модели, потому что они полностью помещаются в память видеокарты. Для своих экспериментов я выбрал три популярные и новые модели в размере 7B и 8B: gemma (модель от Гугла), qwen2 (от китайской компании Alibaba, умеет общаться на разных языках) и codestral (создана на основе популярной mistral, но оптимизированная под задачи программистов, весит 22B и 13 ГБ, так что желательно иметь много видеопамяти и ОЗУ). 

Сама программа ollama относительно недавно начала работать с Windows, а до этого радовала только пользователей Linux и macOS, так же весной 2024 года была добавлена поддержка карт от AMD. Скачиваем дистрибутив с официального сайта и начинаем работать в командной строке, хотя я предварительно через системные переменные менял путь для скаченных моделей, чтобы они не качались мне на системный диск (как это сделать написано в документации, это не сложно). 

Ollama запущенная в терминале
После этого командой ollama run <Название модели> качаем и запускаем её в работу, но работать из терминала довольно неудобно, поэтому нам нужен фронтенд. Можно ещё запустить диспетчер задач и проверить, что ollama при генерации ответа использует именно GPU, а не CPU и занимает видеопамять карты. GUI есть разные, но самые популярные из них весьма навороченные и требуют запуска гигабайтного образа docker с кучей работающих сервисов, написанных на самых разных языках программирования.
Запущенный в браузере фронтенд Page Assist для общения с языковой моделью
И я хоть сам фронтендер, но поднимать такие проекты ради запуска обычного чата мне было откровенно лень, поэтому для себя я нашёл очень простое расширение для браузера Page Assist, которое даже умеет пускать ваши модели в открытый интернет, чтобы они там искали себе информацию, фильтровали её и выдавали вам ответ. Есть ещё более красивый проект чата Msty, но по каким-то причинам он отвечал у меня только на один вопрос, после чего всё зависало. В качестве аналога чат-приложения ещё можно попробовать десктопное приложение AnythingLLM, которое умеет подключаться к самым разным AI-движкам и имеет много настроек.
Запущенный в VS Code Twinny успешно объясняет, что делает этот код
Для того, чтобы подружить языковую модель с редактором кода, я использовал расширение под названием Twinny. Данное расширение не только умеет рефакторить код, но и поддерживает автодополнение с полноценным чатом, где вы можете общаться со своей моделью и она будет понимать контекст задачи (сканировать файлы проекта). Как видите, нейросети проделали очень большой путь со времён первых версий Copilot и таких штук как Tabnine, и их работа лично для меня похожа на маленькое чудо, хотя по факту это же просто продвинутый T9. 
Модель codestral правильно отвечает на каверзный вопрос по Javascript, а вот модель qwen2 его не осилила. 
Страшно сказать, но нейросети и ChatGPT настолько плотно входят в нашу жизнь, что уже сейчас есть молодые программисты, которые не используют поисковик, не читают документацию (а некоторые даже не учат английский язык, потому что AI отлично понимает почти все популярные языки мира), а просто задают вопросы нейросети и она почти в 90% случаев правильно отвечает, а они эти знания используют для обучения и успешного прохождения собеседований. Да что уж там говорить, если ChatGPT 4 версии сама без проблем может пройти собеседование на junior программиста - это ответ на вопрос, как скоро нейросети заменят их: в некоторых задачах они способны сделать это прямо сейчас (буквально один начинающий программист для бизнеса равен стоимости видеокарты для запуска нейросетки). Тут конечно всегда надо помнить, что если языковая модель не знает правильного ответа на вопрос, то она запросто начинает "галлюцинировать" и уверенно рассказывать несуществующие вещи и настоящему "кожаному" программисту всегда надо быть настороже, а для некоторых такое поведение инструмента вовсе недопустимо и они будут всё делать вручную, полагаясь только на свой опыт и экспертизу. 
Лучше ли бесплатные локальные модели Ollama того, что предоставляют крупные корпорации? Нет, всё таки у коммерческих моделей огромный пласт "знаний" и технологий под капотом, но модели для ollama уже сейчас могут в работе заменять Copilot (за счёт безопасной работы на локальном компьютере), ChatGPT 3.5 и AI поиск от Bing, тем более данные инструменты заблокированы для российских пользователей и требуют обхода блокировок. 

Ollama и языковые модели это невероятно крутой инструмент для всех программистов, им определённо можно и нужно пользоваться, но я бы предостерёг начинающих программистов от слепого доверия тому, что они выдают в качестве ответов. И уж точно не надо "жульничать" при написании своих первых программ, когда вы только начали учиться программировать: вы должны сами набить все шишки и разбираться в том, как работает или не работает код. 

4 июня 2024 г.

Шрифт Maple Mono

В большинстве случаев программисты используют в своих редакторах кода шрифты типа Fira Code или JetBrains Mono (самый лучший вариант, на мой взгляд), кто-то использует Cascadia Code от Microsoft, а пользователи macOS даже и этим не заморачиваются и чаще всего не меняют системные шрифты. Собственно так поступал и я, а редкие эксперименты со шрифтами убедили меня, что лучше чем эти самые популярные шрифты сделать очень трудно. Дело в том, что разработка шрифта вообще очень затратное по времени и деньгам занятие, а специалист разрабатывающий шрифт для редактора кода должен быть не только умелым дизайнером, понимающим в разработке шрифтов и особенностях их рендеринга на самых разных устройствах и экранах, но и профессиональным программистом, прочитавшим километры не текста, а именно кода. 

Товар лицом в фирменной теме от автора шрифта

Каково же было моё удивление, когда я увидел и установил шрифт Maple Mono от одного китайского разработчика! Невероятно продуктивный программист судя по его гитхабу, но он даже не указал своего имени. Это не только невероятно качественный и приятный шрифт для редактора кода, но он уже из коробки содержит все нужные для программирования лигатуры (есть даже специальные глифы для использования шрифта в терминале). Автор шрифта не просто взял за основу уже существующий шрифт Maple от Adobe (оригинал), а полностью разработал собственный вариант, но он на этом не остановился и ещё сделал локализацию шрифта для китайских пользователей (даже не представляю сколько там иероглифов нужно было нарисовать). Китайские программисты в очередной раз удивляют своей работоспособностью и талантом, но к сожалению их творения часто неизвестны за пределами Китая, потому что китайские программисты редко публикуются на сервисах западных компаний и вообще английского языка (стандартный язык для международного общения) избегают даже на GitHub в документации. 

Тема редактора Maple

В общем Maple Mono теперь в тройке моих самых любимых шрифтов для программирования вместе с Fira Code и JetBrains Mono. Этот шрифт я всячески рекомендую попробовать. У автора шрифта имеется ещё и тема для редактора VS Code, которая выглядит приятно и заслуживает того, чтобы поселиться в вашем редакторе.

P.S.: у меня IPS монитор с диагональю 27 дюймов и с разрешением 1440p (что-то около Retina), поэтому есть особенности с отображением шрифтов. 

6 ноября 2022 г.

Новые (старые) шрифты для программирования

Это будет короткий пост о том, что я себе нашёл новые интересные шрифты для программирования, которые определенно стоит попробовать. Долгое время я сидел на Jetbrains Mono и я считаю этот шрифт самым приятным, удобным и проработанным шрифтом для программирования вообще, но иногда даже идеальный шрифт приедается и хочется нового. 

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

Operator Mono
Первый это открытый шрифт Operator Mono, который выглядит достаточно необычно на экране, а начертание курсивом это просто нечто. Шрифт подойдет, если вы любите, чтобы ваш глаз за что-то цеплялся.
MonoLisa Font
Второй шрифт, после которого я и остановил поиск, был MonoLisa font (ссылка на официальный сайт). Профессиональный шрифт для программистов, очень качественный и интересный. Он продаётся на официальном сайте за деньги, но я нашёл уже пропатченную демонстрационную версию этого шрифта в одном из репозитариев. "Монолиза" превосходный, качественно сделанный шрифт - программировать с ним очень приятно. Советую попробовать его и вам. Так же заслуживает внимания открытый шрифт Monoid и вариация шрифта от Apple под названием Meslo.

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

В заключении посоветую два сайта, которые помогут вам продемонстрировать шрифты для программирования и возможно сделать выбор:

1. Programing Fonts Test Drive, где вы можете посмотреть все популярные шрифты вживую, можно даже выбрать язык программирования для примера или вставить свой код.

2. Coding Font - это игра, где надо выбирать приятный своему глазу шрифт. 

Update из 2024 года: сейчас я полностью перешёл на шрифт Mapple Mono, он мне очень нравится и пока его менять не собираюсь. Он поддерживается множество лигатур и прекрасно выглядит на экране. Для системных шрифтов в терминале отлично подходит Hack и JetBrains Mono с модификациями от Nerd Font. 

11 декабря 2021 г.

Обзор курса "Основы компьютерных и веб-технологий с Python от Диджитализируй" (2021)


Я вас категорически приветствую! Третьего дня, по совету проверенных камрадов решительно ознакомился с новым курсом по основам компьютерных и веб-технологий от известного в узких кругах блогера с Ютуба Алексея Голобурдина (на канале 90 тысяч подписчиков, что довольно много для такой тематики). Сразу скажу, что курс я не покупал (считайте меня бесплатным тестировщиком курса), но имею, так сказать, мнение и не могу молчать. Зря что ли я несколько часов своей жизни потратил на его просмотр? Так что сейчас здесь будет беспощадная и надеюсь конструктивная критика.

Положительные моменты

Сразу расскажу, что понравилось: простая и доходчивая подача материала, качественная камера и звук. Поверьте, в мире IT-курсов этого дорогого стоит (не все заморачиваются даже веб-камерой). Именно такая подача материала (с шутками и аналогиями из реальной жизни) и должна заходить новичкам, которые только входят в мир IT. Базовые вещи объясняются очень подробно и ученика буквально водят за ручку, показывают как скачать тот же VS Code, что там нажимать и как вообще гуглить (тоже ценный навык, любой программист это знает). 

Структура курса 

Начинается курс с напутственного слова и плавно переходит в азбуку компьютерной грамотности, где зрителям кратко рассказывают сведения из школьного курса информатики: что такое бит, какие бывают системы счисления и плавно переходят к сетевым технологиям (устройство примитивных сетей, интернета, работа DNS). Ну это лично мне повезло со школой и я все эти сведения знал и так (и даже в большом объёме), но возможно люди в возрасте или совсем юным школьникам это будет интересно.
Вторая часть курс посвящена более практическим вещам: таким как настройка среды для программирования, основам фронтенда и бэкенда на языке программирования Python. Начинается всё с установки Linux Debian (да это "классика" Linux, но дистрибутив явно не для новичков) под WSL в Windows, показывается базовая работа с командами в терминале (работа с файловой системой). В дальнейшем в разделе про Python даже показывается каким образом можно скачать и собрать свежую версию Python из исходников под Debian. Я бы не сказал, что новичкам от мира программирования прям нужно всё это знать, потому что это не самый простой и прямой путь к программированию. Сомневаюсь, что много программистов на работе занимаются себе сборкой среды для программирования из исходников, но знания этого не будет лишним, да и позволяет не бояться командной строки как инструмента. 
Каждый урок в курсе заканчивается простенькими тестами для самопроверки, а по итогам прохождения всего курса вам покажут как создать веб-сайт на Python и разместить его на хостинге в интернете. И уж совсем шапочно (бонусом) затронут многие другие технологии типа баз данных, git, docker и работу фреймворков javascript. Каждая из этих тем тянет на очень большой и подробный курс, а иногда на целый год обучения по профессии, как фреймворки в javascript. Сами понимаете, что много вам там не расскажут. Собственно, это относится вообще ко всему курсу - он обзорный, никаких глубоких знаний и навыков тут не даётся. Изучить html и css за один час, да ещё js прихватить? Вот это шутка, вы даже не все основы основ увидите и поймёте. 

Что не понравилось

Вы думаете я кукухой поехал, когда начал писать вступление в стиле такого токсичного и неоднозначного персонажа как Гоблина Пучкова? А вот автор курс запросто периодически начинает говорить его голосом, рассказывает его шутки, да и юмор у него весьма специфический. Профессиональный лектор или докладчик не имеет права выражать какие-то политические пристрастия и неоднозначно шутить, ну или как-то должен дистанцироваться от этого. 
Большинство действий выполняется в терминале WSL, хотя в чём была проблема сразу установить и использовать прекрасный Terminal Windows, который уже стал почти штатной утилитой? Он прекрасно работает с дистрибутивами Linux WSL из коробки и там хотя бы можно безболезненно размер шрифта в консоли увеличить, чтобы не нужно было накладывать эффект zoom в видеоредакторе. Да и само использование WSL не очень оправданно: я делал все примеры, включая работу с venv в Windows 11 и там без проблем всё работает, пусть и не так просто и сразу как в Linux. 
Периодически встречаются ошибки в произношении. Вот примеры того, что резануло ухо:
  • команда pwd была расшифрована как present working directory. В реальности она делает print working directory.
  • Тип boolean с ударением на букву A. Зачем коверкать английский язык?
  • Утилита curl была названа как "си-урл". Такое произношение имеет место быть, но если бы автор курса немного погуглил, то узнал бы, что большая часть программистов и сами создатели этой утилиты произносят её именно как "курл". Далее он начал устанавливать утилиту wget, чтобы скачать исходники Python, хотя с этой задачей прекрасно бы справилась эта же утилита curl, установленная ранее. Я понимаю, что места на ssd ноутбука не жалко, но зачем новичков учить захламлять диск и дублировать функциональность?
  • Символ # был назван "диезом". У этого символа огромное количество различных названий, но если читать не русскоязычную википедию, а английскую (чего я вам всегда рекомендую), то можно узнать, что он называется "октоторп", а никакого "диеза" там нет, хотя он есть в описании символа Юникода. 
Очень часто не хватает поясняющих надписей, схем и картинок. Я понимаю, что подготовка таких материалов занимает время и отнимает деньги (если картинка или фотография с фотостока платная), но можно хотя бы поиск в гугле открыть и картинки показать? Даже тот же Лаврик частенько хватает MS Paint и начинает мышкой схемы рисовать.
Всё это выглядит как придирки, но речь идёт об обучении новичков у которых ещё нет критического мышления и навыков активного гугления всего подряд. В курсе полно и других вещей, до которых можно докопаться. Далее же мы перейдём к совсем мрачным вещам. 

Позиционирование курса

Вот всё, что вы видите на картинке сверху - это маркетинговый буллшит. Никого этот курс не может прокачать, потому что представляет собой довольно таки базовые вещи в веб-разработке. Возможно это хороший старт для новичка, который вообще не представляет как работает этот ваш интернет и как делают сайты, но программистом сразу после этого курса вы не станете. 
С другой стороны, я видел фронтендеров, которые никогда не видели Linux, не могут рассказать как работает DNS, да и Python им до лампочки и при этом прекрасно справлялись со своей частью работы. Конечно такие ограниченные познания в своей области IT это плохо и наверняка на очередном собесе над таким ограниченным программистом зло посмеются, но чтобы начать программировать вам точно не нужны эти знания. Начать делать сайты можно буквально через 5 минут, скачав VS Code и установив пару полезных расширений. 
Курсы бывают разные, преподаватели бывают разные и вот так сразу опускать конкурентов это непрофессионально 
Ещё забавный момент там был, когда автор рассказывал про глупых разработчиков, которые делали сайты на конструкторе Tilda и не могли даже скопировать текст со страницы, но угадайте на какой платформе работает сайт самого автора курса? 
Изложенные в курсе знания относятся к базовым в веб-технологиях, буквально к азам и это отражено в названии курса, где фигурирует слово "основы". Вы без проблем всё изложенное там можете сами найти на Ютубе, прочитать в многочисленных статьях, даже посмотреть на ютуб-канале самого автора курса. Я уж не знаю смотрел ли автор курса видео под названием "Развод на курсах по Python", но он видимо решил, что было бы круто в курс по Пайтону вставить много поверхностной информации про бэкенд и сети. 

Стоимость курса 

Самая мрачная часть обзора. Курс продаётся на платформе Stepik, платформа представляет собой российский аналог Udemy. Стоимость курса в 30000 рублей просто запредельная для такого базового уровня знаний и навыков, которые там предлагаются. Я видел курсы и мастер-классы от именитых иностранных тьюторов и эти курсы не стоили больше 100$, а для жителей России и других бедных стран "жадные капиталисты" почти всегда делают скидку в 30-60%.
Не смотрите на полную стоимость. На Udemy часто дают скидку в 90% на все курсы.
Тут можно сказать, что любая вещь стоит столько, сколько за неё готовы платить и любая работа должна быть оплачена, а создание качественного курса это реально тяжелый труд. Но только курсы как информационный товар не существуют в информационном вакууме и есть аналогичные продукты от иностранных преподавателей, есть множество бесплатных курсы аналогичной тематики на отечественных образовательных платформах (например у Хекслета). Базовые знания там обычно отдают в бесплатных курсах в качестве рекламы, чтобы клиент потом "подсел" на более сложные платные курсы. Есть замечательный гарвардский CS50, переведённый на русский язык, если вы интересуетесь основами IT и который строго рекомендован всем новичкам в программировании для просмотра. На том же Stepik рядом лежат абсолютно бесплатные и более глубокие курсы по вёрстке и по Python. Хотя может я что-то недопонял и в данном конкретном курсе от "Диджитализируй" будут дополнительные и очень подробные модули про Python и остальные технологии, где уж точно всё расскажут подробно. 
Я, как IT-специалист самоучка (10 лет самообучения) не узнал из данного курса ровным счётом ничего нового. Более того, по многим темам я сам могу рассказать в несколько раз больше, но это всё, конечно же, мои личные проблемы. 
Из-за очень высокой стоимости данного курса я не могу его рекомендовать никому вообще. Будь стоимость раз в 30 меньше (ничего себе разброс), то его можно было показывать школьникам и пенсионерам, у которых есть желание посмотреть на новую профессию - вот в этом качестве он весьма неплох. База там даётся основательная, практический опыт работы у автора курса есть и это чувствуется в подаче. 

10 февраля 2020 г.

Мой рейтинг шрифтов для программирования

Наблюдая за профессиональными программистами, увлечёнными разработкой (а я пересмотрел очень много обучающих видеороликов от самых разных людей), я заметил, что далеко не всем интересна тема настройки своего редактора кода. Люди просто открывали редактор и начинали программировать: никому не интересно какая там тема установлена, какие шрифты и какие расширения можно установить для удобства. Чего уж там говорить, я видел пару десятков видеороликов, где VS Code сигнализировал о новом скаченном обновлении, но "учитель" даже не заморачивался, чтобы это обновление применить. И так на протяжении нескольких уроков, которые он очевидно писал на видео за один раз.
Лично я такого дзена и отрешенности от внешнего мира во время программирования не познал, поэтому потратил некоторое время на выбор самого удобного шрифта, самой симпатичной темы оформления (этот процесс может продолжаться вечно, потому что темы надоедают). В конце концов редактор кода это рабочее место программиста, а значит оно должно быть красивым и удобным, а строчки кода, набранные специальным шрифтом, это именно то, на что смотрит программист много времени (в реальности он больше смотрит в документацию, а не в свой код, но не будем об этом).
Шрифт: JetBrains Mono, тема редактора: Dracula
Итак, мой личный рейтинг шрифтов, которые сделают ваш код красивым (с визуальной точки зрения) и легко читаемым.
1. JetBarins Mono. Этим шрифтом в VS Code я начал пользоваться всего две недели назад и уже успел его полюбить. Данный шрифт давно применяется в профессиональных IDE от JetBrains, но вот недавно его сделали доступным для всех. Естественно шрифт с лигатурами, потому что это сейчас модно в шрифтостроении для программистов.
2. Fira Code. Очень популярный сейчас во всём мире шрифт от отечественного программиста Никиты Прокопова. Данный шрифт демонстрируется на официальной странице VS Code в документации и примерах, то есть им пользуются в самой Microsoft. Шрифт отлично читаемый и любим программистами за лигатуры.
3. Hack Nerd Font. На этом шрифте я просидел больше года и он меня абсолютно всем устраивал, пока я не отправился искать новых ощущений с другими шрифтами. Шрифт реально классный и разработан так, чтобы не раздражать своего пользователя при повседневном использовании - с этой задачей он справляется прекрасно.
4. Consolas. Это уже классика от Microsoft и он используется по умолчанию на системах с Windows в VS Code. Использовать шрифт Consolas для кода я начал почти 10 лет назад, когда писал свои первые проекты на PHP (тогда я использовал забытый ныне редактор Komodo Edit). Сейчас шрифт, конечно же, смотрится не так круто по сравнению с современными, специализированными шрифтами для программистов, но кто сказал, что классика должна удивлять? В конце концов, очень много программистов вообще сидят на Courier New или на похожих древних mono-шрифтах и им ничего новее не нужно. Аналогичным шрифтом в MacOS является San Francisco, который и используется по умолчанию в VS Code, а большего программистам на MacOS и не нужно, потому что от добра добра они не ищут (маководы вообще не любят что-то настраивать, а чтобы красиво было сразу из коробки).
5. Cascadia. Новый шрифт от Microsoft для программистов (лигатуры есть). Пока не снискал большой популярности, лично я его не использовал, но это точно очень качественный шрифт от профессионального дизайнера. Шрифт открытый и исходники выложены на github. Данный шрифт используется по умолчанию в новом Terminal Windows 10 и для командной строки он очень хорош.
6. Victor Mono. Ещё один отличный, бесплатный, лёгкий шрифт с лигатурами. Мне он показался похожим на Source Code Pro от Adobe. Я не фанат тонких шрифтов, так что не использовал их.
7. Operator Mono, Source Code Pro, Iosevka, Fantasque Sans Mono (ссылка на репорзиторий с архивами всех шрифтов). Отличные шрифты для программирования, которые обязательно упомянут в любом треде, где программисты их обсуждают, но лично я ими долго не пользовался по тем или иным причинам (меня полностью устраивал Hack Nerd font). "Радость" от использования шрифта так же зависит от качества вашего монитора (HD/Retina), личного восприятия и привередливости. Некоторые программисты, например, не любят, когда буква О и 0 (ноль) трудночитаемые и этого будет достаточно, чтобы не пользоваться таким шрифтом.
Учтите, что далеко не у всех шрифтов для программистов есть поддержка кириллицы (если разработчик не русскоязычный или не корпорация, то скорее всего кириллицы не будет) и комментарии на русском языке будут выглядеть в вашем коде ужасно (ещё один повод выучить английский и не писать комментарии на русском языке, потому что это непрофессионально).
Пример лигатур в Fira Code 2
Некоторые программисты считают лигатуры блажью, которые не дают ничего для программирования в плане повышения читаемости кода: ну подумаешь стрелочка => по другому рисуется, или знаки сравнения типа "больше равно" в виде одного символа.
Включение поддержки лигатур в редакторе VS Code
Долгое время и я этой моды не понимал, но два месяца назад включил их в настройках VS Code (да, их можно запросто включать и отключать, нужно только чтобы в вашем шрифте была поддержка лигатур) и так и не отключал, потому что лигатуры меня не раздражают. В любом случае рекомендуемую всем попробовать писать код с включенными лигатурами, и возможно, вы не сможете от этого отказаться. Многие программисты даже специальным образом патчат свои любимые шрифты, чтобы добавить туда поддержку лигатур. 

5 августа 2011 г.

Как написать полезную программу

Две мышки для вдвое эффективной работы (c) via Flickr
Я уже ранее писал о так называемых "программистах" с которыми мне приходится работать рядом в качестве рядового пользователя. Каждый раз когда я сталкиваюсь с продуктами их программистской жизнедеятельности и мне хочется закричать: "Вон из профессии! Вы недостойны называться программистами!". Больших трудов мне стоит сдерживать себя в рамках, хотя иной раз я не сдерживаю ругательств при работе с очередным программным монстром, призванным облегчить мои (простого пользователя) труды. Я оправдываю этих людей плохим воспитанием, образованием и низкой зарплатой. В конце концов они попадут в ад для программистов и ответят за все грехи что совершили в своей жизни.
Долгое время, пока не пришли эти доморощенные инноваторы, мы (пользователи) были предоставлены сами себе. За это время я написал множество простейших утилит, макросов и просто полезных шаблонов, которые облегчали мой труд. Почти всеми этими полезными вещами я пользуюсь до сих пор - они работают замечательно и пережили два сгоревших компьютера и четыре переустановки операционной системы.
Находясь на месте пользователя и одновременно на месте программиста, я получил весьма ценный опыт и много удовольствия от написания программ. Хочу поведать о некоторых ценных мыслях, которые я вынес занимаясь тестированием и внедрением самописных программ для автоматизации делопроизводства.
Нельзя начинать писать программу не понимая до конца что ты хочешь получить в итоге и что от тебя требуется пользователю. В конечном итоге это закончится тем что всю работу придется начинать сначала. Сколько раз я быстро программировал что-то, а потом с удивлением узнавал что от меня требовалось совершенно другое. Или не совсем другое, с маленькими изменениями... но из-за этого придется переписать и перерисовать половину программы. В настоящем программировании есть такая штука, ТЗ - техническое задание, но не каждый пользователя умеет его грамотно составлять, и не каждый программист может его понять...
(c) via Flickr
Хорошо. Программа написана, она получает данные, обрабатывает и выдает какой-то результат. Краткое тестирование с различными данными показывает что все в порядке - данные на выходе корректные. Работа закончена? Вовсе нет, основная часть работы только начинается. У любого программиста непосредственное программирование занимает только небольшую часть проекта (20-30% времени), все остальное время он обязан отдавать тестированию и исправлению выявленных недочетов. К сожалению, не все так поступают - поджимают сроки, руководитель требует функциональности немедленно...
Я поступал также. Программа написана, программа работает, программа выдана пользователю. Пользователь вроде не выражает недовольство. Кажется все в порядке. Такое заблуждение длится ровно до того момента, когда ты сам начинаешь пользоваться своей программой. Да, я подменял пользователей в их работе, когда кто-то уходил в отпуск или отсутствовал. Коллектив у нас небольшой и каждый должен был уметь выполнять функции своего коллеги (в разумных пределах, конечно). Так вот, когда я начинал работать на месте пользователя, я обычно хватался за голову. Наконец я понимал как именно должна работать программа для максимального удобства и эффективности. Никакое вдумчивое чтение ТЗ и продумывание всех нюансов заранее не даст такого озарения. Нельзя ограничиваться только формальным тестированием продукта - необходима вдумчивая работа на месте пользователя.
Те люди, которые сейчас "работают на нас", нарушают все эти простые заповеди и еще массу других. Они плевать хотели на пользователей и их желания. Они не хотят знать каким образом происходит работа этого пользователя. Они ведут себя как полнейшие профанами и болванами, каковыми и являются. Не происходит никакого общения между программистом и пользователем. Когда я писал свои программы, я находился в непосредственной близости от пользователей, стоял за спиной и вникал во все детали работы. Те надменные люди (я их даже в лицо никогда не видел), которые пишут нам программы, купили (я на это надеюсь) IDE, получили компоненты, фреймворки и считают себя умнее нас, простых пользователей, о чем уведомляют руководство. Конечно же, всем очевидно что при подобном подходе они не смогут написать никакой полезной программы и тем самым разрушат нашу работу, все наши бизнес-процессы и впустую потратят деньги, которые им выделили.
Я все-таки надеюсь что эта неудача (когда начальству станет понятен весь масштаб катастрофы) хоть кого-то научит, а этих людей которые посмели себя называть программистами, выгонят из профессии. 

31 марта 2011 г.

О судьбах Delphi

В связи с выходом новой версии Lazaurus я хотел бы порассуждать о судьбе такого языка программирования (хотя на самом деле это среда разработки) под названием Delphi. Название это было на слуху на рубеже столетий и Delphi был очень популярен в России. У некоторых программистов он популярен до сих пор и они умудряются выпускать качественные и популярные программы. Для Delphi своеобразным знаменем является Total Commander, а вернее сам автор Кристиан Гислер, который умудрился сделать программу, успех которой не удается повторить никому (файловый менеджер Frigate и ставший культовым у некоторых администраторов и программистов FAR не то и погоды не делают). Не уверен что Кристиан Гислер смог бы написать такую же программу, если бы взялся писать её не в Delphi, а например на C++.
Лично у меня Delphi вызывает до сих пор по большей части негативные эмоции: Total Commander, который я помню еще "маленьким" когда он назывался windows commander - единственное светлое пятно. Связаны мои не очень приятные воспоминания с творениями начинающих и не очень талантливых программистов на Delphi, творения которые напоминали монстров, изобиловали использованием чужих компонентов (в Delphi это очень поощрялось) и пугали нестандартным внешним видом.
Тем не менее уважать и любить Delphi есть за что: он подарил свободу самовыражения многим программистам. Свободу установить простую IDE и начать программировать сложные программы с интерфейсом и даже игры. TurboPascal, которым с самого школьного возраста пичкали этих начинающих программистов нашел свое достойное продолжение в среде программирования Delphi. Мне также повезло соприкоснуться с великим и ужасным языком C, но на меня он не произвел такого впечатления, все на что он был способен это делать вычисления и выдавать данные на экран, там мне казалось в то время. Затем я познакомился с одной из реализаций Basic (это было задолго до QBasic), и в этой версии Basic можно было перейти в графический режим. Вот это было для меня круто.
Но я увлекся своими воспоминаниями. Вернусь к языку программированию Delphi (согласно Wikipedia так его надо было величать). Не знаю кому и зачем может понадобиться в современном мире использовать этот так называемый язык программирования для своих будущих проектов. Я вижу несколько причин для этого и все они дурно пахнут:
  • программист слишком глупый (или старый) и не хочет учить никаких ЯП кроме Delphi
  • необходима поддержка и развитие ПО, которое было написано в 2000-х гг
  • никто не хочет связываться с .NET или Java, а приложение, которое использует браузер для работы с сервером вызывает непонимание
  • в незапамятные времена была куплена лицензионная версия Delphi и никто не хочет раскошеливаться на что-то другое (даже такое бывает в России, где в 90-2000-х повально использовалось пиратское ПО)
То что, я вижу со своего места просто пользователя, когда ко мне по долгу службы приходит очередное ПО написанное неизвестно кем на Delphi, вызывает у меня ужас.
Базы данных? Киньте этот файл в папку с программой - там содержатся последние нужные вам данные.

Программа тормозит? Нет, она просто так работает. Оставьте компьютер включенным на 2 суток и она выдаст нужный вам результат (последнее не шутка и не преувеличение! Такие программы бывают и работают они, оказывается, не в ядерных центрах на суперкомпьютерах).
Программа закрывается с ошибкой? И даже без всякой ошибки? Вы просто неправильно с ней работаете и не читаете инструкций. Мы скажем об этом вашему начальству и оно примет в отношение вас и вашей компьютерной безграмотности меры.
Но не языки программирования пишут программы, а люди. Вряд ли сам Delphi виноват в качестве программ и судьбе большинства программ, написанных в нем. Хотя вина в плачевном положении, которое сложилось сейчас у разработчиков есть. Появилось множество разных языков программирования. Многие из них не требуют покупки дорогой среды разработки, для того чтобы начать писать и продавать программы. Владельцы Delphi сделали ответный ход и выпустили облегченную, начальную среду разработки Delphi XE Starter Edition по цене обычного сотового телефона.
Если бы я начинал писать пользовательские приложения сейчас, то ни за что не взял бы в качестве среды разработки Delphi. Да и не стал бы осваивать её. C#, Visual Basic.NET выглядят более предпочтительнее для этого, а также во много раз перспективнее. Даже Java, под которую Oracle копает яму, лучше. Есть множество других способов писать приложения, причем без необходимости что-либо покупать и быть от кого-то зависимым.

30 мая 2010 г.

Ужасы нашего городка

Кем надо быть, чтобы в 21 веке для хранения данных на сервере использовать... клиппер! Привет выгрузка в формат dbf. Я уж молчу про Delphi (не современная реализация на .NET, а самый настоящий старый Delphi).
Я не знаю что нужно делать с такими программистами. Возможно их стоило бы закопать вместе с теми средствами программирования, которые они выбрали, а выбрали они их потому что старые и больше ничего не знают, знать не хотят и им просто надо дожить до пенсии.
Ну насчет закопать я погорячился, но только насчет языков программирования, к языкам программирования, несмотря на их возраст у меня есть уважение, они повлияли на развитие современных средств программирования.
p.s: а еще я бы с удовольствием закопал любителей IE6.

27 июля 2009 г.

PHP-project, рабочая бета-версия!

Оно находится на сервере хостера и оно как-то умудряется работать! Оно это 500 строк кода на PHP и 300 строк CSS. А еще 30000+ записей в базе данных, откуда делается выборка.
Я еще не купил доменное имя, хостинг бесплатный (trial, много вкдюченных рабочих функций, включая mail, но через месяц хостер начнет подталкивать меня к покупке какого-нибудь тарифного плана, а оно мне не надо). Впереди расширение функциональности сайта (мне нужна "админка", функции расширенного поиска по базе) и SEO-мероприятия (потому как что толку в сайте, если его не уважают поисковые сервера).
Были проблемы с кодировками базы данных, заносимых данных и скриптов, всё как я и ожидал (привет cp1251). Кроме того всплыли серьезные специфические проблемы, о которых можно было не догадываться занимаясь разработкой в операционной системе Windows, в не менее специфических дистрибутивах PHP, MySQL и Apache под эту платформу. Но большинство проблем решено (я переделал дизайн в сторону сильного упрощения, по-моему получилось неплохо), сайт работает и выполняет свою функцию.
Программирование принесло мне немало удовольствия, а это главное. А если еще удастся раскрутиться и зарабатывать на этом сайте немного денег (для оплаты хостинга и доменного имени), то я буду рад несказанно.

1 июля 2009 г.

Твердая бета

Мой проект в стадии твёрдой беты.
Дизайн: есть.
Основная функция (поиск по БД): есть
Вчера реализовал простенький счетчик (записывает запросы в базу данных и некоторую другую информацию), на первое время сойдет.
Сайт еще не выложен в сеть, а уже назрела реальная необходимость иметь интерфейс администрирования.
Можно начинать выкладывать свой сайт в сеть. Я решил первоначально выложить на бесплатый unix-хостинг и посмотреть что будет. Бесплатный хостинг, который я выбрал для этой почетной цели второй день не шлет мне письма (экие привередливые).
Из новостей софта: Firefox обновился до версии 3.5. Теперь он стал немного быстрее, правда отказались работать большинство полезных плагинов (можно заставить их работать, но не хочется).

24 июня 2009 г.

Свой сайт

Итак, спустя... ну достаточно долгое время и множество "весёлых" часов проведенных за ловлей багов и насаждением новых (c периодическими криками "А! И так сойдет!"), я могу сказать что бета-версия готова. Я слил дизайн и код воедино (что делать неправильно и чревато!) и сделал одну страницу под названием index.php, которая умеет показывать разные разделы сайта (примитив, зато просто и надежно) и самое главное искать по моей базе данных товары и выдавать ответы на запросы пользователя!
Дизайн с free-templates.com порадовал 240 строками в .css файле. Причем запутанный код главной страницы вместе с дизайном занимает 350 строк (правда он растет периодически на 20-30 строк в день). Проблем с дизайном осталось много. Мне еще нужно украсить таблицу, сделать так чтобы она переливалась цветами при наведении мышки на строку... спасибо Firefox с Firebug, не знаю чтобы я делал, потому как держать в голове такой css как в моем шаблоне нереально.
По поводу размещения сайта меня посещают разные интересные идеи. Вот куплю я себе минисервер, установлю на нём всё что пологается серверу и смогу сделать свой собственный хостинг (для себя лично), как говорил незабвенный Бендер Родригес с "карточными играми и женщинами легкого поведения". Так я не буду привязан к ограничением хостера, например на бесплатном тарифе они очень критичны (хостеров можно понять, платный хостинг нужно продавать).
Стоимость удовольствия типа "доменное имя второго уровня в зоне .ru" стоит каких-то 600 рублей в первый год и 400 потом (мелочи для серьезного проекта, правда у меня не то чтобы серьёзный проект, а проектик для себя и местных жителей нашего небольшого городка...).
Самоей главное. Со следующей недели выкладываю сайт на бесплатный хостинг для тестирования и доводки в боевых условиях.

16 июня 2009 г.

Шпаргалки

Отсутствие интернета на моей работе (чертова безопасность) не доводит до добра. Можно потерять целый роясь в книжках и справочниках, решая примитивный вопрос, который решается за 5 минут использования google.
Всё запомнить и держать в голове нельзя, поэтому я решил себе скачать шпаргалки.
Вот неплохой сайт с такими шпаргалками. Но хорошей документации с примерами эти шпаргалки не заменят.

Выбор CMS

Стоящая в офисе жара под 40 (при нерабочем кондиционере) не дает сосредоточиться и работать над моим проектом (я уж не говорю про мои прямые обязанности, обеспечьте человеческие условия труда, тогда поговорим о работе). В этой тяжелой обстановке я мужественно заглядываю в собственный код, ужасаюсь ему и переписываю. Немного получается и в итоге форма поиска работает (фильтрует ввод, считает количество, запрашивает из базы данные и разбивает на страницы вывод).
CMS я себе брать не собирался, но ради интереса посмотрел на простую NanoCMS. Мне понравилась легкость и простота этой системы. Всё что нужно для маленького сайта из пары-тройки страничек. Правда с русским языком в slug беда (если вводить названия пунктов меню на русском), но я думаю если углубиться в эту систему, проблему можно решить. Кроме того, мне не понравилось отсутствие в поставке даже самого маленького, завалящегося новостного модуля. Впрочем, для некоторых сайтов я считаю новостной блок вообще излишним (например, как в моем случае).

9 июня 2009 г.

PHP-project, близко к бета-версии

На работе меня загрузили работой (как это не странно и обидно) и свободное время выдается крайне редко.
Но все таки она иногда выдается и я пытаюсь за 30 минут или час свободного времени, обложившись браузером, мануалом по php, запущенным сервером с mysql и Komodo Edit (о, как мне не хватает дебаггера!), вспомнить что я делал неделю назад и придумать новое. Получается с трудом.
В данный момент я закончил с фильтрацией пользовательского ввода, разобрался с выводом из базы, нашел мелкие погрешности при вводе в базу данных (буду переписывать скрипты читающие из csv) и подобрался вплотную к постраничной выдаче ответа (серверу конечно всё равно, он железный , но, согласитесь, страница в 1 Мб при выдаче 1000 строк мало кому понравится).
Главный скрипт, осуществляющий поиск по базе, занимает 200 строк и состоит из вложенных if/else/foreach/for . При взгляде на него у меня просыпается совесть и руки порываются переписать это всё.
Завершающим этапом (после приведения в божеский вид моих программистких изысканий) будет "прикручивание" дизайна к скриптам. Вернее наооборот - внедрение скриптов в дизайн, т.к. я решил отказаться даже от простой сторонней CMS - для сайта из 2-3 страниц она просто не нужна, и вообще, я просто не доверяю чужим скриптам (хоть и мой код оставляет желать много лучше).

2 июня 2009 г.

PHP-project, альфа-версия

Мой небольшой, но уже запутанный проект приобретает всё более реальные черты. Я написал код обрабатывающий и фильтрующий ввод пользователя, я написал скрипты вноса в базу данных позиций из csv-листов. Кроме того я написал черновой вариант функции выводящей таблицу с результатами на экран. Завтра я надеюсь дописать постраничный вывод ответа на запрос пользователя, а к концу недели можно приступать к вживлению скриптов в простенький дизайн.
По поводу дизайна я наведался на www.free-css-templates.com и скачал все шаблоны. Не скажу что они мне сильно понравились, но интересные идеи оформления и пример правильного валидного оформления html и css там найти можно и даже нужно.
И снова встает проблема хостинга и доменного уровня. С какими проблемами я столкнусь на UNIX-хостингах? Правильно ли там будут работать мои скрипты с кириллицей? Если продвигать сайт, то нужно хорошее доменное имя. Но платить я пока принципиально не готов.
Я осмотрел несколько бесплатных "полу-профессиональных" хостингов и остался недоволен некоторыми серьезными ограничениями (на работу PHP, базу данных). В том числе и на рекламу. А платить я опять же не готов.

29 мая 2009 г.

Xmind: программа, которая помогает думать

Я зашел на softpedia и поискал свободные программы для рисования так называемых "карт памяти" - mind-map. Программ было несколько, но для получения некоторых нужна регистрация, а мне (как и большинству не-пользователей таких программ) лень это делать. Поэтому я скачал две программы: freemind и Xmind. Первая хоть и позволяет творить, но выглядит столь аскетично... А вот вторая Xmind 3 оказалась великолепной программой. Простой в освоении, имеющей великолепный дизайн (для свободных программ это редкость, а для программ на Java редкость вдвойне) и неплохой набор функций.
В общем Xmind 3.0.3 это наш выбор. Обе программы (Xmind и Freemind) написаны на Java, что в свою очередь дает такое неоспоримое преимущество как кроссплатформенность. Но... нагрузка на процессор при отрисовки графики в Java (особенно этим отличается Xmind) настолько велика, что удовольствие от использования программы враз улетучивается, а это в случае с программой для рисования карт памяти стоит на первом месте - ничего не должно препятствовать полёту мыли, ни усложненный интерфейс, ни тормоза, ни лишние инструменты. К сожалению, либо кроссплатформенность, либо тормоза.На скриншоте вы можете видеть что работа над моим проектом идёт полным ходом. Данные есть, они обработаны (не без проблем) и загружены в базу данных. А это уже пол-дела! На следующей неделе буду программировать основную страницу, которая и будет обращаться к базе данных, делая выборку из более чем 50000 наименований товаров.

27 мая 2009 г.

PHP-project

Я всё мучаю своей проект по сбору всех цен города в одну базу данных. Так как проект хоть и небольшой, но серьезный, а программированием я не занимался уже достаточно давно, то с первых шагов я столкнулся с проблемами.
Первая проблема это сами прайс-листы от незабвенного и любимого всеми менеджерами Excel. Во первых они мало того что разные (по структуре), так еще и разных форматов. Есть xml, а есть родные (еще более проблемные). Я конечно видел тут платное решение по парсингу таких файлов, но хотелось бы обойтись своими силами и бесплатными решениями. Универсальности не будет, будет костыль на костыле. Я уже начал упрощать себе задачу, впрочем начинать то всегда надо с малого.
Со второй проблемой я еще не столкнулся, но обязательно столкнусь на последнем решающем этапе. Это настройки и ограничения хостинга. То они файлы качать не могут с других серверов, то ограничения на базу данных, то функция неправильно работает... Вообщем там будет видно.
На данный момент я пока решил не собирать статистику по времени по товарами в базу данных (а то она будет растить на несколько мегабайт после каждого обновления) и не парсить Excel-листы, а загонять их из .csv.
Занимаясь планированием проекта ощутил недостачу в таких средствах как mind-map, а проще говоря схемках в виде прямоугольников, овалов и стрелочек-связей между ними. Поищу себе бесплатный редактор "карт памяти". А то бывает придумал замечательную схему, а тебя отвлекли и из головы всё вылетело.

18 февраля 2009 г.

Детский Basic

Увидел новость об этой очередной реинкарнации Basic (и опять от Microsoft) и, конечно, заинтересовался! Есть у меня такая привычка собирать языки программирования, а потом не учить их и не пользоваться ими. Практически весь mainstream у меня есть (даже три эзотерических затесалось, включая незабвенный brainfuck).
Выглядит всё цветасто, красиво и очень просто. Для детей самое то, думал я, устанавливая это чудо (скромных размеров в 5 Мб) под версией 0.3.1. К сожалению восторга поубавилось по мере освоения и чтения quickstart guide.
Основные претензии: этот язык ничуть не проще VB.NET (а именно его он напоминает синтаксисом). Древний qbasic был гораздо проще!
Книжка "Введение в SmallBasic.doc" переведена неплохо, но я нашел несколько явных ошибок перевода, да к тому же книга не дописана. Впрочем с версии языка 0.3.1 и документация, как и сам язык будет дописываться и переписываться не раз.
SmallBasic тормозит. Он сильно тормозит при выводе графики. К чести разработчика ни одного глюка или бага за время "развлекухи" я не увидел (правда и писал я простейшие программки).
К сильным сторонам я бы отметил классы для очень простой работы с графикой (как вам класс работающий с flickr). Впрочем работа с графическим окном мне напомнила Borland TurboPascal.
К плюсам Small Basic можно отнести полную поддержку UTF (имена переменных на русском языке, а кое-какие взрослые ЯП, не будем показывать пальцем, даже в консоль не могут выводить русские буквы)
Язык исповедует парадигму объектно-ориентированного программирования и концепции технологии .NET. ООП это хорошо, но зачем оно детям?
Итак, плюс на минус. Да просто. Но очень ограниченно и примитивно. И я до сих пор не уверен что BASIC хороший язык для начинающего. Он довольно неуклюжий, что видно даже по примерам в книге.