Technologique
652 subscribers
144 photos
3 videos
42 files
947 links
Deeply involved developers about various aspects, tendencies & conceptions of programming technologies, FLOSS, Linux, security, cloud infrastructures & DevOps practices, distributed systems, data warehousing & analysis, DL/ML, web3, etc.
Author: @andrcmdr
Download Telegram
Technologique
GIF
Синтаксический сахар (syntactic sugar) - больше лучше! 😄😆😂👍

https://ruby-lang.org/en/

Всё таки я советую многим изучить и попробовать Ruby и JRuby 👍
Technologique
Perfect Linux machine overview Lenovo ThinkPad X1 Carbon 4th Gen 2016 http://www.notebookcheck.net/Lenovo-ThinkPad-X1-Carbon-2016-Core-i7-WQHD-Ultrabook-Review.162631.0.html http://www.notebookcheck.net/Lenovo-announces-ThinkPad-X1-Carbon-Yoga-and-Tabl…
13.3" bare-metal ультрабук Xiaomi Air

Установлено 8GB ОЗУ DDR4

Если будет версия полностью на Intel (с Intel HD Graphics или даже Intel Iris) - это будет просто мечта линуксоида! И никаких макбуков! 😆😂

А пока для линуксоида серия Thinkpad от Lenovo остаётся вне конкуренции!

https://youtu.be/3KGk_qGdwv8 - Ubuntu на 12.5" модели Xiaomi Air

http://www.mi.com/mibookair/specs/ - технические характеристики лэптопов

Купить с доставкой, оплатив картой, можно на сайте магазина GearBest:
http://www.gearbest.com/laptops/pp_421980.html

http://www.gearbest.com/laptops/pp_425390.html

http://www.gearbest.com/laptops/pp_416105.html
Отличный митап и скринкаст получился! 👍
Парни хорошо рассказали про Spring Boot - такая автоматизация многое упрощает и отменяет много ручной работы! А для Java ведь нет стандартизированного и принятого всем сообществом менеджера jar пакетов и единого репозитория (хотя Maven умеет подтягивать зависимости из репозиториев), типа pip, gem и npm, и контроля зависимостей как у инструментария для Go...
Но это уже другая история...
А в этой истории рассказ про Spring Boot и сессия live coding demo в процессе повествования - это вдвойне интереснее!
Если коротко, Spring Boot это слой автоматизации Java фреймворка Spring для быстрого конфигурирования всех компонентов проекта и его развёртывания.
Именно об этом тема - про автоматизацию конфигурации и развёртывания проектов на фреймворке Spring с использованием Spring Boot.
Спасибо Руслану Молчанову (@ruslanys) и Максиму Кливенко (@klivenko), что так хорошо подготовились и рассказали, показали и в целом очень классно провели онлайн скринкаст-митап!
Как раз именно практики в конкретных технологиях на канале очень не хватает!

https://youtu.be/I_LC4dUhBVI
Как Golang помог в становлении технологий контейнеризации (изоляции окружения приложений) и популяризации экосистемы Docker.

http://thenewstack.io/go-programming-language-helps-docker-container-ecosystem/

Весьма интересная к прочтению статья, учитывая тот факт, что Docker активно использует системные вызовы ядра, а это уже proof of concept того, что Golang может использоваться и уже используется в очень крупных разработках системного ПО.

Go 1.7 по абсолютному большинству тестов и бенчмарков уже очень близок к Си и C++ по оптимизации и скорости исполнения кода (и уже обогнал Java и C#), при этом расход памяти ниже, а безопасность памяти выше, всё таки статическая типизация и компиляция плюс GC многое решают!

Также с версии 1.5 уже можно писать нативные приложения и библиотеки для Android и iOS, плюс десктопные кроссплатформенные приложения с GUI интерфейсом используя библиотеки Qt/QML.

https://github.com/golang/go/wiki/Mobile

https://talks.golang.org/2015/gophercon-go-on-mobile.slide#1

На Go создаётся много приложений, работающих с сетевым стеком, серверов и веб-фреймворков, облачных веб-сервисов, сервер-сайдных облачных инфраструктур, платформ и middleware (IaaS, PaaS, MaaS).

Go действительно постепенно становится языком общего назначения и экосистема вокруг языка растёт!

Но, многие возможности пока отсутствует, как в языке (многое решаемо, но бОльшим объёмом кода), так и в экосистеме.
В угоду обратной совместимости серьёзных нововведений в самом языке до версии 2.0 ждать не стоит.
Сейчас мы находимся на финальном этапе формирования привязки разработки к вендорам и их экосистемам:
Java - Oracle
C# - Microsoft
Go - Google
Swift - Apple

http://www.tiobe.com/tiobe-index/

http://www.tiobe.com/tiobe-index/programming-languages-definition/

http://redmonk.com/sogrady/2016/07/20/language-rankings-6-16/

При этом конкуренция между Java и C#/Mono, Java и Go, а Go с C#/Mono на Android и в сервер-сайде на Linux будет только нарастать.
Microsoft выходит на поле Linux, Android и Open Source, купив Xamarin и платформу Mono, а также создав совеместно с Canonical слой shim (https://en.wikipedia.org/wiki/Shim_(computing)) в ядре своей ОС для трансляции POSIX системных вызовов ядра Linux в WinAPI вызовы ядра Windows, для практически нативного запуска бинарных файлов ELF формата Linux приложений в среде ОС Windows. Есть информация, что разработка адаптивного интерфейса и конвергентного рабочего стола Continuum для разных типов устройств с экранами разных размеров и разрешений - это также совместная разработка с Canonical, которая разрабатывает аналогичную технологию в Unity 8 UI для Ubuntu ещё со времён перевода всего дитрибутива на оболочку Unity и начала работ над графическим оконным сервером Mir, как универсальной альтернативы Xorg и Wayland для всех типов устройств.

Google будет стараться заменить Java на Go там где это возможно в Android, чтобы избежать всех патентных трений с Oracle.

Swift и экосистема Apple самодостаточны, как и Oracle с Java, которая продолжает развиваться (см. GraalVM).

А тут ещё рынок и целая экосистема IoT на подходе, которая даст ещё и второе дыхание вебу и облачному сервер-сайду.
http://scalalaz.ru

Интерсные подкасты, записываемые московскими скалистами, о многих аспектах программирования на языке Scala, императивной и функциональной парадигме программирования, объединённых в одном уникальном языке
С 256-м (2^8) днём года - днём программиста! 😄👍

python3 << codersday

import time as t

import math as m

from datetime import datetime, timedelta


year = t.localtime(t.time()).tm_year


day = 24*60*60

hour = 60*60


if t.localtime(t.time()).tm_yday < 256:

    daysto256 = datetime(year, 1, 1) + timedelta(255) - datetime.now()

    timeto256 = daysto256 / timedelta(seconds=1)


    print('There are', m.floor(timeto256/day), 'days', m.floor(timeto256%day/hour), 'hours', m.floor(timeto256%day%hour/60), 'minutes', m.floor(timeto256%day%hour%60), 'seconds', "'till the programmer's day!")


elif t.localtime(t.time()).tm_yday == 256:

    daysto256 = datetime(year+1, 1, 1) + timedelta(255) - datetime.now()

    timeto256 = daysto256 / timedelta(seconds=1)


    print('Today is', str(t.localtime(t.time()).tm_yday) + "'th", "day of the year - happy programmer's day!")


    print('There are', m.floor(timeto256/day), 'days', m.floor(timeto256%day/hour), 'hours', m.floor(timeto256%day%hour/60), 'minutes', m.floor(timeto256%day%hour%60), 'seconds', "'till the next programmer's day!")


elif t.localtime(t.time()).tm_yday > 256:

    daysto256 = datetime(year+1, 1, 1) + timedelta(255) - datetime.now()

    timeto256 = daysto256 / timedelta(seconds=1)


    print('There are', m.floor(timeto256/day), 'days', m.floor(timeto256%day/hour), 'hours', m.floor(timeto256%day%hour/60), 'minutes', m.floor(timeto256%day%hour%60), 'seconds', "'till the next programmer's day!")


codersday
Вслед за Facebook и Google, Яндекс отключает свои сервера Jabber и таким образом закрывает один из крупнейших сервисов протокола XMPP в рунете и интернете вообще

https://geektimes.ru/post/280366/
Доклад Дениса Аникина на конференции HighLoad++ 2015 года.

Шикарный ликбез по масштабированию баз данных с простым объяснением буквально на пальцах и в картинках слайдов! Це для лiнивих! 😄👍

Хорошо объясняется что данные бывают горячие и холодные, т.е. востребованные и не очень.
Также объясняется почему современные реляционные БД финансово не эффективны под большой нагрузкой при их масштабировании, почему шардинг и репликация реляционных БД не решают проблему высокой нагрузки.

И дело не в реляционной модели данных...

Только представьте себе сколько решений-костылей порождает современная (пока ещё Фон-Неймановская) архитектура компьютеров с памятью по прежнему разделенной на ОЗУ, которое работает быстро, но не имеет постоянства памяти (persistence of memory) и ПЗУ, которое имеет постоянство хранения, но не имеет достаточной скорости работы.
Полагаю многие решения уйдут в прошлое с применением мемристорной технологии для конвергенции памяти и созданием на базе этой технологии общей памяти компьютеров и носителей - быстрой, объёмной и энергонезависимой с постоянным хранением. Уже есть прототипы, например технология носителей и памяти Intel Optane, но это уже другая история

https://vimeo.com/150101571

https://habrahabr.ru/company/oleg-bunin/blog/310690/ - стенограмма доклада

PS: Из недавнего - помните Яндекс перевёл почту с Oracle на PostgreSQL? У них свой способ экономии и повышения эффективности для почты и других сервисов. 😆😂
Technologique
Приложение мессенджера Google Allo стало доступно для установки в Google Play https://play.google.com/store/apps/details?id=com.google.android.apps.fireball
Google Assistant просто шикарен! 😄👍

Я использовал исключительно голосовой ввод.

Это уже AI, ассистент который умеет общаться, анализировать ввод, отвечать и давать различную информацию, запрашиваемую в свободной форме! 👍

Именно это и есть будущее поисковых движков!
Forwarded from Andrew Bednoff
Forwarded from Andrew Bednoff
Forwarded from Andrew Bednoff
"Свобода слова (информации) в эпоху интернета реально несвободна!"
Forwarded from Geeks
Интереснейшая, пусть и не очень весёлая, история произошла с сайтом KrebsOnSecurity - одним из лучших представителей блогов на тему компьютерной безопасности. После очередной публикации в серии информации о схемах, с помощью которых злоумышленники зарабатывали деньги с атак на популярные ресурсы, сайт подвергся мощнейшей атаке из всех, о которых публично известно. В качестве провайдера защиты от DDoS-атак для блога выступал довольно известный Akamai, клиентами которого являются многие крупные компании, например, тот же Apple. Но, так как Akamai предоставляли свои услуги для исследователя безопасности бесплатно, в целях рекламы собственного сервиса, в какой-то момент и для них такая реклама стала экономически нецелесообразной, - шутка ли, сдерживать мощнейшую атаку из увиденных. По итогам сайт выключили на неопределённый срок, что неприятно, ведь именно этого атакующие и добивались. Вообще же атака такого вида увидена впервые потому, что она просто слишком большая: в общем случае требуется огромное количество взломанных компьютеров, а хакеров с такими ресурсами в мире не так уж и много, - выяснить, кто среди них виноват не составляет проблемы. Но мир меняется и, так нашумевший, "интернет вещей" (IoT) действительно входит в нашу жизнь, только с менее приятной стороны. Так как сама концепция IoT предполагает много маленьких устройств, таких как радио-няни и прочие мелочи жизни, а поставщики не очень беспокоятся об их безопасности, они отлично подходят на роль быть взломанными хакерами и потом быть использованными в их целях. В данном случае, судя по всему, именно они и были использованы, а ведь мы говорим только о заре "интернета вещей", что будет дальше - страшно представить. Очень хорошая и, одновременно, пугающая цитата автора KrebsOnSecurity тоже не внушает позитива (извините, перевести её невозможно): "Free speech in the age of the Internet is not really free". Ну что тут сказать, обновляйте прошивку в радио-нянях - не будьте угрозой хорошим, правильным, сайтам! ;-) http://arstechnica.com/security/2016/09/why-the-silencing-of-krebsonsecurity-opens-a-troubling-chapter-for-the-net/
Правила разработки надежного отказоустойчивого кода на Си для mission critical real-time task operating systems for on-board embedded devices - от лаборатории реактивного движения JPL NASA.

В целом эти правила должен знать и применять каждый программист без исключений (это моральная ответственность) в рамках их применимости для используемого языка разработки и исполнительной среды языка - эти правила делают код чистым, читаемым, проверяемым и портируемым (переносимым, т.е. без привязки к среде ОС и транслятору).

https://habrahabr.ru/company/hexlet/blog/303160/

http://web.eecs.umich.edu/~imarkov/10rules.pdf

http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf