Pull to refresh
40
0
Анфилатов Иван @t0pep0

Погроммист

Send message

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

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

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

Немного о VIM и IDE

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

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

Reading time 1 min
Views 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]
}

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

Читать дальше →
Total votes 23: ↑10 and ↓13 -3
Comments 5

Type assertation without allocations

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

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

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

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

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

Reading time 3 min
Views 5.2K
Всем привет!

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

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

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

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

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

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

Читать дальше →
Total votes 7: ↑4 and ↓3 +1
Comments 2

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

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

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

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

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

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

Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Comments 6

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

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

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


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

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

Но, мы же не ищем легких путей…
Читать дальше →
Total votes 8: ↑6 and ↓2 +4
Comments 43

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

Reading time 3 min
Views 12K
Приветствую, %username%.

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

Part 0x00
Part 0x01

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

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

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

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

Reading time 3 min
Views 27K
Доброго времени суток %username%.

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

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

Part 0x00
Part 0x01
Читать дальше →
Total votes 51: ↑50 and ↓1 +49
Comments 27

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

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

Читать дальше →
Total votes 21: ↑11 and ↓10 +1
Comments 14

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

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

Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Comments 2

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

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

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity