Как стать автором
Обновить
40
0
Анфилатов Иван @t0pep0

Погроммист

Отправить сообщение

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

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

И так, наверно многие задавались вопросом, почему статья 23 Конституции РФ предоставляет нам, среди прочего право на
тайну переписки, телефонных переговоров, почтовых, телеграфных и иных сообщений.
и обещает, что ограничение этого права возможно только через суд, в то время, как закон Яровой (на самом деле пакет из двух законов) по факту ограничивает нас в этом праве.
Читать дальше →
Всего голосов 102: ↑84 и ↓18+66
Комментарии323

Немного о VIM и IDE

Время на прочтение3 мин
Количество просмотров17K
Один, не сомневаюсь, хороший человек и vim-ер со стажем опубликовал сегодня статью о том, что режимы — киллер-фича vim. Позволю себе не согласиться и поработать капитаном Очевидность.
Читать дальше →
Всего голосов 51: ↑27 и ↓24+3
Комментарии78

Кастование произвольного слайса, к слайсу интерфейсов

Время на прочтение1 мин
Количество просмотров2.8K

Всем привет. У каждого, кто знаком с 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]
}

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

Читать дальше →
Всего голосов 23: ↑10 и ↓13-3
Комментарии5

Type assertation without allocations

Время на прочтение5 мин
Количество просмотров2.8K
Всем привет. В дополнении к моей предыдущей статье был интересный диалог с kirill_danshin. В конце концов мы это сделали. Встречайте — efaceconv, тулза для go generate, с помощью которой можно приводить типы из interface{} без аллокаций и в ~4 раза быстрее.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии8

Go panic(), runtime error и их реализации в своей ОС на Go+asm Part 0x000c03f.(float32)

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

Под катом: «выкидываем» asm прокси-методы, имплементируем методы panic() и поддержку рантаймовых ошибок.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии3

Немного о пустых интерфейсах. Быстрый взгляд изнутри

Время на прочтение3 мин
Количество просмотров5.2K
Всем привет!

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

Если вы это читаете, значит я уже мертв вы, как минимум, интересуетесь языком Go. Следовательно, знаете, о такой вещи, как interface{}. А что будет, если я скажу, что любой интерфейс это просто структура? А также, что довольно легко реализовать самому свои интерфейсы? Прошу под кат.
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии4

[Go][JS] И снова про обработку форматов marc

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

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

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

Читать дальше →
Всего голосов 7: ↑4 и ↓3+1
Комментарии2

BatchMarc обрабатывем marc файлы на go + js

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

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

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

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

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

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии6

[HATE] Боль. Формат RusMARC

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

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


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

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

Но, мы же не ищем легких путей…
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии43

Разработка OS на Go+asm Part 0x01

Время на прочтение3 мин
Количество просмотров12K
Приветствую, %username%.

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

Part 0x00
Part 0x01

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

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

Слабонервным просьба закрыть статью — все, что может быть написанно на Go будет написанно на нем!
Продолжение извращений
Всего голосов 27: ↑26 и ↓1+25
Комментарии7

Разработка OS на Go+asm Part 0x00

Время на прочтение3 мин
Количество просмотров27K
Доброго времени суток %username%.

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

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

Part 0x00
Part 0x01
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии27

Разбор строки адреса (улица [дом]) средствами Golang и Postgis

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

Читать дальше →
Всего голосов 21: ↑11 и ↓10+1
Комментарии14

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

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

Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии2

Еще раз об обфускации JavaScript или сказ о том, как я обфускатор писал. Часть 1

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

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность