• Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

      В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


      Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

      Ответ на этот вопрос неоднозначен
    • Когда появится следующий большой язык программирования с точки зрения Дарвина

        Good news everyone!
        Futurama


        Следующего большого языка программирования не предвидится. По крайней мере, на то нет причин с точки зрения теории эволюции.

        Эволюция работает не только в животном мире, но и в любой подходящей среде. Впервые эта идея получила широкое распространение с выходом книги Ричарда Докинза «Эгоистичный ген» в 1976 году. В ней был введен знакомый каждому термин «мем», как пример эволюции в социальной и культурной среде. Языки программирования тоже эволюционируют. А значит их развитие подчиняется принципам эволюции, на основании которых можно сделать предположение о будущем их развитии.

        image
        Читать дальше →
      • Junior FPGA Design Engineer: как стать?

          Всем привет!

          Иногда начинающие разработчики не очень хорошо представляют, какую литературу надо читать для серьезного изучения того или иного языка.

          Разработка под FPGA (ПЛИС) — это не просто какой-то язык. Это очень объемная область, с огромным количеством подводных камней и нюансов.

          В этой статье вы найдете:
          • список тем, которые должен освоить начинающий разработчик под FPGA
          • рекомендуемую литературу по каждой из тем
          • набор тестовых вопросов и лабораторных работ
          • классические ошибки новичков (и советы по исправлению)

          Добро пожаловать под кат!
          Читать дальше →
        • Русификация всех моделей часов Pebble без перепрошивки

            image

            Теперь пользователи умных часов Pebble могут скачать и установить русский language pack поверх оригинальной прошивки. Русификацию можно ставить на любую версию прошивки и железа — классические Pebble, Pebble Steel, Pebble Time или Pebble Time Steel. Language pack достаточно установить один раз, при обновлении оригинальной прошивки он будет сохраняться.
            Читать дальше →
            • +29
            • 51.8k
            • 9
          • Почему плохо быть слишком умным

            • Translation


            Если невежество – это благословление, значит ли это, что высокий IQ приравнивается к страданию? В массовом представлении это так и есть – гениев обычно представляют, как людей, страдающих от страхов, неудовлетворённости и одиночества. Вспомните Вирджинию Вулф, Алана Тьюринга и Лизу Симпсон – одинокие звёзды, изолированные в своей яркости. По словам Хемингуэя: «Счастье у умных людей – самое редкое явление из всех, что я знаю».

            Вопрос вроде бы затрагивает не так много людей – но если разобраться в нём, то оказывается, что он влечёт сложные последствия для многих людей. Система образования направлена в основном на улучшение академических знаний. Хотя ограничения системы IQ известны, это всё ещё основной способ измерения когнитивных способностей, и мы тратим кучу денег на тренировки мозга, стараясь улучшить эти показатели. Но что, если поиск гения – это бесполезное дело?

            Первые шаги в поисках ответа на этот вопрос сделали ещё 100 лет назад, в эпоху джаза. В то время инновационный тест на IQ набирал популярность, после того, как оправдал себя в вербовочных центрах Первой Мировой. В 1926 году психолог Льюис Терман решил использовать его для проверки группы одарённых детей. Собрав сливки учащихся с калифорнийских школ, он отобрал 1500 учеников с IQ не менее 140. 80 из них имели IQ более 170. Их назвали «Термитами», и истории их жизней изучают по сей день.

            Конечно, многие Термиты достигли богатства и успеха. Например, Джесс Оппенгеймер, написавший классический ситком 50-х «I Love Lucy». В те времена, когда его крутили на CBS, средняя зарплата у Термитов вдвое превышала среднюю зарплату тогдашних «белых воротничков». Но не все люди из этой группы оправдали ожидания – многие занялись более скромным делом, стали полицейскими, моряками и машинистками. Поэтому Терман заключил, что «интеллект и достижения очень слабо коррелируют». Их выдающийся ум не гарантировал им личного счастья. Количество разводов, алкоголизма и самоубийств в их среде совпадало со средними уровнями.
            Читать дальше →
          • Программисты и депрессия

                  Это перевод (причем достаточно вольный) выступления 2013 года программиста на Ruby по имени Greg Bauges, посвященного депрессии и психическим расстройствам в среде программистов. Выступление старое, но проблема вечная. Вот само видео с конференции:



                  Итак, начнем, меня зовут Грег. Я работаю в компании Table XI в Чикаго. Мы что-то вроде веб-студии из 30 человек. Я программировал большую часть своей жизни, начав еще с TRS-80, когда мне было только 6 или 7 лет. Там были кассеты и Basic, я даже еще помню ежемесячный журнал 3-2-1 Contact, который печатал на заднем развороте программы для BASIC. Тогда я не мог копипастить и мне оставалось только перепечатывать программу чтобы запустить, заставляя меняться цвета на экране и делать прочие непотребства… Я провел большую часть моей жизни пытаясь усидеть на двух стульях — программируя и работая с клиентами. И еще у меня биполярное расстройство второго типа(БАР2) и СДВ, и сегодня я хочу рассказать вам свою историю, друзья. Рассказать вам почему мы должны уделять внимание депрессии и психическим заболеваниям на подобных встречах, конференциях, и в разговорах с коллегами.
              Читать дальше →
            • Делаем таймер или первый проект на ПЛИС

                Начну свою первую статью с того, что сообщу: в предмете статьи я сам новичок, но выбрал именно такую тему. Объясню почему. Читаю хабр уже достаточно долго и мне всегда были интересны топики тех, кто сам в настоящий момент изучает то, о чем повествует. Такие статьи всегда понятны, всегда находят свою аудиторию и всегда предают читающему интерес и энтузиазм автора, который у новичков в любой области обычно зашкаливает!

                Так вот, недавно я заинтересовался темой ПЛИС, столкнувшись с ними на учебе, прочитал много всяких доков и заказал себе Starter Kit для экспериментов. Теперь, получив полигон для экспериментов по почте и проведя первый эксперимент, я готов поделиться с хабраюзерами. Надеюсь будет интересно.
                Читать дальше →
              • Google Play — работаем легально!

                  Привет, Хабр!



                  Сегодня, я хочу рассказать о том как сделать свое хобби по разработке Android-приложений пусть небольшим, но официальным бизнесом. О том, как легально получать деньги, заработанные на Google Play, о «страшном» валютном контроле и «таинственном» паспорте сделки.
                  Читать дальше →
                • «Умный дом» собственными руками. Часть 3. Синтез и распознавание голоса с помощью Google

                    В прошлой статье мы смогли добиться получения изображения с наших веб-камер в виде снимков раз в секунду. Теперь пришла пора взяться за обещанное — распознавание и синтез голоса.
                    Читать дальше →
                  • История игрушки. Поле Чудес

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

                      Жизнь мальчиков с математическими способностями в атомных городах была предопределена — школа с пятерками по алгебре и геометрии, мех-мат столичного университета, возвращение в систему, квартира через год, кандидатская степень в 40 лет, ВАЗ 2103 к пятидесяти годам, звание доктора, гараж, шесть соток, четыре квадратных метра.

                      Бесконечные размышления о математическом моделировании ядерных взрывов разрывали мальчикам мозг. Мозг можно было отвлечь тремя способами — алкоголем, азартными играми и спортом. Секс и музыка помогали не всегда.

                      Pole Chudes для iPhone

                      Далее я проваливаюсь в историю компьютерной игры.
                      Под тегом личные воспоминания ветерана без ссылок, рекламы, картинок и кода.
                      Спасибо за чудесные комментарии, парни.

                      Читать дальше →
                    • Обновление временных зон на Android

                      Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — был, мягко говоря, озадачен. Неужели никто до сих пор не сделал какого-либо патча для Android? Вдумчивое гугление привело к подтверждению информации: да, патчей нет. Обновлений тоже нет. Что хотите — то и делайте.
                      Ну вот, собственно — и начал делать…
                      Читать дальше →
                    • Российский Android-смартфон 4G с двумя экранами

                        Руководитель госкорпорации «Ростехнологии» Сергей Чемезов сегодня встретился с президентом Медведевым и показал ему новую разработку — смартфон 4G, спроектированный компанией «Скартел» (Yota). Производство смартфона начнётся в следующем году.



                        «Вот такой, у него будет два экрана, — сказал Чемезов. — А это пока прототип. Это наш продукт, но пока, к сожалению, выпускать мы его будем на Тайване, но в ближайшее время, потом, полностью перенесём производство в Россию».

                        Два экрана нужны для организации видеочата.

                        Раньше сообщалось, что российский смартфон будет на Android, а его дизайн разрабатывает «очень талантливый выходец с Украины».
                      • Сверхбыстрое распознавание речи без серверов на реальном примере

                        • Tutorial

                        В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
                        Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
                        К статье я также прилагаю все исходники программы и саму сборку под Android.

                        Прикручиваем Pocketsphinx к своему Андроиду
                      • Как работает стилус Galaxy Note

                        • Tutorial
                        С первого дня пользования меня очень интересовал вопрос — как же на обычном емкостном экране, которые воспринимает только определенную площадь прикосновения удалось добиться работы тонкого стилуса, да еще с кнопкой и несколькими степенями нажатия?

                        В этой статье я попытаюсь ответить на этот вопрос, рассказав немного об интересных технических решениях, примененных в этом телефоне.
                        Интересно? Добро пожаловать под кат
                      • Микроконтроллер своими руками

                        Пытаясь освоить контроллеры и уже владея навыками программирования ПЛИС, мне пришла в голову дурная мысль. Пришла, постучала и вошла. Всем тем, к кому приходят дурные мысли, и кому интересно как с этим явлением справляются другие, посвящается.

                        Возникла идея нарисовать свой контроллер, не ограниченный по количеству периферии, ОЗУ и другим параметрам, кроме ёмкости ПЛИС. Скажем контроллер содержит 5 UARTов, а позарез нужен шестой, придётся изворачиваться. А зачем, если можно просто щёлкнуть мышкой и добавить необходимое? Или наоборот, задачка хорошо решается на пяти контроллерах с разрядностью 5, 32, 20, 32 и 20 с непредсказуемым количеством линий связи между ними. Жалко использовать пять 32 разрядников, ресурс всегда жалко, а совмещать две подзадачи на одно ядро – некрасиво, что ли.
                        Читать дальше →
                      • 15 малоизвестных команд Linux

                        • Translation
                        Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
                        Читать дальше →
                      • Знакомство с микроконтроллерами Renesas на примере линейки RL78


                           


                          Если среднестатистического русскоговорящего разработчика микроконтроллерной электроники попросить назвать 3–5 наиболее известных или крупных производителей микроконтроллеров, наиболее вероятно услышать в ответ такие имена как Microchip, Atmel, TI или STM. Кто-то назовет также NXP, Freescale, Samsung или Fujitsu. Но мало кто вспомнит про еще одного производителя, который на постсоветском пространстве почти неизвестен.


                           


                          Речь идет о японской компании Renesas Electronics, которая, между тем, в своих годовых отчетах хвастается вот такой интересной инфографикой...


                          Читать дальше →
                        • Как правильно читать объявления в Си

                          • Translation
                          Даже совсем зеленые программисты на Си, не испытывают проблем с чтением таких объявлений:
                          int foo[5]; // foo массив из 5 элементов типа int
                          char *foo; // foo указатель на char
                          double foo(); // foo функция возвращающая значение типа double

                          Но как только объявления становятся немного сложнее, проблематично точно сказать что это. Например:
                          char *(*(**foo[][8])())[];

                          Как же научиться их читать?
                        • Хакаем Transcend WiFi SDHC карту памяти

                          • Translation
                          Перевод немного вольный, но смысл не потерян. Я (переводчик) заинтересовался этой карточкой давно и почти сразу заказал её, сегодня забрал с почты и не могу нарадоваться, но хочется больше, чем дает Transcend, а карточка, между прочим, Linux сервер с WiFi! Очень много буковок.

                          С недавнего времени я стал счастливым обладателем карты памяти Transcend WiFi SD, которая позволяет мне передавать фотографии с моей «зеркалки» (которая вообще то Sony NEX, зато компактная) на любое устройство с WiFi за несколько секунд. А так как мне нравится делать фотографии и делиться с ними на лету, то SD карточка, умеющая без проводов передавать картинки на мой телефон, кажется прекрасным решением. И это было так! (хотя всё еще так). Мобильное приложение может… не, должно быть получше (зачем скачивать 7МБ картинку для просмотра, чтобы потом ЕЩЕ раз скачать её, нажав на «Скачать»?), но вообще оно делает своё дело!
                          Читать дальше →
                        • Готовимся к наступлению Великого Русского Фаервола



                            В России приступили к тестированию отечественного фаервола, первый город для тестов который был выбран — Волгоград.

                            В нем были заблокированы сайты: Vk.com, Youtube.com

                            В данном посте я хочу осветить проблемы свободного доступа к информации и методах защиты от фаервола.
                            Читать дальше →