суббота, 31 декабря 2016 г.

Интересные статьи.


https://developer.mbed.org/platforms/Hexiwear/

https://www.hackster.io/wbadry/virtual-iot-with-proteus-and-blynk-servo-motor-monitor-fb7c09?utm_source=hackster&utm_medium=email&utm_campaign=new_projects

https://www.hackster.io/dasdata/dasfilisera-green-house-99b2df?ref=similar&ref_id=22637&offset=2

https://www.hackster.io/asokfair/iot-hexsense-784cac?utm_source=hackster&utm_medium=email&utm_campaign=new_projects

http://searchsoa.techtarget.com/essentialguide/SOA-tutorial-Trends-governance-and-the-microservice-impact?utm_medium=EM&asrc=EM_NLN_63464217&utm_campaign=20160829_Guide:%20A%20look%20at%20SOA%20today_fchurchville&utm_source=NLN&track=NL-1839&ad=909688&src=909688

Azure IoT:
https://azure.microsoft.com/en-us/resources/samples/mydriving/
https://github.com/Azure/azure-iot-sdks
https://habrahabr.ru/company/microsoft/blog/281913/
https://habrahabr.ru/company/microsoft/blog/277725/


https://developer.amazon.com/blogs/post/Tx17J9F60Q082YV/With-Smart-Cap-and-Amazon-Alexa-Tushar-Chugh-Wants-to-Change-the-World-for-the-V

пятница, 30 декабря 2016 г.

Ретро PC на FPGA.

ZX Spectrum на FPGA.




Amiga эмулятор - Minimig на FPGA.








Хотелось сохранить здесь
взято здесь
http://webhamster.ru/site/page/index/main/news/188

Игра "Акционер": история, длинною в 20 лет

05-10-2011
01:59:26

В 1990 году в четвёртом номере журнала "Наука и жизнь" была опубликована статья, резко изменившая досуг многих советских граждан. Статья называлась "От биржи к акционеру", автор - замечательный человек и идейный вдохновитель Александр Зырянов. В этой статье описывались правила экономической игры "Акционер". В игре была специальная колода из 52-х карт и информационное табло, на котором отмечались курсы акций.

На страницах журнала эта игра выглядела вот так:
Спустя девять лет, мой товарищ, Сергей Шпаков, задумал сделать компьютерную версию этой игры. Он быстро сделал на Delphi вполне рабочую игру в режиме "Горячий стул" (хотсид). В этом режиме компьютер мешал колоду, раздавал карты игрокам, предлагал сделать ход первому игроку, потому второму, и т. д. Во время каждого хода игроки должны были садиться за компьютер так, чтобы другие не видели, какие карты на экране.

Это было неудобно, требовалась воможность поиграть с компьютером если человек один, а напарников нет. Сергей попросил меня написать искуственный разум для игроков. Для того, чтобы написать компьютерного игрока, мне нужно было сначала разобраться с правилами и понять выигрышную стратегию. Но после нескольких игр с Сергеем и другими игроками стало ясно, что я не понимаю как правильно играть в эту игру. Сергей много раз приглашал меня и других друзей поиграть в Акционера, и я всегда проигрывал. Я играл хуже всех, и не понимал, как в эту игру толком играть. У меня, видимо, такой Акционеро - кретинизм.
Итак, требовалось переложить игру на язык математики и алгоритмов, но как переложить, если сам слабо играешь и не понимаешь выигрышной стратегии? Тогда у меня родилась идея использовать элемент искуственного интеллекта - дихотомайзер. Эта математическая модель умеет выделять "главное" из казалось бы несвязанных друг с другом факторов. Я записал несколько игр между нашими "мэтрами", в записи было учтено всё что присутсвует в игре - номер хода, раскладка карт, количество денег, вышедшие карты, курсы акций... На основе этих данных было построено бинарное дерево выбора наиболее важного фактора при текущей игровой ситуации. После чего был написан код самих электронных игроков с деревом перебора как в шахматах, но только суженного рекомендацией дихотомайзера. Применять дихотомайзер пришлось именно для того, чтобы сузить дерево перебора, ибо количество возможных действий игрока на каждом ходе на порядки больше, чем в шахматах, что увеличивает дерево перебора в геометрической прогрессии. После основных действий в ходе, применялся несложный алгоритм раскладки средств по акциям.

Игра с встроенными компьютерными игроками была написана к 2000-му году. После чего Шпаков потерял к ней интерес, заявив, что компьютерные игроки играют "по-жлобски". Действительно, электронный разум играл гораздо лучше меня, и поначалу жостко обыгрывал биологических мэтров. Вот на этом этапе разработка и была заброшена. Когда у меня появился свой сайт, я выложил её на этой страничке: Игры под Windows : Shareholder (Акционер).

На этом история могла бы закончиться, но на днях (на улице 2011 год), она получила неожиданное продолжение. Автор игры, господин Зырянов, недавно нашел мою страничку с игрой, установил, поиграл, и написал мне письмо:

Здравствуйте, Сергей!

Набрел нечаянно на ваш сайт, скачал игру Акционер, попробовал сыграть… Нормально ))) Видел и другой вариант, значительно более слабый. Там я сыграл «в одни ворота» штук 5 партий и потерял к ним интерес. Правда, было это год назад. Не исключаю, что тем парням удалось что-то поправить. Поинтересуюсь и у них при случае…

В вашем варианте сыграл одну партию… Доволен тем, что имея первый ход (начинал игру), не проиграл… хоть и не выиграл )))

В истории игры прочитал ссылку на журнал «Наука и жизнь». Приятно. Эту статью в 1990 году написал я. Как, собственно, и саму игру в каких-то деталях отрабатывал, так как правил американской оригинальной игры никогда не видел (воспринял их на слух еще в середине 80-х).

В «Вопросах и ответах» прочитал о ваших намерениях разработать версию игры в сети. Я так понял, что она предусматривает возможность игры не с компьютером, а с реальными игроками. Такой вариант и мне интересен мог бы быть. В свое время организовал игровой клуб по переписке (тогда компьютеры были еще крайне редкой роскошью), в рамках которого игре было обучено около 500 человек… В турнирах участвовало не более 50 (оргпроблемы ограничивали)… Но турниров провели много ))) за 10 лет… К тому же в клубе были реализованы некоторые интересные идеи, которые и на игровом сайте могли бы иметь успех.

Очень неплохо и толково дано описание игры на WebHamster.ru, изложены ее правила. Что касается теории игры… В свое время я написал книгу по теории (не издана, конечно). По крайней мере, для игры вдвоем, против одного соперника. Дело в том, игра против двух соперников требует другой тактики, имеет свои нюансы. Я отдаю предпочтение игре вдвоем. 

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

Если это письмо заинтересует разработчиков, то можно будет подумать о расширении контактов.

С уважением, Александр Зырянов


В ходе дальнейшей переписки выяснилось, что Александр вынашивает идею сделать сайт с онлайн-игрой "Акционер", по типу всяких онлайновых преферанс-клубов, где люди играют друг с другом через интернет. В рунете есть один сайт - http://game-birga.narod.ru, на котором можно играть с другими людьми, но реализация там сделана чисто на JavaScript, без регистрации, без возможности сохранить свои достижения. Как бы, чего еще ожидать от сервиса народ.ру. Зырянов состыковался с автором этого сайта, но видимо они не достигли взаимопонимания, так как автор game-birga.narod.ru ратует за гибкую разновидность игры с настраиваемыми правилами. А Зырянов хочет развивать версию чисто по классическим правилам.

Так что, если вы, например, студент, разбираетесь в веб-технологиях и у вас есть свободное время, я вам дарю идею разработать такой сайт в контакте с Зыряновым. Потенциальные выгоды можете оценить сами, но полученный опыт разработки вам точно пригодится независимо от финансового результата. Игра на самом деле простая в смысле реализации с помощью современных фреймверков, студент справится. Ведь справились Степанов и Шпаков с локальной реализацией, как раз когда были студентами.

Узнать контакты Александра Зырянова можно у меня, написав на email xintrea@gmail.com.

Ну, и напоследок, сканы той статьи, которая была опубликована 20 лет назад:




 Всего вам доброго, спасибо за внимание.

Реализация игры 
http://www.bg.ohobby.ru/index.php?option=com_content&task=view&id=334&Itemid=109


среда, 28 декабря 2016 г.

MiniBoard based on Atom processor



Интересные поделки и статьи.

Crismas DIY
https://hackaday.io/project/19051-esp8266-christmas-ornaments



https://create.arduino.cc/projecthub/igorF2/solar-charged-battery-powered-arduino-uno-645d89?ref=user&ref_id=110201&offset=0

https://create.arduino.cc/projecthub/foxlab/temperature-monitoring-with-arduino-mkr1000-and-artik-cloud-84c351

https://create.arduino.cc/projecthub/3r1km0r4n/iot-for-coins-677ab8

https://create.arduino.cc/projecthub/doncoleman/mkr1000-temp-and-humidity-sensor-8f22ed

https://create.arduino.cc/projecthub/consoleteam/multiple-mode-environmental-sensor-deck-with-mkr1000-f184a6

https://dzone.com/articles/intellij-idea-inspection-settings-for-refactoring?oid=facebook&utm_content=buffer60750&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer

https://dzone.com/articles/dzone-infographic-round-up?oid=facebook&utm_content=buffera9ea5&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer

https://www.ft.com/content/70dceb2e-c6a3-11e6-9043-7e34c07b46ef

https://www.geek.com/tech/the-history-of-erotic-video-games-1661100/


воскресенье, 25 декабря 2016 г.

пятница, 9 декабря 2016 г.

Хакер сделал за 30 долларов гаджет что может открыть много машин имеющих безключевой доступ.

Где-то около 30 долларов потратил хакер который сделал устройство могущее открыть много машин имеющих безключевой доступ.

Сами Камкар (Samy Kamkar) который недавно раскрыл что он построил устройство нарушающее безпроводнный обмен GM автомобилей, расказал Tech Insider что его последнее устройство эксплуатирует базовую уязвимость в машинах и дистанционных гаражных ключах которые существовали в течение достаточно долгого времени.



Вот суть:

Автомобильные дистанционные ключи так и гаражные дистанционные ключи используют плавающий код для аутентификации доступа.


Как Get метод HashMap'а или Hashtable'а работает внутри Java.


В этой статье пересмотрим пару интересных вопросов связанных с внутренней работой HashMap в Java, наболее часто спрашиваемых у senior Java разработчиков, с опытом от 4 до 6 и свыше 8 лет работы. Я сделал обзор многих этих вопросов про HashMap, начиная от безопасности потоков в условиях гонки, в моем посте об internal working of Java HashMap, но я думал об пересмотре двух таких вопросах, Как get метод HashMap или Hashtable работает внутри Java и Что случается если два различных ключа возратят тотже hashCode,  как делаете вы возврат значения из HashMap в этом случае. Эти вопросы очень популярны в инвест банкинг домене, и предпочтительный выбор интервьювера, интервьювер опытный Java профессионал.

Если эти вопросы до сих пор спрашивают, это означает что не многие на них отвечают уверено и ясно, как хотелось бы спрашивающему. Это мотивирует меня пересмотреть этот вопрос снова. Чтобы лутше понимать эти вопросы, вы должны хорошо знать equals and hashcode method.

Покрайне мере вы должны знать что:
1) Два неуникальных объекта могут возращать тот же самый hashCode.
2) Когда два объекта равны по equals(), они должны иметь тотже самый hashcode.

Как get метод Hashtable работает в Java.

Я так же предлагаю читать equals and hashcode главу из книги Эффективная Java для заполнения своих пробелов. К стати по этой причине, требования для ключевого объекта в HashMap реализации обоих equals() и hashCode(), и правда что этот вопрос является одним из самых популярных среди опытных Java-программистов, спрашивающих какие требования для объектов используемых в качестве ключа в hash коллекциях таких как HashMap, Hashtable, и ConcurrentHashMap.

Другим не обязательным, но стоит отметить требованием для ключей в основанной на hash'ах коллекциях есть Immutable object (неизменяемый объект как String). Помня эти знания наряду с основными знаниями о hash алгоритме, которые вращаются вокруг hash функции.

Вам нужно прочитать правильную книгу о структурах данных и алгоритмах изучить больше об как хеш функция работает и различные стратегии обработки коллизий в Java. Одной из таких книг является Introduction to Algorithms by Thomas Cormen  идеально подходит для программистов которые интересуются более глубоким знаниями про алгоритмы и структуры данных.


Во всяком случае давайте эти вопросы посмотрим снова:

1) Как get(Key key) метод работает внутри HashMap, и Hashtable в Java?
Шаги которые происходят когда вы вызываете get() метод с объектом ключом получить соответствующее значение из hash коллекции.


а) Key.hashCode() метод используется для нахождения бакет локации в бакет массиве. (Помните HashMap есть массив бакетов в Java) хотя hashcode () не используется непосредственно, но они передаются внутренней hash() функции.

б) В бакет массиве или лучше известной как бакет, ключ и значение хранятся в форме вложенного класса называемого Entry.



Источник

среда, 7 декабря 2016 г.

Arduino101 BLE (bluetooth low energy) автономный ровер.

Немного про этот проект.


  Этот проект расширение Arduino101 BLE Rover, где я доставил некий набор Seeedstudio Skelton Bot 4wd мобильную роботехническую платформу команде проводящей опыт  Maker студентам из высшей школы CA, из Окланда. Содержимое этого учебника покажет как добавить сенсоры к платформе которую ты можешь создать исследуя как программировать автономный самоуправляемый автомобиль.

Содержимое учебника:

1. Сборка ровера.
2. Программирование ровера.
3. Решение проблем.
4. Добавление автономного режима.
5. И планы на будущее.

Часть 1. Сборка ровера.


Этот проект основан на Arduino 101 BLE ровере, поэтому вы можете просмотреть Assemble the Rover and Electrical Assembly Steps. Я добавил подробные инструкции, как я изменил ориентацию для монтажа Arduino101, и как использовать второй контроллер двигателя, чтобы уменьшить вероятность повреждения проводов после столкновения. Монтаж Arduino101 и контроллера мотора - Монтаж Arduino101 на акриловую монтажную плату и защита ее металличекими винтами. Монтаж контроллера мотора на акриловую монтажную плату и защита небольшими металическими винтами.


Метаморфозы Self-driving Car.




Вскоре отделение для перчаток в автомобиле заполнилось: мини-компьютер Intel NUC, пара модулей GPS, маршрутизатор.




понедельник, 5 декабря 2016 г.

STMicroelectronics присоединяется к  Arduino сообществу.


После Интел (Intel) и Atmel другой крупный производитель полупроводников, STMicroelectronics, официально скоопрерировались с Arduino платформой и объявленой как STAR (ST и ARduino) программой, это соглашение приведет STM32 семейство микроконтроллеров ближе к Arduino сообществу. Интересно отметить что AR в союзе STAR относитеся к Arduino.org, не Arduino.cc.

Первый продукт STAR Otto baseboard имеет формфактор Arduino Mega и строится вокруг 32-битного STM32F469 микроконтроллера. Этот контроллер включает графический ускоритель и интерфейс дисплея который поддерживается опенсорсной графической библиотекой. Кроме того STAR Otto board  предоставляет беспроводную связь и возможности аудио (с MEMS микрофоном на плате), все в сопровождении необходимых драверов с открытым исходным кодом.

Также STAR планирует создать диапазон новых Arduino плат раширения. Дисплей с последовательным интерфейсом, NFC-считыватель, и расширения с датчиками запланировано на 2016 год, несколько плат расширения STM32 Nucleo и библиотеки программного обеспечения уже были перенесены на платформу Arduino.

Kura Eclipse


В этом разделе представлен пример как создать Kura bundle который будет взаимодействовать с последовательным портом. В этом примере, вы взаимодействуете с простым эмулятором терминала демонстрируя и передачу и прием данных. Вы изучите как выполнять следующие функции:

  • Создать плагин коммуницирующий с последовательным портом.
  • Экспорт bundle.
  • Установка bundle на удаленное устройство
  • Тестирование коммуницирования с minicom, где minicom взаимодействует с добавленым последовательным портом таким как считывателем NFC, GPS устройство, или другие основаные ASCII коммуникационные устройства.

Что необходимо

  • Установить настроить Kura Development Environment (секция 2.01 Setting up the Kura Development Environment)
  • Ознакомится с Hello World используя Kura Logger (секция 2.02 Hello World используя Kura Logger)
  • Железо
  1. Использовать втсроеные устройства запущеным Kura с двумя доступными последовательными портами. (Если порты на устройстве не доступны использовать USB последовательный порт адаптер.)
  2. Убедитесь что minicom установлен на встаимом устройстве.
Последовательный обмен с Kura.

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