Работая на фрилансе и зарабатывая хоть какие то деньги и ведение стримов на twitch, я совсем перестал делать нормальные проекты. Из-за каких то денег на фрилансе мне перехотелось делать программы бесплатно даже те, которые могут в перспективе что-то принести. В этой статье я привожу небольшой опыт, может кому нибудь он пригодиться о том что я все таки выбрал из проектов и как практиковал английский язык.
Моя первая встреча с linux была еще в детстве. Один из родственников дал мне диск Ubuntu 4.04 или Ubuntu 6.04. Я уже не помню. Я даже не понимал что это, компьютера тогда еще не было и я диск положил на полку храниться. Вот в 14 или 16 лет мне купили компьютер. Как наверное все подростки я окунулся в мир игр и не вылазил от туда. Также я попробовал поставить диск ubuntu и мне очень понравился интерфейс gnome. Эти иконки, это так красиво выглядело, что windows оставался в пролете по дизайну (как мне кажется). Я установил ubuntu.
Интернет был в то время платный и стоил 50 рублей за час. Я никак не мог понять как подключиться в ubuntu к интернету. Звонил в техподдержку, они хотели за деньги скрипт предложить. Книг наверное в то время было мало, я особо как то не помню, чтобы по программированию было много книг. Но у меня была книга по C++ и я изучал её. С памятью наверное были проблемы или это с не привычки я все не мог никак запомнить, что класс в C++ после имя класса должен писаться { и все это закрываться };. Не знаю почему не мог запомнить. В то время я ещё увлекся ассемблером и сосед программист на работе скачал мне компилятор fasm (вроде). в общем ассемблер был полегче в плане синтаксиса. ) Потом появился доступ в интернет по mac адресу модема и я установил ubuntu.
Потом я начал гулять, развлекаться, работать и до 2012 года занимался какими то делами, особо с программированием я не связывался. После 2012 года я стал сидеть только дома и начал читать книги. Так как образование у меня было 9 классов, то на нормальную работу я бы не устроился. Работа за компьютером меня привлекала с детства, особенно если ты работаешь из дома в комфортной домашней обстановке и не соблюдаешь график сна как все. C++ мне также был сложен и я начал искать информацию о книгах в интернете и увидел синтаксис языка C. Мне он показался более простым для понимания, чем перегрузки языка C++. Как для новичка я все таки выбрал язык C. Также прочитал что кто-то упоминал что язык С для сишников в linux. Ну в общем я начал его изучение. Английский я не знал, в школе преподавали немецкий. Желание еще особого в то время учить английский не было. Два первых проекта из тех что я считал нормальными, это были - консольный парсер английский словарей и rfcreader.
rfcreader до сих пор сохранилась на github. Эта консольная программа предоставляет удобную навигацию по документам rfc. В общем я читал, писал код, а потом наступали времена что совсем не знал что написать и так месяцами ничего не делал, тока книги читал. Начал изучение gtk2 или gtk3 не помню. Мне понравился gtk в отличие от qt тем, что можно писать на С, можно легко подключить библиотеку в makefile и также использовать программы в коммерческом плане и ничего не нужно платить за коммерческое использование.
Проблемы как я понял начались после фриланса. В первый день на фрилансе я сразу же нашел работу по реверс инжинирингу и получилось убрать ошибку в программе, которая не давала запуститься приложению на windows. Я обрадовался. Создал kwork и начал ждать, мониторя заказы на бирже. Сначала были мелкие заказы от студентов и я рад был их сделать. Но потом пошли еще по крупнее заказы и я начал привыкать к таким деньгам и не хотел уже делать за мелочь какие либо проекты. Даже не хотел делать свои продукты, потому что не получал за это денег. Еще тогда один знакомый из gamedev сайта gcup.ru стримил на twitch как он разрабатывает игру на unity. Потом я сам начал стримить, но была проблема с скоростью интернета, но там я нашел знакомых, с кем можно было что-то обсудить из программирования и т.д. Позже я понял что разговоры во время разработки мне не нравяться, это отвлекает и мог кто-то вообще из левых написать какую то гадость в чат. Но я пока не понимал что twitch это не нужно вообще. Продолжал стримить. Делал разные проекты и почти ничего до конца не доводил, но я думаю что я хотел попробовать кое что сделать, какой то функционал, не целое приложение, а какую то его часть. Так я даже начал делать игру it_business pixel art изометрическая игра. Было прикольно разрабатывать. Но всё закончилось как я сделал что хотел. Дальше я ничего не мог придумать для игры и забросил ее. К тому времени я уже знал немного java, kotlin, C++, C, assembler. Пописал программы для android и мне не очень понравилось. На работу сложно устроиться программистом, особенно с языком C в user-space linux.
Английский уже знаю получше. Курсы английского дорогие и я понял что можно заплатить на сайте например international cupid и общаться с иностранками. Там девушек ну просто море. Много красоток. В первые дни я тока и делал что общался и проверял грамматику с помощью приложения grammarly. Потом все таки я разочаровался в этих девушках. Например девушки с африки почти все просят деньги на airtime bundle. Кто-то просит деньги на еду, но в основном на airtime. Типа хочешь общаться с экзотикой, плати. Филипинки предлагают зайти на сайт и зарегистрироваться, я зарегался под другой почтой, но там опять предлагали зарегистрироваться. Но сайт как бы нормальный, но там есть странное поведение, где нельзя общаться с member. В китае девушки часто пишут что они имеют какой то бизнес свой. Что в Гонк-Конге так все, помимо работы имеют левый заработок. Что многие из них в свое время вложились в крипто валюту биткойн и нормально так поднялись. И предлагают зайти на сайт их дяди, у которого есть криптовалюта будущего, дает аккаунт и типа подсказывает как торговать. потом предлагает вложиться в эту валюту. причем эта валюта есть только на этом сайте, я имею ввиду название, больше в интернете о ней упоминания нет. В общем мне надоело уже общаться, потому что все общаются ради денег. Но были и нормальные девушки, но это редкость.
Я ушел с twitch и решил как то привыкать опять к одинокому кодингу и вроде получается. Сейчас я работаю над чатом, в котором есть сквозное шифрование. Но блин, я раньше не понимал как это работает и думал что это сложно, а теперь понимаю что сквозное шифрование это ничего такого в реализации. Я сделал сервер и клиент на GTK. Реализовал пока мало функций. Вот как сейчас выглядит.
Я даже выложил видео на youtube. https://www.youtube.com/watch?v=MO8Vj93zGok
Но я мало спал до этого всего три часа и почти сутки не мог уснуть, говорил на видео сонный, но рассказал и показал как выглядит программа. Правда там была ошибка с получением новостей (сообщений, пока я был offline), но после записи я нашел ошибку и исправил. Конечно не каждый захочет смотреть такое, но если вас интересует личное общение, то возможно оно для вас. Я делаю это приложение для своего портфолио. Оно уже работает. Там принцип как в локальном чате, когда ты подключаешься к серверу, то видишь всех пользователей, которые есть на сервере. Но обменитьваться зашифрованными сообщениями, можно только после обмена ключами, с помощью специальной кнопки. Сейчас, когда я больше не хочу на twitch, я чувствую себя лучше в плане, что нахожу чем заняться и мне это нравиться, чем проматывать свое время, смотря как другие программисты что-то пишут или смотреть как кто-то играет. Этот чат, что я делаю, серверную программу можно установить на свой пк или на выделенный сервер и подключаться к нему и общаться. Позже сделаю загрузку картинок и так далее.
Комментарии (38)
Mox
27.09.2021 22:25+2Круто что вы написали, но вам лучше прям еще попрактиковаться в написании текстов, умении формулировать. Можно даже в стол или с преподавателем, главное - много писать, чтобы научиться.
По "C" вакансий достаточно, но лучше всего попрактиковаться делая pull-requests в какой-нибудь open-source. Это сразу показывает не только ваше знания языка, но и готовность вливаться в другой проект, понимать его архитектуру и стиль кодирования, и избавит от кучи лишних вопросов на собеседованиях.
И еще - впечатление что в вашем поиске не хватает какой-то системности. Может вам будет прикольно просто посмотреть видосы по программированию какого-нибудь MTI или Stanford на youtube, составить себе курс computer science. Чтобы не было таких сюрпризов как с шифрованием.
Zeiram
27.09.2021 22:42+9Очень странный поток сознания. Не сказать, чтобы такой уж непонятный, но вот какой-то не сильно ... эстетический. Не подходит для Хабра.
Kotofay
27.09.2021 22:46+1unsigned char *dt = convert_data_to_hex (data, &len); GtkWidget *child = get_child_by_name (fia->list_users, from); if (!child) { json_object_put (fia->jb); free (fia); return G_SOURCE_REMOVE; }
Если вы попадаете в
if(!child)
to "dt" не освобождается, а ведь вы его выделили внутри функцииconvert_data_to_hex.
Начните изучать С++ и это избавит вас от этих и множества других проблем.
xverizex Автор
28.09.2021 03:26кстати, я пока что вижу что вы с кодом дружите. может у вас есть мысль по поводу того о чем я сейчас расскажу. Я хочу сделать в моей программе отправку картинок и думаю как сделать более интересный вид в json данных. Ну я сам конечно подумаю, но меня заинтересовала работа telegram. Вот что меня цепляет. Если я напишу вам сообщение, а вы не были в телеграм и потом зарегистрировались, то получается что сообщение хранилось на сервере телеграм. но как насчет клиента? как получается что приватные ключи синхронизируются? или в переписке нет шифрования end-to-end? Например при совершении видео звонка видно что происходит обмен ключами, судя по label. Получается возможно что ключи вообще не храняться на устройствах чтоли? Например, если мы загружаем картинку, то её можно передать другому. например можно с помощью бота загрузить картинку и потом по определенному path передавать другим клиентам. значит картинка храниться в не зашифрованном виде, потому как у других не может быть тех же приватных ключей, которые нужны для расшифровки. Получается, те, кто думают, что защищены, не знают что картинки не зашифрованы. Я как бы не знаю как работает внутренняя кухня телеграм, но логически не могу понять как обстоит дела с картинками. В своем же приложении я думаю над тем как передавать в json также данные, по порциям и в зашифрованном виде, чтобы на сервере нельзя было понять что изображено.
Sabubu
28.09.2021 03:36Насколько я знаю, в Телеграм end-to-end шифрование используется только в секретных чатах. В обычных чатах шифруется только путь от клиента до сервера, а на сервере сообщение хранится в открытом виде.
Картинки, я думаю, в несекретных чатах тоже не шифруются.
Kotofay
28.09.2021 11:14Это вопрос архитектуры, не кода.
Мне кажется, вам подойдёт реализация криптографии с несколькими открытыми ключами.
Преимущество этой схемы заключается в том, что для её реализации нужно только одно сообщение и n ключей (в схеме с n агентами). Если передаются индивидуальные сообщения, то есть используются отдельные ключи для каждого агента (всего n ключей) и каждого сообщения, то для передачи сообщений всем различным подмножествам требуется (2^n - 2) ключей.
xverizex Автор
28.09.2021 11:18у меня как раз реализация с ключами для каждого клиента свой ключ. В статье я написал это https://habr.com/ru/post/580328/
Kotofay
28.09.2021 11:27Присмотритесь к главе "Криптография с несколькими открытыми ключами" по указанной мной ссылке на вики.
У вас точно так реализовано как там написано?
<<Теперь можно посылать сообщения группам агентов, не зная заранее состав группы. >>
xverizex Автор
28.09.2021 11:36я не очень понял. но прям в группу не получится пока писать зашифрованные сообщения. но например я как пользователь имею несколько ключей для каждого собеседника.
Sabubu
28.09.2021 00:06+3Мне кажется, лучше было бы, если бы пост на 100% был посвящен программе, которую вы пишете, ее описанию и особенностям. А не рассказу о том, как вы устанавливали линукс и какие языки программирования изучали. Хабр это все же не сборник историй "Жизнь замечательных людей".
xverizex Автор
28.09.2021 00:36-2да кстати, надо будет написать о программе, когда я в нее добавлю несколько фич. придумаю как интересно рассказать о её работе.
wrqqq
28.09.2021 11:38+1Человек некрасивый и больного разума. Зачем выставлять его шутом и не удалять пост?
ddwarf
Я бы вам посоветовал разбить текст на абзацы, тяжело читать простыню текста.
xverizex Автор
разделил
Usefff
Еще примерно так 20 разделений и это можно будет относительно нормально читать.
xverizex Автор
Но вы ведь не думаете что я должен предтворствовать вашим капризам. Или я должен делать не как мне хочется, а как хочется каждому? Ну вот смотрите. Судя по тому что вы комментируете, то вы читали пост, хотя он вам уже по обложке не понравился. Это что получается, вы мучались, читали, копили эмоции, чтобы потом вылить все говно что в вас накопилось? Вы говорите об эстетичности, а я говорю о том, что порядочный человек не стал бы писать как троль какую нибудь гадость. Кому то новость может понравиться, но если есть индивидуумы, которые не нравиться информация, то почему бы не заняться спортом, чтобы выплеснуть агресию. нет же, вы диванные комментаторы будете писать что лично вам не понравилось. нафига?
Revertis
Что такое предтворствовать?
Рекомендую выучить русский язык сначала, очень уж много ошибок я вам заслал в личку.
xverizex Автор
А вы молодец. Но раз вы знаете русский язык, как можно советовать такой фразой? Что вы имеете ввиду? Весь русский язык, грамматику или то о чем я пишу? Мне кажется что это больше понт, что вы считаете себя лучше чем я. Не буду пытаться вас понизить, так как это не прикольно. Думаю вы просто относитесь к окружающим, как окружающие относятся к вам. Просто хотя бы это может объяснить ваше мания величия.
Revertis
Ха-ха-ха! Забавно :)
Мне пришлось за свою жизнь выучить 5 языков. Не считая языки программирования.
Учить надо всё, чтобы людям было не противно вас читать.
xverizex Автор
То есть вы считаете что ваши комментарии интересно читать? Хорошо что я не такой эмоциональный, чтобы чувствовать что мне противно, но все равно читать. И еще заметим, вам пришлось выучить, а я учу что хочу. И мне не интересно знать кого вы за людей держите, а кого нет, но мне понятно одно - вы любите насмехаться над теми, кого вы считаете, что тот тупее вас. И вы считаете что вы по человечески относитесь к окружающим? Да ладно, понимаю если вы выучили пять языков и написали полезную статью, но вы же пытаетесь только с помощью комментариев поднять себе самооценку.
Revertis
То есть "терпите меня таким безграмотным, какой я есть"?
При чём тут самооценка? Да и пару статей я написал.
xverizex Автор
Как это причем тут самооценка? Вы когда очередной свой комментарий пишете, вы что, не испытываете эмоций? Ни плохих, ни хороших?
я понял. Вы считаете себя частью хабра из-за того что он одобрил ваши статьи и теперь вы считаете себя, что вольны отвечать за всех других, типа все обращают внимание на ошибки в тексте и терпят, но читают до конца. Единственный кто обращает внимание на ошибки, это только вы. Да и как можно чувствовать отвращение на неправильный текст? Это я думаю что вы просто в программировании не достигли моего уровня, и чтобы показать всем людям сообщества, чтобы вы типа знаете грамматику и пять языков, а я безграмотный, решили вот так вот поднимать свою самооценку. Ну да, конечно, вас будут помнить таким такие же тролли как и вы, а меня из-за ваших комментариев будут помнить как того человека, который неправильно несколько слов написал. хахаха. Вот у вас ... насчет грамматики. понимаю если меня сложно понять, что я пишу, но мою статью все поняли. И мне жаль дорогой читатель, что вы бурно реагируете на слова из моей статьи, но я не только для вас написал эту статью, я написал для всех. кому то нравиться читать выкладки из жизни. я сам такие читал и мне интересно было. если вы видите о чем статья и читаете её, то у вас либо проблемы с логикой, либо что-то другое. как можно читать статью, если понятно, что в начале я дал понять, что описываю про свои проблемы и их решения. это может кому то помочь, например перестать заходить на twitch и заниматься своими делами. я например на этом сайте статьи вообще не читаю, или читаю, но редко, зачем мне тратить время, читать статью, которая мне не интересна, а потом еще сраться с автором статьи из-за того, что мне не нравиться то что я прочитал. здесь большая часть статей идет мимо просто. я даже ваши статьи не стал читать, потому что понимаю что мне это не интересно, или вы приветсвуете, что я пойду читать вашу статью и буду свои умозаключения писать, о том что вы написали что-то с ошибкой? я же не троль, чтобы вот так вот статьи читать и писать всем. Хотя вы наверное потом приведете пример, что вы работаете на хорошей должности и получаете хорошую зарплату. так это не показатель. показатель я думаю это то как ты провел свою жизнь. мне например нравиться фриланс и я люблю работать из дома. у меня полно свободного времени и я могу заниматься чем хочу, учить английский, писать код. гулять на улице. ну это тоже не с проста у меня получается так. хорошо что у меня есть пенсия по инвалидности, это пипец как помогает. и я не сижу без дела, а пытаюсь чем то заниматься, по силам своего ума. так что я радуюсь что еще живу и мне на ошибки в тексте плевать, как бы вас это не задевало.
Revertis
Я понял. Похоже, русский совсем не ваш родной язык.
rrrad
В целом, согласен с вашим оппонентом (это чтобы не было впечатления, что тут он один с такими взглядами).
Тут уже есть когорта людей, которые тратят по минимуму времени на написание статей - так называемые редакторы хабра. Но они, по большей части, пишут новости. Есть еще корм.блоги, но среди них есть интересные и, в принципе, их существование неизбежно.
У нормального автора, которого интересно читать, на создание хорошей статьи может уйти неделя. А автор этой даже проверку орфографии оставил на читателя. Не, я понимаю, мб. чужой язык и, е,ли бы статья была интересна, это можно было простить (опять же, лучшие авторы даже на неродном языке стараются писать правильно и не огрызаются на указания на ошибки), но форма изложения заставляет прям продираться через кучу второстепенных мыслей к основной сути статьи. Это может быть интересно друзьям автора, но, думаю, большинство просто прошло мимо.
xverizex Автор
а что вы сразу сравниваете меня с теми, кто неделю на статью тратит время? Ну давайте вас сравним с теми, кто не оставляет комментарии. То есть, большинство людей, а это я считаю что большинство это нормальные люди, вы ведь тоже согласны, что большинство из вас это нормальные люди, вот как раз таки они и не комментируют статью на предмет зачем она нужна, а я имею ввиду нормальных, тех которых большинство. А те кто залупаются на счет того что вот, вы букву пропустили, мягкий знак не поставили, всё учите русский язык, здесь нормальные авторы неделю пишут статьи, а беспантовые пишут чуть меньше недели. Да кто вы после этого?
Didos007
Вы не правы, неделя у Вас ушла(больше, меньше) без разницы, Вы же пишите не для себя а для нас, так что постарайтесь проверять статьи перед выпуском(а так ведь можно и программы не проверяя выпускать)
xverizex Автор
я не гонюсь за лайками. Если обществу не нравиться мое творчество, то это не мои проблемы. Я не делаю то, что нравиться вам, а делаю то что нравиться мне. Если что-то не совпадает с вашим мнением, то это не значит что правы только вы.
AlexJameson
Конечно вы вольны делать так, как вам хочется. Но в эту игру играют как минимум двое - комментарии, как и карма, существуют именно для того, чтобы читатели тоже могли поступить так, как хочется им.
По делу - иллюстрации на техническом ресурсе ожидаются также техническими, добавляющими что-то к самой статье или хотя бы нейтральными, если не приходит на ум, как можно улучшить текст. Вот у вас например есть один скриншот - почему бы не добавить ещё из других ваших программ или хотя бы не накидать примеров кода с соответствующим оформлением? Намного лучше подошло бы к тематике ресурса час просто фотография, уместная для соцсети или личного блога.