Roman
супер специфично
Alexander
свой blockchain с proof-of-stake и proof-of-work
Alexander
ну DSL из которого делать си код - явление частое, и DSL в целом
Vladislav
свой blockchain с proof-of-stake и proof-of-work
https://github.com/input-output-hk/cardano-sl
Vladislav
Ага, вот этот.
Vladislav
(Правда не знаю про PoW, вроде PoS)
Alexander
ну я могу ошибаться
Alexander
у меня ж память дырявая
Alexander
у Касперского сишный код для защиты всякого софта (и свое ядро или патчи, для защищенных систем)
Alexander
но тут опять же есть люди, которые расскажут гораздо подробнее точнее и интереснее
Alexander
ладно все хватит мне делать вид, что болит голова, работать пора
кана
Ну там такое себе наверное, первый опыт: https://github.com/kana-sama/tournament/blob/master/src/Tournament.hs
кана
Вот задача: As a gaming website we want to implement a tournament service with a feature called "Back a friend". Each player holds certain amount of bonus points. Website funds its players with bonus points based on all kind of activity. Bonus points can traded to goods and represent value like real money. One of the social products class is a social tournament. This is a competition between players in a multi-player game like poker, bingo, etc) Entering a tournament requires a player to deposit certain amount of entry fee in bonus points. If a player has not enough point he can ask other players to back him and get a part the prize in case of a win. In case of multiple backers, they submit equal part of the deposit and share the winning money in the same ration. From a technical side, the following API service with 5 endpoints should be implemented #1 Take and fund player account GET /take?playerId=P1&points=300 takes 300 points from player P1 account GET /fund?playerId=P2&points=300 funds (add to balance) player P2 with 300 points. If no player exist should create new player with given amount of points #2 Announce tournament specifying the entry deposit GET /announceTournament?tournamentId=1&deposit=1000 #3 Join player into a tournament and is he backed by a set of backers GET /joinTournament?tournamentId=1&playerId=P1&backerId=P2&backerId=P3 Backing is not mandatory and a player can be play on his own money #4 Result tournament winners and prizes POST /resultTournament with body in JSON format {"tournamentId": "1", "winners": [{"playerId": "P1", "prize": 500}]} #5 Player balance GET /balance?playerId=P1 Example response: {"playerId": "P1", "balance": 456.00} #6 Reset DB. GET /reset Should reset DB to initial state Full use case example: Prepare initial balances GET /fund?playerId=P1&points=300 GET /fund?playerId=P2&points=300 GET /fund?playerId=P3&points=300 GET /fund?playerId=P4&points=500 GET /fund?playerId=P5&points=1000 Tournament deposit is 1000 points GET /announceTournament?tournamentId=1&deposit=1000 P5 joins on his own GET /joinTournament?tournamentId=1&playerId=P5 P1 joins backed by P2, P3, P4 GET /joinTournament?tournamentId=1&playerId=P1&backerId=P2&backerId=P3&backerId=P4 All of them P1, P2, P3, P4 contribute 250 points each. P1 wins the tournament and his prize is 2000. P2 P3 P4 they all get 25% of the prize. POST /resultTournament with a POST {"winners": [{"playerId": "P1", "prize": 2000}]} After tournament result is processed the balances for players must be as specified below P1, P2, P3 - 550 P4 - 750 P5 - 0 Implementation must guarantee that no player balance ever goes below zero no point is lost due to service outage Endpoints 1-4 must return HTTP status codes only like 2xx, 4xx, 5xx Endpoints 5 must return json document in the format on the example above Your solution must be delivered as a source code on github / bitbucket and a docker compose script (use 1 free repository at hub.docker.com to deploy container image) You can use whatever programming language and any open source data storage. Feel free to ask for details.
Mikhail
Все вакасии по haskell начинаются с "A minimum of 2-3 years of Haskell development experience", а если у тебя его нет, то как быть
Dmitry
много людей хотят писать на хаскелле и собрать небольшую команду проблем нет
Dmitry
набрать человек сто и устроить новый ЕПАМ но на хаскелле - да, сложно
Dmitry
наверное. не пробовал
Dmitry
в любом случае, это всего лишь +1 язык программирования. никто ж не устраивает драм когда нужно выучить SQL или там свифт
Dmitry
но на практике никто не берет любого индуса, а устраивают длительные мозговыносящие собеседования и дают задачи
Alexander
ну вон у @voidlizard и @jagajaga надо спрашивать, у них наверно самые большие команды
Alexander
не считая банков
Dmitry
на фоне всего этого язык это мелочь, кмк
Alexander
но людей из банков тут нет
Alexander
в S&C команды по 50 человек хаскелистов, но это другой мир
Alexander
а вот такого не надо :P
Alexander
ещё задемпингуете, и з/п понижать будут
Alexander
только не рассказывай им, что в haskell take 1 . sort будет иметь линейную или логарифмическую сложность в зависимости от имлементации sort =)
Alexander
а то набегут
Зигохистоморфный
ха-ха https://www.kickstarter.com/projects/andanthor/scalaquest-a-game-to-learn-scala
Cheese
0 опыта по трудовой книжке, но хорошего знания
Cheese
да, меня же наняли
Cheese
и многих других
Cheese
опыт можно набрать на петпроджектах
Alexander
А что вам интересно?
ну вон вопрос был как жизнь с большой командной, у нас то людей чуть меньше
Misha
Дружный коллектив :)
где-то читал, что типа все хаскелисты считают себя шибко умными и частенько тянут на себя одеяло, и это дескать не очень круто для командной работы
Misha
и никто не хочет писать бойлерплейт, даже когда надо
Dmitry
50 человек тянут одеяло в разные стороны, epic
Dmitry
я бы сказал так, что любой русскоязычный считает себя самым умным, особенно - если он программист
Евгений
Хорошо натянуто будет зато
Евгений
Любой любой считает себя самым умным
Arseniy
и никто не хочет писать бойлерплейт, даже когда надо
Тут уже проблема в руководстве, если сотрудники не делают задачи.
Misha
круто
Misha
с другой стороны, наверное и правда чаще умные, чем наоборот
Alexander
@Vladimir_Sentsov просто обычно вакансии на haskell нужно искать не в hh.ru и т.п.
Alexander
чтобы получить максимальный отзыв людей проще написать в community, т.к. тогда отклик будет гораздо выше
Alexander
поэтому гораздо проще написать в twitter, gitter, telegram
Alexander
ещё и reddit или angel.co
Alexander
все равно не все хацкелисты читают hh.ru и т.п. а эти ресурсы все же читают
Aragaer
из перечисленного только про твиттер и телеграм слышал
Alexander
https://gitter.im/ruHaskell/forall , не слышать reddit это странно
Aragaer
а, на гиттере тоже регался.
Aragaer
про реддит иногда слышу, но до сих пор не понял, что это и о чем
Евгений
Да, поясните за реддит. Вдвойне непонятно как там работу искать, он же не русскоязычный
Donat
Разве там нет англоязычного сабреддита? Когда последний раз смотрел был.
Евгений
Это причина в 2017? :/
Ну тип странно искать работу в ресурсе, где вероятность найти работодателя в твоём регионе меньше сотой доли процента
Arseniy
Нынче большинство работодателей имеют remote вакансии.
Alexander
там есть русский сабреддит, но там 1.5 вакансий было
Alexander
сейчас on-site вакансии это скорее исключение
Евгений
Arseniy
Это называется "фрилансер", такое
Ахахахахахахахаххахахаха
Arseniy
Извините, не удержался.
Евгений
Тип кто-то кроме школьников и глубоких замкадышей ещё ведётся на это в 2017'ом? Не, серьёзно
Vladislav
remote /= freelance
Arseniy
remote /= freelance
Поддерживаю.
Евгений
Ну один хуй, ты сидишь дома без трудовых прав
Arseniy
У меня все сотрудники remote, ни одного фрилансера.
Евгений
Монополист ли покупатель твоего продукта или нет как-то похуй
Vladislav
"трудовые права" это для той категории людей, которые при устройстве на работу заранее уже думают, как и с кем судиться будут? (права отстаивать, что уж там) с дураками не связываться надо и все
Евгений
У меня все сотрудники remote, ни одного фрилансера.
А, ясно. Я думал, что с человеком, а не рабовладельцем говорю. Тогда понимаю
Евгений
Не одобряю нетрудовые доходы, не люблю рабовладельцев и спекулянтов. Когда-то в 60'ые это было нормой, а теперь ПОСТЫДНО.