๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ Profile Banner
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ Profile
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ

@jovica

3,754
Followers
2,529
Following
173
Media
7,352
Statuses

The world's #1 CISO who can install Gentoo and exit Vim in the same day! :: author, entrepreneur :: ::

Berlin, Germany
Joined August 2008
Don't wanna be here? Send us removal request.
Pinned Tweet
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 months
Cybersecurity Metastrategy is weeks away from being published! Get notified about the updates here: #wimsecurity #infosec
Tweet media one
1
2
12
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Tweet media one
14
485
4K
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Tweet media one
36
638
3K
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Tweet media one
14
380
3K
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
9 months
Google Chrome will block uBlock Origin. Which means, all Chromium-based browsers (Edge, Brave, Opera, etc.) will eventually block it too. If you care about this, and you care about privacy, just switch to @firefox . For an average user, that's the best choice currently.
76
388
1K
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Tech stacks in many companies. #infosec #zerotrust
Tweet media one
4
203
907
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
If you're considering Azure, think twice. Microsoft found a new way to trick you: they expect you to manually upgrade the binaries you didnโ€™t know existed (you didnโ€™t install), in your Linux VMs. It seems like there are ~15K servers on Azure which you can root using only curl.
19
131
572
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: unpopular yet effective #security advice for startups #1 :: Donโ€™t use Windows servers. Even better, donโ€™t use ANY Microsoft software in your production environment.
9
39
302
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
6 years
A root shell through the logging system... really? Introducing Systemd :D System Down: A systemd-journald exploit -
6
110
175
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: #vim tip of the day :: You can execute multiple commands at once. All you need | between the commands. For example, use this sentence "Atom is bad and slow." and you run: :%s/Atom/Vim/ | %s/bad/good/ | %s/slow/fast/
2
24
148
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: vim tip :: You search for a string, the way you usually do. Hit gn to jump to the next match from your last search and visually select it. Instead of just jumping to the next match, you can run: cgn to change next match or dgn to delete next match
1
22
133
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
9 months
Of course, you can block the ads and other stuff on a DNS level. @NextDNS is a great (and cheap!) service I can definitely recommend.
8
6
110
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
:D If you know the source (SACKS?), let me know.
Tweet media one
2
29
107
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
My new blog post: Effective editing of multiple files in Vim
2
25
100
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: #vim tip :: For every line containing "foo", substitute all "bar" with "zzz": :g/foo/s/bar/zzz/g
1
17
88
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
If you care about your privacy, and you're using macOS, you might have a serious reasons to worry. Your Computer Isn't Yours - My advice: Just move to Linux. It's about time.
6
36
84
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
If you're using NordVPN, update your credentials ASAP. A few dumps with 2K+ valid account credentials is spreading over the dark corners of the internet.
3
82
78
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: vim tip :: To fix the indentation in entire file, run gg=G - gg - takes you to the top of the file - = is the indentation command - G at the end tells Vim to run indentation command to the end of the file. To fix the indentation on the current line, just hit ==
3
13
82
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: vim tip :: vim archive.tar.gz will list the files inside the archive, which you can edit or save without extracting. Yes, using Vim you can edit files inside tar.gz, tgz, zip, etc. :: ::
0
18
74
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: mastering #vim tip :: Nice ways to delete stuff while you're in Insert mode: - Ctrl-h - delete back one character (just like Backspace) - Ctrl-w - delete back one word - Ctrl-u - delete back to the start of line or the start of current insert It can be handy sometimes.
3
15
72
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
You know that Command/Ctrl + V is used for "paste". But did you know, if you add a third key - the Shift - what you paste will be plain text, without any formatting it might carry from its source? :)
5
13
68
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
Very unprofessional, very immature. Any supply chain attack actors, no matter the motivation, should be punished. #infosec #cybersecurity #opensource
3
21
65
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
:: mastering #vim quickly tip :: For every line containing "drink", substitute all "tea" with "beer": :g/drink/s/tea/beer
5
8
60
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: mastering #vim tip :: You can do something like this in Vim: vim <file> +/search-term to go the first match of the specified search term. Similarly, you can vim <file> +28 to open a file and place the cursor on line 28.
3
7
57
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
1 year
If you're using Zoom, look for an alternative. Other than hurting your security, now they hurt your privacy too. In their updated T&C (10.2 and 10.5 specifically), they included the part which allows them to train their AI models on your video calls. Best of all, no opt-out.
7
38
57
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
1 year
Vim is extremely powerful text editor. It can also be a handy tool for an actor trying to compromise your server. Some examples here: Know your tools, configure them properly, and stay vigilant. #vim #security
2
13
55
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
1 year
Did you know? In Firefox, if you want to search for the word vim in your bookmarks only, in the address bar just type: *vim If you want to include only results from your browsing history, type ^vim #Firefox
3
8
55
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
6 years
"I don't always exit VIM but when I do, I shutdown the house's main power breaker." via @danieltudares
1
16
52
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
This is big - macOS now contains network-based spyware even with all Apple services disabled. Apple Has Begun Scanning Your Local Image Files Without Consent - If you're using macOS, at least you should do is to install Little Snitch. #privacy
2
25
51
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
7 months
When I stared my IT career as a software dev, we were paranoid of adding new libraries. We thought of security consequences. Today I see many engineers adding whatever they want via NPM, pip, etc. Not only developers, but security people too. Lack of education? Care? Both?
12
8
51
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
10 months
Introduction to Vim abbreviations - #vim
0
6
47
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
On this day, 26 years ago, Operation "Storm" started: It was the most extreme case of ethnic cleansing in post-WWII Europe. 2.6K Serbs killed, 250K cleansed. Not to mention thousands of houses, monuments, churches, etc. All destroyed by Croatian forces. #neverforget #oluja
Tweet media one
16
17
45
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
10 months
I just used this magic today. Old post, but worth reading! #vim The Power of Recursive Macros in Vim -
2
6
44
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: #vim tip :: One of the lesser known features of Vim is the ability to edit files remotely. Hereโ€™s how to do it: vim scp://user @myserver [:port]//path/to/file.txt Note the double / for the directory on the remote host, which is needed to correctly resolve the absolute path.
0
7
44
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Facebook-owned sites are down. It seems like it's DNS related. No seriously, it's not a joke.
2
6
34
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
As a #Vim user, I use Vimium in browsers - and that works just great. Vimium supports many tab actions - but what I really miss is to focus/select the current URL (so I can type a new one in the same tab) Behold... the shortcut of the year, supported by major browsers: Ctrl+l
9
4
34
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
I believe your article is misleading @CelalCakar_ . Here: Do you have any proofs that the murderer is Serbian? Quick google search shows that he's a Kosovo-Albanian Muslim. Mistakes happen, that's fine. But please make a proper correction. Thanks.
2
7
32
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: unpopular yet effective #security advice for startups #2 :: Forbid the usage of Windows OS. It's the most targeted OS by ransomware (~85% of all such attacks target Windows). Get Apple computers by default. macOS is the target of ~7% of ransomware attacks. Allow Linux too.
3
2
32
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
This looks powerful! rga is a CLI search tool that allows you to look for a regex in a multitude of file types. rga wraps the awesome ripgrep and enables it to search in pdf, docx, sqlite, jpg, zip, tar.*, movie subtitles (mkv, mp4), etc. -
0
7
32
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Just because you have the possibility to stitch together twenty different AWS services, that doesn't mean you should.
0
7
31
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: mastering #vim quickly :: You can place your cursor back to your last edit inside a buffer by hitting g; Even better, you can do the same and enter Insert mode by hitting gi
2
4
30
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
9 years
Vim Tips For Intermediate Users http://t.co/vR0kdtlhBb
0
18
31
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: vim tip :: You can easily comment out lines containing a pattern, if '#' is your comment character like: :g/pattern/s/^/#/g :: ::
1
8
29
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
@nixcraft Ctrl+w - delete word by word backwards :) I think that's in my top 3 mostly used.
3
1
29
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
@hakluke @obsdmd Real hackers use #Vim :P
2
1
28
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
:: vim tip :: The "dot" feature confuses many. Itโ€™s important to know that with the . command, you can repeat only those commands which change the contents of the buffer. A change is any command which you can use to modify your text. F.e. hjkl won't be repeated with the .
1
6
28
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
7 years
Happy #SysAdminDay to all the sysadmins out there! source:
Tweet media one
1
23
28
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
7 years
Persistent Undo in Vim
0
9
28
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
The greatest breach in our modern history!
@nixcraft
nixCraft ๐Ÿง
2 years
LOL. Oh no the Linux source code was leaked ๐Ÿ˜ก๐Ÿ˜ญ
Tweet media one
160
787
5K
1
10
28
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
6 years
My Story: How to Accidentally Self-Publish a Book -
2
10
24
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
10 months
Effective editing of multiple files in Vim - #vim
0
10
26
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: #ios security tip :: Apple has released urgent and sudden updateโ€”iOS 14.4.1. It contains an important security fix. All iPhone users should update ASAP.
0
12
25
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Here's my attempt to try to use my time & skills for a good cause. 1. I'll perform a basic security audit of your Wordpress website, record the entire process, and share the video with you. 2. I'll donate your payment to a charity of my choice (and send you the evidence of it).
1
16
25
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
And after "ramping back up" there's a lunch break coming!
0
5
23
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
Until the 1st of January, you can get my book Mastering Vim Quickly: From WTF to OMG in no time with 30% OFF at: Use the promo code :smile p.s. #Vim has a :smile command! Try it out :)
Tweet media one
1
5
25
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: cool vim tips :: You can enter Insert mode: - after the character your cursor is on, by hitting a - with your cursor at the end of the current line by hitting A - with your cursor positioned at the beginning, by hitting I Hint for remembering *A*ppend, *I*nsert. #vim
2
6
24
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: mastering #vim quickly :: You can execute multiple commands at once using | between the commands. For example, use this sentence "Atom is bad and slow." and you run: :%s/Atom/Vim/ | %s/bad/good/ | %s/slow/fast/
0
6
24
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
FBI document shows what data can be obtained from encrypted messaging apps
0
21
24
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Vendors: we can answer your security/privacy related questions only once you sign up for our Enterprise plan. I see more and more vendors taking this approach. Insane. What's your experience @AccidentalCISO ?
11
2
24
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
@GergelyOrosz That's a lot (of risk and money). Pay more for GSuite to eliminate the need for Dropbox and Zoom -> cheaper, less dependencies. Think whether you need or how you use Grammarly () You're welcome ;)
1
1
23
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
7 years
@ramit "Time is money." It's not, time is much more valuable.
1
3
23
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
Copy/Move/Delete text without the cursor movement in Vim -
0
9
22
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
According to @GreyNoiseIO , ~100 are currently trying to exploit this (so called The Azure "OHMIGOD" vulnerability - CVE-2021-38647).
0
4
21
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: vim tip :: You can enter Insert mode after the character your cursor is on. Just hit a #vim
2
3
21
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Iโ€™m always grateful to hear feedback from my readersโ€ฆ hereโ€™s one, related to
Tweet media one
1
3
22
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
8 years
Why Vim โ€“ 21 Reasons to Learn Vim
0
14
21
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
You should update sudo asap. (). Easiest way to verify the fix: sudoedit -s '\' `perl -e 'print "A" x 65536'`" Patched sudo throws a usage error. Vulnerable sudo segfaults.
1
20
20
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
@nixcraft I used to run Gentoo on my laptops, but that doesn't make a lot of sense, if you're not working full-time with Gentoo. Compiling Firefox for entire day is not very fun. I still run Gentoo on my servers though - that works great.
2
1
19
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
6 years
Learn Vimscript the Hard Way is a book for users of the Vim editor who want to learn how to customize Vim: by @stevelosh /
0
6
19
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
::: productivity tip of the decade ::: In your browser, you can focus the address bar by hitting Ctrl+l You get the focus + the current URL selected, so you can immediately type the new URL. Especially handy for people using tilling window managers.
6
3
18
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
Microsoft issued 128 patches for 145 CVEs this month, 10 of which are critical. Here's a radical idea: stop using their software. Thank me later ;)
0
5
17
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
I'm hiring, join my team. #infosec #CyberSecurity Information Security Analyst
2
13
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Becoming an Advanced Learner -
1
4
17
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: #vim tip :: Start Vim. Hit Ctrl-o-o What just happened? :) Keep holding Ctrl and keep hitting o Magic! I share cools tips like this on
3
5
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
I kinda wrote a book, and people seem to like it ๐Ÿ˜
@MasteringVim
Mastering Vim
5 years
Some Mastering Vim Quickly reviews on :
Tweet media one
0
4
11
1
3
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
Interesting sudo bug published today:
0
13
15
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
7 years
"Don't wish it was easier wish you were better. Don't wish for less problems wish for more skills." - Jim Rohn
0
8
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
:: cli tip :: `tail -f` defaults to following the file descriptor, so if your file gets rotated, you're stuck. In order to avoid getting stuck when files are rotated, you can track the actual name of the file, not the file descriptor using `tail -F`.
1
1
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
1 year
Another example: A simple config line in .vimrc like :autocmd BufWritePost * :silent :w! >> /tmp/log.txt will essentially log all your key strokes to a file. Nasty trick for a shared linux/unix system accounts when others use Vim to edit config files, for example.
0
4
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
In attempt to help as many orgs I can, I formed an Information Security consultancy firm. The website is 80% ready, but YOLO, here it is: . I'm a one-man-band for now - so I will really appreciate any feedback.
4
5
16
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
"If plan A didn't work... the alphabet has 25 more letters! Stay cool!" :)
0
1
15
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
Looking for a book on Vim? Eฬตxฬตiฬตtฬตiฬตnฬตgฬต Mastering Vim Quickly: From WTF to OMG in to time will help you learn what matters the most.
Tweet media one
2
5
15
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
8 years
โ€œThe man who does not read good books has no advantage over the man who cannot read them.โ€ M. Twain
0
8
15
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
6 years
:D
Tweet media one
1
3
14
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
1 year
You can also use %vim to search for matches in your currently open tabs, and #vim to search for matches in page titles. #firefox
0
2
14
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
1 year
โ€œWriting is natureโ€™s way of telling us how sloppy our thinking isโ€ - Richard Guindon
0
6
14
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
3 years
Great post by @sivers - Write plain text files - I'd also suggest, learn to use Vim ;)
0
4
14
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
11 months
I'm looking to hire a native English speaking book editor, if you know anyone good, please let me know.
14
3
12
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
7 years
If you read one article this week, let it be this one: by average @sivers :)
2
10
13
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
2 years
AWS is the Internet's biggest single point of failure.
1
4
14
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
New Slack WYSIWYG rich text editor is extremely annoying. Why @SlackHQ , why?
3
3
13
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
Some #infosec people: "Don't be silly, don't open attachments from strangers!" Same #infosec people: "Oh, a new security tool!" git clone x; python or curl x | bash without even having a look at the code ๐Ÿคฆโ€โ™‚๏ธ #CyberSecurity
0
2
12
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 years
fyi: You can bypass youtube ads by adding a dot after the domain
1
3
12
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
9 months
Tweet media one
2
0
13
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
@getify I should have taken a picture that time - it happened that I had iphone and macbook connected via usb c (and no power), and there you go - I had a "perpetuum mobile" - they were "charging" each other, according to the battery indicator on both :D
1
1
13
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
5 years
Our amazing office :) btw, we're hiring: I'm personally looking for #infosec analyst to join my team.
@adjustcom
Adjust
5 years
A tour of Adjustโ€™s office in Berlin. Thank you @Office_Drop_In for the great interview and Andreas Lukoschek for the ๐Ÿ˜Žpictures. Read the full interview below:
0
0
6
2
2
12
@jovica
๐š“๐š˜๐šŸ๐š’๐šŒ๐šŠ
4 months
@dhh Naah, it doesnโ€™t have an AI, and it doesnโ€™t take screenshots every 5 seconds.
0
0
12