myStack
890 subscribers
761 photos
15 videos
27 files
310 links
Меня зовут Ростислав и я разработчик.

Это мой личный блог.

Я пишу на Go, читаю книги про технологии и пишу об этих и других вещах сюда.


Книги:
https://bit.ly/rostislav-books

Личка:
https://t.me/Rostislaved

Сайт:
Rostislav.me
Download Telegram
Go statement considered harmful
GUI и API
GUI - это Graphical User Interface
API - Application programming Interface
Interface - с английского это граница раздела. Кстати глагол to interface - взаимодействовать.
То есть, например, в ведре вода - ее поверхность это интерфейс воздуха и воды - это для понимания природы слова.

В программировании также интерфейс - это раздел сред.
GUI - это раздел сред (внутренности программы)/(человек). То есть этот интерфейс создан, чтобы юзер глазами заглянул на запущенную программу (то есть на её GUI), увидел и мог нажать кнопочки. На этой границе происходит взаимодействие.
API - это также граница, где происходит взаимодействие. Только не программы с человеком, а программы с другой программой.
В GUI ты видишь кнопочки и т.д. - это те элементы, посредством которых ты взаимодействуешь с программой.
В API одна программа видит тоже некие кнопочки другой программы. Жмет их и что-то происходит. Только разница в том, что программам не нужно какое-то визуальное представление в виде кнопочек, менюшек и т.д. ей нужно что-то попроще (или по сложнее, как посмотреть, суть - без визуальной части).
API, вообще говоря, бывают разные. Для разных программ.

Есть web-API - Я на работе, например, именно такие и пишу. То есть я пишу для одной программы определенные "кнопочки", а другая их нажимает. www.google.com/images - одна кнопочка, www.google.com/maps - другая кнопочка. Какую из них нажмет браузер, то и получет.

Есть API операционной системы. Грубо говоря программы на компе используют функции операционной системы (функции - прям как в языке программирования. Называются системные вызовы.)

Есть API у базы данных. Кнопочки этого апи нажимаются драйвером базы данных, код которого встраивается в программу, которую пишет разработчик. Например, опять же я. Есть программы для более легкого анализа и работы с базами данных, например, DataGrip. Её тоже когда-то писали разработчики, и в ней также есть драйвер базы данных, но у нее есть еще один интерфейс GUI. То есть схематично выглядит так: Ты —->(GUI)-DATAGRIP-(database_driver)—-> (database API)-База данных.
😂
ппц
This media is not supported in your browser
VIEW IN TELEGRAM
По цене самого дешевого айфона можно купить посудомойку, стиралку, утюг, чайник - как минимум)
Боже, линукс - это что-то нереальное.
Видите это окно для скриншота? Оно не с моего компа. Оно с компа, который стоит в офисе.
Я подключился к нему через ssh и запустил программу. Оно выполняется там, а через ssh передается инфа, с помощью которой x сервер у меня на компе рисует это окно. Просто афигеть)
В итоге я сделал скрин на своем компе, а он сохранился на том!
1
Сейчас в одном айтишном канале, на который я подписан был пост-реклама с где-то 50ю другими каналами. Я конечно начал по ним прыгать и оценивать интересен ли мне контент. В одном нашел пост с инициативой создать базу знаний по нагрузочному тестированию. Зашел, а там чел, который меня на 1й стажировке меня учил делать нагрузочные тесты. Забавно :)
Чет увидел картинку и очень понравилась. Подумал: "Хотел бы я там жить. Вот бы меня туда перенесли". А потом осознал, что, если бы так случилось, то я наверное бы был опустошен.
Все новое. Все, что я знаю о мире - бесполезно, ибо оно знание о другом мире.
Все мои усилия, которые я приложил в жизни: школу закончил, универ, язык учил, в какой-то мере разбирался в людях - т.е строил картину этого мира - всё не нужно, всё обесценено. Может там 90% населения говорит на японском? Может никто не учит географию Земли ибо это не она, или может набор знаний в школе (т.е. общественных) совершенно другой. Наверное там было бы одиноко.
типичные фанаты раста в чате про го)
Apple не сделала чего-то нового в своих новых процессорах. Это по сути уже существовало всё давно. Но не использовалось по одной причине, имя которой - обратная совместимость.

Небольшое отступление. Когда язык программирования компилируется, то он превращается в ассемблер, то есть по сути в непосредственные инструкции, которые выполняет процессор.

У разных процессоров могут быть разные наборы таких инструкций. То есть например строчка а = а + 1 может преобразоваться в 3 инструкции:
1. Достать а из памяти
2. Сложить а и 1
3. положить результат в память
А может преобразоваться в одну инструкцию, которая делает сразу все три действия атомарно.
Суть в чем. Если делать это за 1 инструкцию, то будет немного быстрее. Но из-за этого набор инструкций будет содержать +1 инструкцию. Когда поняли, что такой подход ускоряет работу, то стали очень много клепать таких инструкций на каждый чих, ускоряя выполнение некоторых действий, но раздувая число инструкций в процессоре.

Каждая новая инструкция - это определенные транзисторы, т.е. все не дается бесплатно. Выигрываешь на скорости инструкций - уменьшается число транзисторов. Это был первоначальный подход и это называется CISC - Complex Instruction Set Computing\er то есть сложный (полным) набор инструкций.

Когда поняли, что бесконечно добавлять инструкции нельзя, то решили их уменьшить. Сделали статистику, какие инструкции используются чаще всего - те оставили (например как выше инкремент на 1 т.к. частая операция), а те, которые используются редко - их убрали, чтобы транзисторы не занимали. Так появилась RISC набор инструкций. Reduced instructions set computing\er. Уменьшенный набор инструкций то есть. Архитектура ARM как раз использует RISC набор инструкций.

Как оказалось архитектура с RISC набором инструкций показывает хорошую производительность и имеет маленькое энергопотребление. И это все при том, что у нее не было тех n лет развития, как у CISC к тому времени.
Казалось бы, бери риск и все будет красиво. Но вот тут и вмешался бизнес. Дело в том, что программы, работающие на компе с одной архитектурой не работают на компе с другой. И чтобы программа заработала надо или ее перекомпилировать или сделать эмулятор.
И к тому моменту никакие компании не решились так РИСКовать ради тогда еще не слишком значительного преимущества в производительности. Легче было купить компов побольше. И они продолжили вливать деньги в интел\амд, удерживая их лидерами всего.
Эти компании тоже поняли, что риск крутая штука и свои процы переделали очень неплохо, по сути сделав их внутри РИСК процессорами, кажущимися ЦИСК процессорами, все для сохранения обратной совместимости. И так продолжается очень давно.

Но тут вдруг начали развиваться мобильные устройства, одним из главнейших требований которых - малое энергопотребление. И при этом им не надо было сохранять обратную совместимость. Не было никакого СТАРОГО Apple Store, приложения которого бы перестали работать. Тут и пошли в бой процессоры в РИСК набором инструкций. Постепенно развиваясь за счет покупателей айфонов и самсунгов за 100к они стали очень хорошими процессорами догнавшими по бенчмаркам компы. И это при работе от аккумулятора в маленьком телефоне.

Не знаю кто первый это сделал, но мне кажется Microsoft, выпустив свой Surface в двух вариантах с процессором Intel (CISC) и процессором на ARM (RISC). И тот который с ARM не взлетел. Софт не работал и никому это было не надо. Сейчас остались серфейсы только на интеле.

Но в 2020м году врывается гейм ченжер - Apple, делая свой комп с процессором с RISC набором инструкций при этом годно подготовившись - перекомпилировав все свои стандартные программы и сделав жизнь других программистов легче, подготовив все для того, чтобы им было легко перекомпилировать свои программы + выпустив эмулятор для тех программ, которые не будут перекомпилированны.
Таким образом, практически устранилась единственная причина невозможности RISC процессоров на рынке настольных компов и эпл получает все плюсы арм процессора.
Надо в резюме написать red-eyes-linux-problem-solver
инсайт ночи - catfish - переводится, как сом. Которыба блин)
Прикольно. Есть такая штука USB over ip. Выглядит как на картинке.
Скоро наверное буду использовать (хоть и неявно). Надо чтобы флешка(с цифровым ключом) пробрасывалась на комп в датацентре, где будет крутиться мой сервис.
Эх, как прекрасны следующие предложения из 2010го))
"И цена ожидается весьма гуманная – в районе 1800 рублей, прямо как в Штатах ($59.99). Даже дешевле, чем более-менее быстрая флэшка на 32 гигабайта…"
For example, if a penguin has a fly method, the penguin might understandably decide to test it out. However, if the fly method was in fact overridden and the behavior to fly did not exist, the penguin would be in for a major surprise when the fly method is invoked after jumping over a cliff.
😂