• Закон Яровой с точки зрения конституции. Почему можно

      Привет, %habrauser% это пробная заметка, с целью разведать насколько интересна данная тематика уважаемому сообществу.

      И так, наверно многие задавались вопросом, почему статья 23 Конституции РФ предоставляет нам, среди прочего право на
      тайну переписки, телефонных переговоров, почтовых, телеграфных и иных сообщений.
      и обещает, что ограничение этого права возможно только через суд, в то время, как закон Яровой (на самом деле пакет из двух законов) по факту ограничивает нас в этом праве.
      Читать дальше →
    • Кастование произвольного слайса, к слайсу интерфейсов

        Всем привет. У каждого, кто знаком с Go был вопрос, а какого лешего я не могу сделать вот так вот:


        var  a = []int{1,2,3}
        b = []interface(a)

        Почему приходится писать вот так:


        b := make([]interface{}, len(a))
        for i:=0; i<len(a); i++ {
           b[i] = a[i]
        }

        Но, можно и по другому....

        Читать дальше →
        • –3
        • 2,2k
        • 5
      • Type assertation without allocations

          Всем привет. В дополнении к моей предыдущей статье был интересный диалог с kirill_danshin. В конце концов мы это сделали. Встречайте — efaceconv, тулза для go generate, с помощью которой можно приводить типы из interface{} без аллокаций и в ~4 раза быстрее.
          Читать дальше →
        • Go panic(), runtime error и их реализации в своей ОС на Go+asm Part 0x000c03f.(float32)

            Всем привет! Недавно я писал про реализацию пустых интерфейсов в Go, та статья, как можно догадаться имеет прямое отношение к разработке ОС на Go, да данная тема не заброшена и не забыта, но была отложена на долгий срок.

            Под катом: «выкидываем» asm прокси-методы, имплементируем методы panic() и поддержку рантаймовых ошибок.
            Читать дальше →
            • +12
            • 4,6k
            • 3
          • Немного о пустых интерфейсах. Быстрый взгляд изнутри

              Всем привет!

              Warning: статья не принесет ничего нового для профи, но будет полезна новичкам.

              Если вы это читаете, значит я уже мертв вы, как минимум, интересуетесь языком Go. Следовательно, знаете, о такой вещи, как interface{}. А что будет, если я скажу, что любой интерфейс это просто структура? А также, что довольно легко реализовать самому свои интерфейсы? Прошу под кат.
              Читать дальше →
            • [Go][JS] И снова про обработку форматов marc

                Приветствую, я уже писал 2 статьи (на geektimes тыц тыц ) по поводу форматов MARC.

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

                Под катом: дружба go и js, ненависть к marc-форматам

                Читать дальше →
              • BatchMarc обрабатывем marc файлы на go + js

                  Всем бобра!
                  Сегодня пятница, а это значит время подводить итоги!

                  Продолжая темы нашего библиотечного клуба спешу немного порадовать всех причастных: я сделяль!

                  Спустя море потраченных нервных клеток, спустя ад документации по marc форматам, и кучу костылей я всё таки собрал относительно вменяемый (но пока с ужасным кодом :) ) конвертор (+обработчик +всё, на что хватит фантазии) для marc форматов.

                  https://github.com/HerzenLibRu/BatchMarc (обработчик, правила пишутся на js)

                  https://github.com/t0pep0/marc21 (библиотека на Go для работы с marc форматами)

                  Читать дальше →
                • [HATE] Боль. Формат RusMARC

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

                    Всем дня доброго.
                    Позвольте начать с цитаты из википедии
                    UNIMARC (акроним от Universal Machine Readable Cataloging) — формат, разработанный при содействии Международной Федерации библиотечных ассоциаций и учреждений (IFLA) в 1977 году для решения проблемы несовместимости между различными национальными МАРК-форматами. Главной целью было создание международного МАРК-формата, который мог бы разместить библиографические записи всех видов МАРК-форматов. Такие записи могли быть преобразованы в UNIMARC, который являлся бы базовым форматом, и из него, если нужно, — в любой другой МАРК-формат. Формат UNIMARC облегчил международный обмен библиографическими сведениями в машиночитаемой форме.


                    для решения проблемы несовместимости между различными национальными МАРК-форматами

                    То есть, данный формат был разработан для того что бы быть унифицировать библиографические записи и отойти от того состояния, когда в каждой стране был свой собственный формат MARC не совместимый с остальными. Народ собрался, подумал и разработал единый формат. До определенного времени все им пользовались, и все были счастливы (ну кроме разработчиков, которым надо было писать функции импорта\экспорта работающих с этим форматом).

                    Но, мы же не ищем легких путей…
                    Читать дальше →
                  • Разработка OS на Go+asm Part 0x01

                    • Tutorial
                    Приветствую, %username%.

                    Перед вами вторая статья из цикла о разработке ОС на Go + asm.

                    Part 0x00
                    Part 0x01

                    Изначально я планировал, что вторая статья будет про обработку прерываний, но Go накладывает свои корректировки — сейчас будет описано простое выделение памяти и часть рантайма Go, которая нам пригодится, но будет переписано. На самом деле это подготовка к третьей статье — куче и допиливанию рантайма.

                    Кода к этой статье на гитхабе не будет (забыл вовремя сделать коммит, а теперь банально лень специально восстанавливать, если кто пришлет пулл реквест — буду благодарен).

                    Слабонервным просьба закрыть статью — все, что может быть написанно на Go будет написанно на нем!
                    Продолжение извращений
                    • +25
                    • 10,4k
                    • 7
                  • Разработка OS на Go+asm Part 0x00

                    • Tutorial
                    Доброго времени суток %username%.

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

                    Как некоторым известно, я очень люблю язык Go ну, и решил попробовать написать на нем. Что из этого получилось — под хабракатом.

                    Part 0x00
                    Part 0x01
                    Читать дальше →
                  • Разбор строки адреса (улица [дом]) средствами Golang и Postgis

                      Hi, %habrauser%.
                      Столкнулся я на днях с интересной задачей — пользователь вводит строку, которая может быть улицей с домом, просто улицей или вообще не улицей, а нам надо узнать имел ли он ввиду улицу с домом и соответствующее ему подсказать.
                      — Казалось бы чего проще — разбей строку по пробелу и наслаждайся — подумал Штирлиц
                      — А как насчет улицы Павла Корчагина — шепнула птица Обломинго
                      — Эм, ну номер дома же наверняка число — сказал Штирлиц
                      — Ага, корп1 — хорошее число
                      — Мдя, придется изобретать велосипед

                      Читать дальше →
                    • Как отправлять push уведомления из Вашего Rails приложения

                      • Перевод
                      Один из наиболее популярных способов связи мобильного приложения с сервером — отправка push уведомлений пользователю. Если Вы уже сталкивались с реализацией push уведомлений, то для Вас открытия Америки не произойдет, однако, новичкам в данной теме приходиться туго — это связанно с огромной путаницей в информации (от переводчика: действительно довольно много противоречивой, а зачастую и вовсе бесполезной информации). Именно эта путаница стала причиной написания данной статьи для WellWithMe, где я опишу разработку серверной части push уведомлений.

                      Читать дальше →
                      • +17
                      • 14,1k
                      • 2
                    • Еще раз об обфускации JavaScript или сказ о том, как я обфускатор писал. Часть 1

                      Возникла тут задача, написать код на php, который принимает js-код и обфусцирует его по самое не балуй. После курения гугла и хабра (в том числе, как правильно подсказывает monolithed, вот этой статьи) я приступил к работе. Как и следовало, я начал того, что запустил консоль JS в хроме и начал пытаться получать строки из месива символов, вот что получилось (с пояснениями):
                      (![]+[])
                      

                      «false»
                      [] — пустой массив
                      ! — операция логическое НЕ, особенность js (и не только), в том, что при булевых операциях если операнд равен 0, false, undefined, null, '' (пустой строке), то он приводится к false. Во всех остальных случаях — к true. (спасибо oshibka404 за поправки)
                      То есть (![]) = false
                      + — операция сложения и объединения строк, если оба операнда числа, то произойдет сложения, иначе это будет объединение строк с приведением типов. Кстати, тут есть особая магия типов, но это позже.
                      Читать дальше →