Серёжа Пономарёв aka stokito

I'm Java & Grails developer, coach and founder of IT community #kranonit in my native city.

kranonit S18 Gamedev — это не игрушки! Отчет о встрече

stokito:

Классная встреча получилась

Originally posted on #kranonit Клуб анонимных айтишников в Кривом Роге:

poster_1

22 февраля прошла первая в этом году встреча Криворожского клуба анонимных айтишников. В этот раз ее поддержала международная геймдев компания iLogos —  докладчиками выступили первые лица: СОО компании Елена Лобова, СЕО компании Василий Черноморов и арт-директор Евгений Павлов.  Они поделились с нами секретами управления большой компанией, открыли тайны создания игр и поведали об особенностях игрового дизайна.

Первой перед нами выступала прекрасная девушка — Елена Лобова, занимающая должность исполнительного директора в компании iLogos.

Она рассказала нам о проблемах и рисках, какие могут возникать при создании и управлении компанией. Не менее интересно было услышать о мотивации, о фидбеке и построении отношений с коллективом в целом. Каждый человек, наверное, не раз слышал о таблице Маслоу. Елена продемонстрировала, как компания может удовлетворить все потребности своих сотрудников. И наконец был открыт  главный секрет — что самое важное для программистов, чем их мотивировать? Ответ на этот вопрос вы можете найти в видео со встречи.

Василий Черноморов…

View original ещё 280 слов

Оставить комментарий »

Третья Мировая Война

Если кто не в курсе Россия объявила войну Украине. Поскольку суверенность моей страны гарантируют такие ядерные державы как Англия, Франция и США то мы уже в состоянии третьей мировой.

Делаю заявление, что как гражданин Украины буду убивать всех захватчиков.

Я думаю пока вы ещё живи вам будет интересно узнать из-за чего вы умрёте и подкину несколько видео.

И прямая трансляция независимого канала

4 Комментарии »

Корозия точности

Корозия Миталлляя

По оценкам специалистов различных стран эти потери в промышленно развитых странах составляют от 2 до 4 % валового национального продукта. При этом потери металла, включающие массу вышедших из строя металлических конструкций, изделий, оборудования, составляют от 10 до 20 % годового производства стали.

В компьютерных вычислениях тоже есть своя коррозия — «коррозия» точности при операциями над числами с плавающей точнкой. Об этом знают все, но всё равно обжигались:

Операции над двоичными числами (а в компьютере все они двоичные) вызывают много сюрпризов которые кажутся странными людям привыкшим к десятичной системе счисления:

не все десятичные числа имеют двоичное представление с плавающей запятой. Например, число «0,2» будет представлено как «0,200000003». Соответственно, «0,2 + 0,2 ≈ 0,4». Абсолютная погрешность в отдельном случае может и не высока, но если использовать такую константу в цикле, можем получить накопленную погрешность.

Поэтому когда считают что-то важное (например бабло) то используют хитрые классы обвёртки, типа BigDecimal, потому факап с примитивными типами неизбежен. Потому что есть ещё чудеса с переполнением, а в Си ещё и со знаком и эндингом. Естественно, скорости и удобства это не прибавляет. Хотя в Groovy с этим проще.
Кстати, если в контексте денег, то попробуйте новый JSR 354 — Currency and Money или на крайний случай его предшественник Joda Money. Ну и Фалура почитайте для матчасти.

Так вот, в годы своей юности я написал калькулятор на Делфи, внутри которого был прикольный класс TFractNumber который мог считать без потери точности. Вообще. И никаких проблем как тут у него не было. И когда я через него, например, делил один на три а потом умножал на три то получал снова один а не 0,999999999…
Как такое возможно?
Я хранил число в виде обыкновенной дроби с числительным и знаменателем, все операции приводил к единому знаменателю, и сокращал дробь. Как в школе, помните?

Т.е. вместо десятичной дроби (а в случае процессора двоичной), в знаменателе которой может быть только десять в определённой степени, у нас мы может использовать любое число.

Так вот, такая запись позволяет записывать периодическую дробь и работать над нею как над целым числом.
Т.е. обычно в записи когда пишут 0.0909090909 можно отобразить через период 0,(09), и если привести к обычной дроби, то мы получим 1/11.

Правда с иррациональными числами проблемы так и останутся. Радует что на практике они не так часто попадаются.
Из недостатка у этого способа представления чисел то что оно требует больше места. Но я думаю, это не очень страшно в современном то мире — всё равно почти везде уже используются double и long вместо float.
А ещё, я думаю что любой студент сможет написать диплом с реализацией сопроцессора для обыкновенных дробей, чтобы увеличить производительность.

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

Оставить комментарий »

Ещё пару видео про Java и другие языки программирования

Андрей Бреслав — Компромиссы, или Как проектируются языки программирования

Андрей руководит проектом разработки языка программирования Котлин. Тут довольно интересный рассказ суть котрого в том что любой язык программирования это набор компромисов.

Новые языки программирования. Есть ли жизнь после Java?

Холивор на CodeFest 2013.

Предварительный наброс:

  • The Next Big Language: кто придёт на смену Java? Где следующее звено эволюции мэйнстримовых языков?
  • Натиск функциональщины: Erlang, Clojure, F#, Scala — кому нужны очередные выдумки яйцеголовых?
  • Как структурировать большие системы? Есть ли альтернатива внеязыковым костылям для поддержки
  • Не пора ли опять вострить лыжи Java-дезертирам, сбежавшим на Ruby/Python? Где трава зеленее сегодня?
  • Как правильно уйти с Java? Что советуют опытные лозоходцы?
  • Parallelism, concurrency, multi-cores: как получить от этого профит, уложиться в сроки и не сойти с ума?

Оставить комментарий »

«Теперь я знаю, что буду делать на новогодние праздники!»

JUG.ru сделали настоящий подарок под новый год и выложили кучу видео с конференции Joker по Java.
Просмотреть их все можно на Ютуб канале JUGRuVideo.

Каждый найдёт для себя что нибудь интересное! А я пока для затравки несколько видео посоветую которые лично мне кажутся важными ;)

Сергей Куксенко: Stream style

Сергей Куксенко из Оракла рассказывает про самое сильное изменение в восьмой Джаве которое очень круто изменит наши исходники превратив их в функциональные: Stream’ы.
Это отличное средство для построения коротких Fluent API, для распаралеливания и для удобной работы с коллекциями. Знание основ функциональщины крайне желательны.

Александр Ильин — Type annotations in Java 8. И почему это хорошо

Шура Ильин из Оракла, автоматизаторует тесты в OpenJDK, рассказывает о ещё одной крутой фиче которая сделает Джаву ещё безопаснее. Type annotations — это строгая типизация на стероидах. Например можно помечать переменную как @NotNull и ещё на этапе компилятор не даст присовить в неё null.

Николай Алименков — Парадигмы ООП

Николай Алименков рассказал про проблемы граммотного применения ООП в Java. До этого было несколько встреч клуба анонимных программистов (30, 31 и 32 встреча), и этот доклад можно считать сжатым в часовые рамки вводом в тему.
Очень много практических советов — я прям во время просмотра открыл проект и переписал пару классов над которыми долго колебался :)

Артём Ананьев — Неформально о JavaFX

JavaFX — это ответ оракала на Flash. А также попытка сделать Джаву пригодной для десктопа. Выглядит очень круто.
Артём из Оракла рассказывает о нелёгкой судьбе JavaFX и о том что его уже вполне себе можно использовать в продакшене.

Яков Файн и вовсе предложил депрекейтнуть Свинг и писать всё десктопное на JavaFX.
И знаете что? Я вот хелоуворлданул, и скажу что очень даже ок. SceneBuilder выглядит как копия Glade, внутри Джава с адекватным MVC. Мне реально понравилось. И это я ещё как бывший делфист говорю.

Шура Ильин — Project Jigsaw. Take 2

Шура рассказывает о том какие дела на сегодняшний день с разбивокй на модули Джавы. Видое короткое, и если вкратце: то над этим сейчас работает Марк Рейнглольд — главный архитектор Джавы, и он ещё думает.
Ну а в целом ситуация такая

Любая технология, появление которой задерживается столько времени, заведомо будет мертворожденной. Тем более если даже еще не определились с тем, что хотят в итоге получить. Модульность подразумевает следующий функционал:

  • подсистема сборки
  • подсистема управления зависимостями
  • модульная среда выполнения

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

Почему тогда я считаю что это так важно? Во первых текущее положение дел с дистрибьюцией Джавы это просто жесть. И с модульностью жесть, если кто-то пробовал OSGI то впечатлений обычно потом много.
Почему мы сейчас говнокодим на хипстерских ЯваСкрипт фреймворках, вместо того чтобы использовтаь для этого нормальную Яву через аплеты или Java Web Start?
Насколько я помню то дикое время, тому было несколько причин:

  1. Огромный размер Java SE когда ещё всюду был диал ап.
  2. Сложность установки Джавы
  3. Топорный интерфейс
  4. Тормоза с графикой
  5. Периодический шухер с уязвимостью в Джаве, из-за которого теперь Джава плагин отключен в броузерах по умолчанию.

Все эти недостатки позволили просочится и захватить рынок довольно странной технологии Flash. А Джаву оттеснили на сторону где она может спокойно жить с такими недостатками — на сервера и десктопы кровавого энтерпрайза.
Сейчас флеш слава богу выпилен, но его место занимает ДжаваСкрипт.

Я думаю, не будь джава в то время такой монструозной и тяжёлой, мир бы сегодня был бы другим, потому что с остальными пунктами ещё можно было бы разрулить в нормальном режиме. Но мы продолжаем катится в агонию ДжаваСкрипта периодически хватаясь за слоломинки типа GWT. Сам же Google создаёт плафторму для десктопных приложений на базе хрома. Квитенсенцией этого треша стал вообще полный эмулятор компьютера на JS в котором можно вполне себе запускать и работать с Колибри например.

Jeff Atwood’s Law: any application that can be written in JavaScript, will eventually be written in JavaScript.

Так что, поохоже что джаваскриптовая вируальная машина заменить джависткую.

Но есть маленький лучик надежды. Если внимательно посмотреть на этот список, то можно обнаружить что кроме первого пункта, все остальные уже вроде бы как решены в JavaFX.
Может кто нибудь сможет с этой технологией повоевать за десктопы и RIA. Не знаю.

Оставить комментарий »

[Linkset] Сугата Митра: Учителя — не нужны. А нужны просто добрые бабушки

Это линк сет про учёного который исследует новые возможности обучения.

Главный вывод всех его исследований:

Довольно модно говорить, что система образования сломана. Она не сломана. Она прекрасно построена, просто она нам больше не нужна. Она устарела.

Sugata Mitra at Wikipedia

Сугата Митра: «Дыра в стене» на peoples.ru

Используя результаты проведенного им эксперимента «Дыра в стене», профессор образовательных технологий Сугата Митра доходчиво объясняет основные ошибки, допускаемые при попытках улучшить системы начального образования как в Индии, так и по всему миру.

Сугата Митра рассказывает, как дети обучают самих себя

Индийский ученый и просветитель, Сугата Митра, берётся разрешить одну из величайших проблем образования: дело в том, что лучшие учителя и школы не всегда находятся там, где они больше всего нужны. В ходе серии практических экспериментов, прокатившейся от Дели до Южной Африки и Италии, Сугата Митра давал детям возможность самостоятельно работать в Интернете. Полученные результаты превзошли все ожидания и могут перевернуть наши представления о педагогике: дети самостоятельно добывали себе знания и осваивали очень непростые курсы.

Сугата Митра: Построим «Школу в Облаках»

Выступая на TED2013, Сугата Митра рассказывает о своём смелом желании при получении премии TED Prize: Помогите мне создать «Школу в облаках», лабораторию в Индии, где дети смогут проводить исследования и обучаться друг у друга, используя ресурсы из «облаков». Слушайте о его вдохновляющей идее Самоорганизующихся Учебных Пространств (СОУП).

Технологии образования — блог Интела на Хабре

Презентация «Самоупорядочивающиеся процессы в образовании»

1 комментарий »

Подкаст «Философия программирования» с фритоником о важности высшего образования для программиста

Первый выпуск дочернего подкаста Хекслета. В данном подкасте будем поднимать темы, которые являются очень важными для инженера (возможно самыми важными), но в то же время на прямую не влияют на работу. О чем это мы? Об этом и попробуем поведать в первом выпуске, а если подробнее то вот наши темы:

  • о чем подкаст и кто его ведущие;
  • важность высшего образования для программиста и откуда появилось мнение, что “высшее образование программисту не нежуно”;
  • типы программистов (различие между инженером и кодером) и три уровня работы инженера: обобщенный, прикладной и маргинальный;
  • что значит для инженера выполненная работа(в контексте программирования)? О значимости тестирования.

Прослушать

 

 

Оставить комментарий »

Ruby, Ruby, Ruby, Ruby! And do ya, do ya, do ya, do ya!

Язык программирования Руби лично мне кажется довольно мерзким. Но я восхищаюсь его маркетингом, и хочу чтобы все ваши продукты были так же прекрасно представлены.

Кто за спиной?

Во первых за спиной любого языка программирования всегда стоит какой-то популярный продукт написанный на нём.

Си не стал бы таким популярным, если бы не UNIX.

Java не стала бы популярной, если бы не сервера SUN, которые покупали себе все стартапы во времена бума дот комов, и на которые поставляло ПО все крупные вендоры.

PHP не был бы так популярен, если бы не phpBB, WordPress и Drupal.

MySQL не был бы так популярен, если бы не PHP.

Так и Руби точно бы не был так популярен, если бы не Ruby on Rails.

В своё время это был один из первых успешных MVC фреймвоков.

Его разработал Давид Хейнемейер из компании 37 signals. Эта компания славится в среде стартаперов из-за своего известного онлайн трекера BaseCamp для маленьких проектов а так же серии крутых книг Rework и Remote.

Также ребята выступают на всяких стартап школах и рассказывают дельные вещи.

Вообщем большие молодцы, достойные восхищения.

Давид рассказывал что когда решил что нужен новый простой фреймворк то он решил что ему нужен динамический язык программирования. Он сначала смотрел в сторону Python но ему не понравилось что в нём ООП притянуто за уши. Тогда ему попался Руби который как раз себя и позиционировал как «more powerful than Perl, and more object-oriented than Python«.

Пакетный менеджер

Вторым аспектом успеха Руби стал лёгкий пакетный менеджер gem. Любой смог легко и быстро шарить свои библиотеки и другие смогли их просто подключать к своим проектам. Это очень важный фактор для выживания технологии.

До сих пор в комплекте с Java нет никакого пакетного менеджера. Даже нет сборщика. Ant, Maven, Gradle — это сторонние тулы которые нужно отдельно ставить что в разы увеличивает порог вхождения для новичков. И то, это всего лишь сборщики а не пакетные менеджеры.

Сейчас появился пакетный менеджер для джава платформы gvm. Он клон gem’a, и ещё сырой.

Стандартной модульной системой? с управлением зависимостями и прочим, должен стать проект Jigsaw. Проект идёт с муками, но обещают выкатить его в 9той Java.

Сайт — ваше лицо

Сайт Руби это отличный пример как нужно делать сайт для языка программирования:

У сайта есть полноценная русская версия, есть раздел с книгами, есть секция для тех кто пришёл из других языков программирования, есть даже онлайн тренажёр языка.

Вообщем абсолютно исчерпывающая информация и в  хорошем наглядном, виде.

 

Вывод

Можно ещё найти много хорошего в экосистеме Руби. Я думаю что нам всем есть чему поучится у комьюнити Руби в том как правильно выстраивать маркетинг своего продукта в условиях жесточайшей конкуренции.

 

Оставить комментарий »

GitHub day

Во время доклада «Грани опенсорса» на 35й минуте прозвучала отличная идея устроить День GitHub’а, когда все контрибьютят.

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

Отличная идея :)

Оставить комментарий »

Переходите все уже GitHub, хватит выпендриватся

Монополия GitHub

Лично я уже не понимаю когда вижу какой нибудь опенсорсный проект который не на GitHub, а на каком нибудь BitBucket, Google Code, SourceForge, Lanchpad, Codeplex, Java.net (kenai.com), Assembla, а то и вовсе исходники хостят у себя как например OpenJDK.

Унификация, глобализация и сетевой эффект

На сегодня очевидно что каким бы не был гитхаб, нравится он вам или нет, это это хостинг проектов №1. Все знают как пользоваться им, там больше всех проектов, многие указывают гитхаб в своих резюме, даже потенциальные работодатели заглядывают в репозитории кандидатов. Лично для меня важной фичей гитхаба является что я могу видеть и отслеживать все форки и по возможности забирать из них то что мне понравилось.
Вообщем социальный компонент в Гитхабе удачный.

Есть так называемый Сетевой эффект: ценность созданной сети, прямо пропорциональную квадрату числа пользователей N2.
Отсюда следует, что иногда приходится выбирать и пользоваться той технологией которая просто популярна, а не та что лучше.
Нравятся простые команды Bazaar? Прёшься по Меркуриал? В топку их, Гит популярнее, и всё тут.

От чего мы отказываемся, или что с конкурентами?

BitBucket — ближайший конкурент, отличный хостинг! Его купила компания Altalasian, которая делает JIRA, и все ждут и не дождутся, когда же она интегрирует эти два продукта. На самом деле никакого особого преимущества у битбакета нет. Единственная причина его пользовать — это пять приватных репозиториев. Для стартаперов из двух человек может хватить.
Но всего за пять баксов лучше купить приватные репозитории на Гитхабе и не парится. Тем более что знаешь что с этих денег они и поддерживают всю эту кучу опенсорса и это даже донейт, а не плата.
Вообщем в топку.

Google Code — несколько лет пилили поддержку гита, пока все не перешли на гитхаб. Он атисоциаелен: нет форков, имена авторов скрыты. В топку.

SourceForge — не разу не пользовался но выглядит он как адское говнище. На нём только старые проекты ещё остались. Буду в прошлом чуть ли не единственным хостингом открытых проектов они умудрились ничего не сделать чтобы хоть как то соответсовать новому десятилетию. Наконец-то в топку.

Lanchpad — классный хсотинг, но блин только для Ubuntu проектов и поддерживает только Bazzar. Круто что в нём изначально был встроенный CI. Именно там я впервые узнал что это. Я помню восторг с которым я читал логи как для компиляции моего deb пакета создаётся виртуалка, на неё полностью накатывается Linux и в чистой среде запускается компиляция. Вообщем в топку.

Codeplex — Microsoft же, в топку даже не глядя.
Java.net — туда же куда и Codeplex.
Assembla — когда был ещё только GoogleCode, у них единственных была возможность создавать приватные репозитории в SVN. Вообщем, смысл в их сервисе пропал уже давно. В топку.

Отдельный сервак: зачем? Есть же гитхаб. Когда я полез исследовать исходники OpenJDK я блин пол часа мучался с кочанным интерфейсом Merurial. Ну и опять таки, теряется социальный копонент и форки. В топку.

Так что хватит маяться дурью, переводите свои проекты на гитхаб и попробуйте не выходить за его рамки. Если у вас очень большой проект: бейте на отдельные репозитории. Всю документацию на вики страницы, все ишью — не в джиру а на гитхабовский трекер.
Да, конечно, JIRA и YouTraсk круче, но в умелых руках и гитхабовский ишью трекер сойдёт.
На крайний случай оставьте два трекера в параллели, это нормально. Гитхабовский всё равно нужен: во первых все пул реквесты будут в него попадать, во вторых я не всегда нахожу в себе силы найдя баг идти на чью-то джиру, долго регестрироватся там и только потом репортить. В Гитхабовскую джиру мне проще.
Есть ещё интересные онлайн трекреы которые просто используют REST API гитхаба добавляя своих рюшечек.
Вообщем, я считаю, выкрутится можно.

P.S. рекомендую отличный рассказ «Грани опенсорса».

1 комментарий »

Отслеживать

Get every new post delivered to your Inbox.

Join 385 other followers