Are you over 18 and want to see adult content?
More Annotations

TV Installation Toronto - Telecommunication & Home Automation Services in Toronto – GTA Wiring
Are you over 18 and want to see adult content?

PornTor-Free Sex Online-Best Free HD Porn-King Of Sex Videos
Are you over 18 and want to see adult content?

Digital Cable TV, Internet and Home Phone - XFINITY
Are you over 18 and want to see adult content?

Cities, towns and villages on Citipedia.info
Are you over 18 and want to see adult content?

Flower Delivery Auckland, Florists Auckland - Wild Poppies
Are you over 18 and want to see adult content?
Favourite Annotations

Lunar calendar 2019 - live in the rhythm of nature
Are you over 18 and want to see adult content?

Vacation Rental Homes, Cabins, Beach Houses & More - VacationRenter
Are you over 18 and want to see adult content?

Navigators Insurance - Don’t get lost in insurance. We’re your Navigators
Are you over 18 and want to see adult content?

VOUCHER-ERGASIA - ΕΚΠΑΙΔΕΥΣΗ-ΘΕΣΙΕΣ ΕΡΓΑΣΙΑΣ – ΕΣΠΑ
Are you over 18 and want to see adult content?

Online product personalization - Customily online product designer
Are you over 18 and want to see adult content?

FPA - the home of qualified financial planning professionals
Are you over 18 and want to see adult content?

ABN AMRO Bank - Uw bankzaken goed geregeld - ABN AMRO
Are you over 18 and want to see adult content?

LEADER-ID (ИнÑтитут Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Ð»Ð¸Ð´ÐµÑ€Ð¾Ð²)
Are you over 18 and want to see adult content?

Spafford Setlist- 2019-08-03 @ Summer Meltdown in Darrington, WA - Spaffnerds- Of Nerds, By Nerds, and For Nerds
Are you over 18 and want to see adult content?

Adult Free X - Videos Online and Downloads Tube Bangbros
Are you over 18 and want to see adult content?

Bali Travel Hub - Indonesia Tourism, Beach Holidays, Island Vacations & Trips
Are you over 18 and want to see adult content?
Text
ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called.TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested MOCKING TIME AND TESTING EVENT LOOPS IN GO Also there is an old Go issue in Github about mockable time support, which mentions the two libraries above, and I do have some kind of hope that mocking time sooner or later will be included to the stdlib in some form, but we gotta be patient.So as of today, if we want to have mocked time, we have to use custom solutions. In this article, I'm going to be focusing on the second library LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
VIMPRJ
Usage. Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called.TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested MOCKING TIME AND TESTING EVENT LOOPS IN GO Also there is an old Go issue in Github about mockable time support, which mentions the two libraries above, and I do have some kind of hope that mocking time sooner or later will be included to the stdlib in some form, but we gotta be patient.So as of today, if we want to have mocked time, we have to use custom solutions. In this article, I'm going to be focusing on the second library LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
VIMPRJ
Usage. Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation. MICROCHIP DATA SHEET FINDER This is a simple script that scans Microchip website for various revisions of given document, and returns the latest available one. ---- Microchip data shee finder ----. Enter data sheet ID (like "DS61118" or "61118") : (Latest available revision of the data sheet with given ID will be downloaded from microchip.com)VIM-INDEXER
Vim-Indexer. Indexer is a Vim plugin that provides painless transparent tags generation and keeps tags up-to date. Tags are generated in background, so you don't have to wait while your tags are being generated. Consider reading the article Vim: convenient code navigation for your projects, which explains the topic on Indexer +Vimprj usage
VISUALIZING THE HEAP ON EMBEDDED DEVICES Visualizing the Heap on Embedded Devices. The heap on a device is usually a kind of black box: heap API rarely provides anything more than just returning free space size, and quite often it doesn't provide even that (since C standard doesn't oblige it to). We have little idea of the fragmentation (in particular, we're interested inlongest
BOT TERMINAL
Bot Terminal is a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests. So, it listens for data, parses it, and replies as necessary. I developed this tool in order to reverse-engineer various binary protocols of car ECUs (Engine ControlUnit).
RELIABLE, SECURE AND UNIVERSAL BACKUP FOR U2F TOKEN Probably the biggest issue for me: I always carry my u2f token and my phone with me, so again, it's a bad way to backup things. It's not too unlikely that I could lose both my phone and u2f token at the same time and thus get myself locked out of my accounts.VIMPRJ
Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced.. Or, you can just put file .vimprj, then this file will be sourced. WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. MICROCHIP PICKIT3, DON'T HALLOO TILL YOU ARE OUT OF THE Microchip PICkit3, Don't Halloo Till You Are Out of the Wood. Microchip has a tool called MDB: Microchip command-line debugger. It's a very nice idea: we can automatize things; at least, we can program a hex from a script. Implementation, however, is far from perfect, but, well, it works somehow. It allows us to create a text file like this: GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation. STANDARD INTERFACE BETWEEN A TEXT EDITOR AND AN IDE The thing is that IDE should not include text editor. Well, it might include one, just to be more self-contained, but the text editor shouldn't be a major part of an IDE: instead, there should be an interface that both parties (IDEs and text editors) should agree on.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called.TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested MOCKING TIME AND TESTING EVENT LOOPS IN GO Also there is an old Go issue in Github about mockable time support, which mentions the two libraries above, and I do have some kind of hope that mocking time sooner or later will be included to the stdlib in some form, but we gotta be patient.So as of today, if we want to have mocked time, we have to use custom solutions. In this article, I'm going to be focusing on the second library LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
VIMPRJ
Usage. Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called.TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested MOCKING TIME AND TESTING EVENT LOOPS IN GO Also there is an old Go issue in Github about mockable time support, which mentions the two libraries above, and I do have some kind of hope that mocking time sooner or later will be included to the stdlib in some form, but we gotta be patient.So as of today, if we want to have mocked time, we have to use custom solutions. In this article, I'm going to be focusing on the second library LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
VIMPRJ
Usage. Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation. MICROCHIP DATA SHEET FINDER This is a simple script that scans Microchip website for various revisions of given document, and returns the latest available one. ---- Microchip data shee finder ----. Enter data sheet ID (like "DS61118" or "61118") : (Latest available revision of the data sheet with given ID will be downloaded from microchip.com)VIM-INDEXER
Vim-Indexer. Indexer is a Vim plugin that provides painless transparent tags generation and keeps tags up-to date. Tags are generated in background, so you don't have to wait while your tags are being generated. Consider reading the article Vim: convenient code navigation for your projects, which explains the topic on Indexer +Vimprj usage
VISUALIZING THE HEAP ON EMBEDDED DEVICES Visualizing the Heap on Embedded Devices. The heap on a device is usually a kind of black box: heap API rarely provides anything more than just returning free space size, and quite often it doesn't provide even that (since C standard doesn't oblige it to). We have little idea of the fragmentation (in particular, we're interested inlongest
BOT TERMINAL
Bot Terminal is a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests. So, it listens for data, parses it, and replies as necessary. I developed this tool in order to reverse-engineer various binary protocols of car ECUs (Engine ControlUnit).
RELIABLE, SECURE AND UNIVERSAL BACKUP FOR U2F TOKEN Probably the biggest issue for me: I always carry my u2f token and my phone with me, so again, it's a bad way to backup things. It's not too unlikely that I could lose both my phone and u2f token at the same time and thus get myself locked out of my accounts.VIMPRJ
Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced.. Or, you can just put file .vimprj, then this file will be sourced. WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. MICROCHIP PICKIT3, DON'T HALLOO TILL YOU ARE OUT OF THE Microchip PICkit3, Don't Halloo Till You Are Out of the Wood. Microchip has a tool called MDB: Microchip command-line debugger. It's a very nice idea: we can automatize things; at least, we can program a hex from a script. Implementation, however, is far from perfect, but, well, it works somehow. It allows us to create a text file like this: GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation. STANDARD INTERFACE BETWEEN A TEXT EDITOR AND AN IDE The thing is that IDE should not include text editor. Well, it might include one, just to be more self-contained, but the text editor shouldn't be a major part of an IDE: instead, there should be an interface that both parties (IDEs and text editors) should agree on.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests.TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests.VIM-INDEXER
Vim-Indexer. Indexer is a Vim plugin that provides painless transparent tags generation and keeps tags up-to date. Tags are generated in background, so you don't have to wait while your tags are being generated. Consider reading the article Vim: convenient code navigation for your projects, which explains the topic on Indexer +Vimprj usage
TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
I'M TIRED OF MAKEFILES Makefile reuse is a problem. Consider: we have a library mylib, which is a separate project on its own, and it has its own Makefile. The end product is a file mylib.a. So, among others, there is a rule which looks like: mylib.a: src1.c src2.c src3.c . some recipe to build mylib.a . Now, we have a project app with a separate Makefile, and GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests.TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests.VIM-INDEXER
Vim-Indexer. Indexer is a Vim plugin that provides painless transparent tags generation and keeps tags up-to date. Tags are generated in background, so you don't have to wait while your tags are being generated. Consider reading the article Vim: convenient code navigation for your projects, which explains the topic on Indexer +Vimprj usage
TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
I'M TIRED OF MAKEFILES Makefile reuse is a problem. Consider: we have a library mylib, which is a separate project on its own, and it has its own Makefile. The end product is a file mylib.a. So, among others, there is a rule which looks like: mylib.a: src1.c src2.c src3.c . some recipe to build mylib.a . Now, we have a project app with a separate Makefile, and GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. MICROCHIP DATA SHEET FINDER This is a simple script that scans Microchip website for various revisions of given document, and returns the latest available one. ---- Microchip data shee finder ----. Enter data sheet ID (like "DS61118" or "61118") : (Latest available revision of the data sheet with given ID will be downloaded from microchip.com)DFTRIG
DFTrig consists of two parts: Small C module that works with lookup table generated by tablegen. Of course, lookup table contains only minimal information: sine values for just a single quadrant, i.e. degrees. That is fairly enough to calculate sine / cosine for any angle. The behavior is quite customizable.BOT TERMINAL
Bot Terminal is a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests. So, it listens for data, parses it, and replies as necessary. I developed this tool in order to reverse-engineer various binary protocols of car ECUs (Engine ControlUnit).
WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests.GEEKMARKS
Demo. After installing the Chrome extension, click on the “g” icon: Log in (via Google account), and when it's done, menu will look as follows: Now, on any page you want to bookmark, click “Create bookmark” from the menu (or use a hotkey; I personally use Shift+Ctrl+B), enter tags for your new bookmark, and save it. RELIABLE, SECURE AND UNIVERSAL BACKUP FOR U2F TOKEN Probably the biggest issue for me: I always carry my u2f token and my phone with me, so again, it's a bad way to backup things. It's not too unlikely that I could lose both my phone and u2f token at the same time and thus get myself locked out of my accounts.VIMPRJ
Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced.. Or, you can just put file .vimprj, then this file will be sourced. MICROCHIP PICKIT3, DON'T HALLOO TILL YOU ARE OUT OF THE Microchip PICkit3, Don't Halloo Till You Are Out of the Wood. Microchip has a tool called MDB: Microchip command-line debugger. It's a very nice idea: we can automatize things; at least, we can program a hex from a script. Implementation, however, is far from perfect, but, well, it works somehow. It allows us to create a text file like this: STANDARD INTERFACE BETWEEN A TEXT EDITOR AND AN IDE The thing is that IDE should not include text editor. Well, it might include one, just to be more self-contained, but the text editor shouldn't be a major part of an IDE: instead, there should be an interface that both parties (IDEs and text editors) should agree on.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called. HERE'S WHY I LOVE GO Here's why I love Go. Many years ago, I've been waiting for a language like Go. Back then, I was primarily working with C (for microcontrollers), and C++/Java/Python/etc (for bigger machines). These are great tools, but still I was longing for compiled, statically typed, memory-safe (and garbage collected) language, whichcompiles for the
LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
INDENT WITH TABS, ALIGN WITH SPACES Although the indentation / alignment politics are independent of the editor being used, I decided to put some recommendations on how to set up Vim correctly so that it would be easy for you to follow the principle “Indent with tabs, align with spaces” in this editor, if you use it. Unfortunately, at the moment Vim can't handle thisautomatically.
WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called. HERE'S WHY I LOVE GO Here's why I love Go. Many years ago, I've been waiting for a language like Go. Back then, I was primarily working with C (for microcontrollers), and C++/Java/Python/etc (for bigger machines). These are great tools, but still I was longing for compiled, statically typed, memory-safe (and garbage collected) language, whichcompiles for the
LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
INDENT WITH TABS, ALIGN WITH SPACES Although the indentation / alignment politics are independent of the editor being used, I decided to put some recommendations on how to set up Vim correctly so that it would be easy for you to follow the principle “Indent with tabs, align with spaces” in this editor, if you use it. Unfortunately, at the moment Vim can't handle thisautomatically.
WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.NATURE
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. MICROCHIP DATA SHEET FINDER This is a simple script that scans Microchip website for various revisions of given document, and returns the latest available one. ---- Microchip data shee finder ----. Enter data sheet ID (like "DS61118" or "61118") : (Latest available revision of the data sheet with given ID will be downloaded from microchip.com)TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and testedBOT TERMINAL
Bot Terminal is a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests. So, it listens for data, parses it, and replies as necessary. I developed this tool in order to reverse-engineer various binary protocols of car ECUs (Engine ControlUnit).
TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
VIMPRJ
Usage. Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced. WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. RELIABLE, SECURE AND UNIVERSAL BACKUP FOR U2F TOKEN Probably the biggest issue for me: I always carry my u2f token and my phone with me, so again, it's a bad way to backup things. It's not too unlikely that I could lose both my phone and u2f token at the same time and thus get myself locked out of my accounts. MICROCHIP PICKIT3, DON'T HALLOO TILL YOU ARE OUT OF THE Microchip PICkit3, Don't Halloo Till You Are Out of the Wood. Microchip has a tool called MDB: Microchip command-line debugger. It's a very nice idea: we can automatize things; at least, we can program a hex from a script. Implementation, however, is far from perfect, but, well, it works somehow. It allows us to create a text file like this: STANDARD INTERFACE BETWEEN A TEXT EDITOR AND AN IDE The thing is that IDE should not include text editor. Well, it might include one, just to be more self-contained, but the text editor shouldn't be a major part of an IDE: instead, there should be an interface that both parties (IDEs and text editors) should agree on.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called. LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. HERE'S WHY I LOVE GO Here's why I love Go. Many years ago, I've been waiting for a language like Go. Back then, I was primarily working with C (for microcontrollers), and C++/Java/Python/etc (for bigger machines). These are great tools, but still I was longing for compiled, statically typed, memory-safe (and garbage collected) language, whichcompiles for the
INDENT WITH TABS, ALIGN WITH SPACES Although the indentation / alignment politics are independent of the editor being used, I decided to put some recommendations on how to set up Vim correctly so that it would be easy for you to follow the principle “Indent with tabs, align with spaces” in this editor, if you use it. Unfortunately, at the moment Vim can't handle thisautomatically.
TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.ABOUT
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. UNIT-TESTING (EMBEDDED) C APPLICATIONS WITH CEEDLING Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. CMock. CMock is a utility for automagical generation of stubs and mocks for Unity Tests. DOCKER: PRINTABLE QUICK REFERENCE (CHEAT SHEET) The appearance of the card is largely inspired by the GDB Quick Reference: I was using it for a long time already, and it was a very pleasant experience. It is clear and concise. Personally, I just print it on both sides of a single A4 sheet. The card is written in LaTeX. Not everything was smooth. OBJECT-ORIENTED TECHNIQUES IN C For that to be done, OO-approach comes to the rescue. We want to have object Crc which has two methods: byte_feed (uint8_t byte) : feed next byte; value_get () : get current crc32 value. Since C doesn't support object-oriented programming, we have to manually pass pointer to the object for which method is called. LET'S RUN LISP ON A MICROCONTROLLER Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. HERE'S WHY I LOVE GO Here's why I love Go. Many years ago, I've been waiting for a language like Go. Back then, I was primarily working with C (for microcontrollers), and C++/Java/Python/etc (for bigger machines). These are great tools, but still I was longing for compiled, statically typed, memory-safe (and garbage collected) language, whichcompiles for the
INDENT WITH TABS, ALIGN WITH SPACES Although the indentation / alignment politics are independent of the editor being used, I decided to put some recommendations on how to set up Vim correctly so that it would be easy for you to follow the principle “Indent with tabs, align with spaces” in this editor, if you use it. Unfortunately, at the moment Vim can't handle thisautomatically.
TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. GEEKMARKS: OPEN-SOURCE, API-DRIVEN, GEEKY BOOKMARKING SERVICE Installation is currently possible as follows: get the geekmarks.crx file, Chrome will complain that installing extensions from this website is not allowed, and will just save geekmarks.crx into your Downloads folder. Then, navigate to chrome://extensions/ (you have to copy-paste this URL, sorry), drag-n-drop your previously saved geekmarks.crx file there, and confirm the installation.NATURE
Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests. MICROCHIP DATA SHEET FINDER This is a simple script that scans Microchip website for various revisions of given document, and returns the latest available one. ---- Microchip data shee finder ----. Enter data sheet ID (like "DS61118" or "61118") : (Latest available revision of the data sheet with given ID will be downloaded from microchip.com)TNEO RTOS
TNeo RTOS. TNeo is a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs. It is compact and fast. TNeo was born as a thorough review and re-implementation of TNKernel v2.7. The new kernel has well-formed code, inherited bugs are fixed as well as new features being added, it is well documented and tested TESTING SOCKET.IO + PASSPORT.SOCKETIO WITH MOCHA [DMITRY But, unlike most other socket.io examples, it uses real authentication with Passport, and the authentication data is available in socket connection. To run the application, clone the repository, cd to it, and run the following: npm install bower install. Now, you can startthe application.
BOT TERMINAL
Bot Terminal is a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests. So, it listens for data, parses it, and replies as necessary. I developed this tool in order to reverse-engineer various binary protocols of car ECUs (Engine ControlUnit).
WHY NOT IMPROVE ERROR HANDLING IN OUR GO PROJECTS? [DMITRY Bot Terminal: a crossplatform utility that performs binary data exchange via serial port.It allows one to set up flexible rules about how to reply to different requests.VIMPRJ
Usage of this plugin is quite easy. In the root directory of your project, you need to create new directory .vimprj and put any number of files *.vim inside. Every time you open new file in Vim, plugin looks for .vimprj directory up by tree, and if it is found, then all *.vim files from it will be sourced.. Or, you can just put file .vimprj, then this file will be sourced. RELIABLE, SECURE AND UNIVERSAL BACKUP FOR U2F TOKEN Probably the biggest issue for me: I always carry my u2f token and my phone with me, so again, it's a bad way to backup things. It's not too unlikely that I could lose both my phone and u2f token at the same time and thus get myself locked out of my accounts. MICROCHIP PICKIT3, DON'T HALLOO TILL YOU ARE OUT OF THE Microchip PICkit3, Don't Halloo Till You Are Out of the Wood. Microchip has a tool called MDB: Microchip command-line debugger. It's a very nice idea: we can automatize things; at least, we can program a hex from a script. Implementation, however, is far from perfect, but, well, it works somehow. It allows us to create a text file like this: STANDARD INTERFACE BETWEEN A TEXT EDITOR AND AN IDE The thing is that IDE should not include text editor. Well, it might include one, just to be more self-contained, but the text editor shouldn't be a major part of an IDE: instead, there should be an interface that both parties (IDEs and text editors) should agree on.RSS
Dmitry Frank
Software Engineer
Trace: • start • aboutSitemap Log In
Search
*
About me
SECURITY
*
Reliable, Secure and Universal Backup for U2F TokenJAVASCRIPT
*
How do JavaScript closures work under the hood : the illustrated explanation*
Testing Socket.io + Passport.socketio with MochaLISP
*
Let's Run Lisp on a MicrocontrollerGO
*
Here's why I love Go*
Why not improve error handling in our Go projects?*
Geekmarks : an Open-Source, API-driven, geeky bookmarking serviceC, EMBEDDED
*
How I ended up writing a new real-time kernel*
Unit-testing (embedded) C applications with Ceedling : let's write C codethat doesn't suck
*
Object-oriented techniques in C : my experience on the topic, plus an utility for autogeneration of boilerplate code*
Visualizing the Heap on Embedded Devices , and getting highly efficient heap manager for memory-constrained devices*
TNeo RTOS : well-formed and carefully tested real-time kernel for 16- and 32-bit MCUs*
Bmp writer : C module for painless generation of bmp screenshots (mainly for embedded usage)*
DFTrig : C module for calculation of trigonometric functions by lookup table, table generator included.*
Microchip data sheet finder*
Indent with tabs, align with spacesC++, QT
*
Bot Terminal : a crossplatform utility that performs binary data exchange via serial port. It allows one to set up flexible rules about how to reply to different requests.VIM
*
Vim: convenient code navigation for your projects : thorough explanation of advanced Indexer + Vimprj usage*
Vim-Indexer : plugin for Vim that provides painless transparent tags generation*
Vimprj : plugin for Vim that helps you manage options for multiple projects*
Quit another window : plugin for Vim that helps you close arbitrary window without bothering to leavethe current one
LINUX
*
My Udev Notify : little bash script that shows notifications when _any_ USB device is plugged/unplugged*
Fuzzy bookmarks for your shell : very efficient and convenient way to keep a list of frequently accessed directories from shellCHEAT-SHEETS
*
Docker: Printable Quick Reference (Cheat Sheet)BLOG
* Mongoose Embedded Networking Library on nRF51 and nRF52 (Bluetooth) * I'm Tired of Makefiles * Standard interface between a text editor and an IDE? * Microchip PICkit3, Don't Halloo Till You Are Out of the Wood * Qt Creator in VirtualBox with Windows guest OS * Usage of Ragel in Qt projectCONTACT
*
mail@dmitryfrank.com -------------------------RSS
Hi, my name's Dmitry Frank. I'm a passionate software engineer with strong background in low-level parts of the stack (MCU real-time kernels, C, Assembler), and experienced in higher-level technologies as well: Go, C++, JavaScript, and many others. Author of well-formed and carefully tested real-time kernel for 16- and 32-bit MCUs: TNeo , which is now used by several companies, including the car alarm company StarLine LLC . I'm constantly learning new stuff, and I love to write well-formed and maintainable software. There are two things that I probably love more than anything else (apart from my family, of course) : nature and good software. It may sound strange, but I love them so much so that I often identify each of them with one another. And, of course, I strive to write my own software so that it is as beautiful and elegant as nature is. Easier said than done, though. If you want to contact me, email is probably the best. My PGP key: dmitryfrank.asc . I'm also on GitHub , Stack Overflow.
about.txt · Last modified: 2018/02/16 17:59 by dfrank Media Manager Back to topDetails
Copyright © 2022 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0