Friday, 30 September 2016

raspberry pi is loaded with SD card which contains NOOBS software. This software is used to load raspbien jessie into the pi, which serves as an operating system. after being loaded it has a browser, a file system and all the other features which are in a normal computer system but in a small version.

all the commands are run through terminal where we have to make sure that all is run as the root user.

next there are some dependencies which are to be installed for the working of this project.
vlc media player
nodejs
vnc server
etc..
they are not installed so easily but the installation comes with so many errors which are so difficult  to resolve.

Wednesday, 28 September 2016

our main aim is to work around alexa voice service. so in my internship there are going to be 2 projects centered on this technology.

today i started with first one. one with raspberry pi.

The Raspberry Pi is a series of credit card-sized single-board computers developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools and developing countries.

you just connect it with hdmi monitor and it works like a normal computer.

Alexa Voice Service (AVS) is Amazon’s intelligent voice recognition and natural language understanding service that allows you as a developer to voice-enable any connected device that has a microphone and speaker.


  1. Raspberry Pi 3 (Recommended) or Pi 2 Model B (Supported) 
  2. Micro-USB power cable for Raspberry Pi.
  3. Micro SD Card (Minimum 8 GB) - You need an operating system to get started. NOOBS (New Out of the Box Software) is an easy-to-use operating system install manager for Raspberry Pi. The simplest way to get NOOBS is to buy an SD card with NOOBS pre-installed - Alternatively, you can download and install it on your SD card
  4. USB 2.0 Mini Microphone - Raspberry Pi does not have a built-in microphone; to interact with Alexa you'll need an external one to plug in 
  5. External Speaker with 3.5mm audio cable -
  6. USB Keyboard & Mouse, and an external HDMI Monitor - we also recommend having a USB keyboard and mouse as well as an HDMI monitor handy if you're unable to rinto your Pi.
  7. Internet connection (Ethernet or WiFi)

Tuesday, 27 September 2016

after building that, today sir told me that we would be working on alexa voice service.
So i started to read about it. today

Friday, 23 September 2016

Thursday, 22 September 2016

atlast today I got one blog which installed cURL on the system and nghttp and cURL do somewhat of same thing and need almost same dependencies. Infact in the installation of cURL nghttp is also installed.

so in cygwin, first openssl is installed then we need libev and many other softwares. all were to be installed through cygwin.

In computer networkingOpenSSL is a software library to be used in applications that need to secure communications against eavesdropping or need to ascertain the identity of the party at the other end. It has found wide use in internet web servers, serving a majority of all web sites.
OpenSSL contains an open-source implementation of the SSL and TLS protocols. The core library, written in the C programming language, implements basic cryptographic functions and provides various utility functions. Wrappers allowing the use of the OpenSSL library in a variety of computer languages are available.
Versions are available for most Unix and Unix-like operating systems (including SolarisLinuxMac OS X and the various open-source BSD operating systems), OpenVMS and Microsoft Windows. IBM provides a port for the System i(OS/400).

openssl takes musch time to build and install.


Wednesday, 21 September 2016

It is not clearly mentioned in the documentation about building about in mingw or cygwin. SO just had to search about it on internet and damn nothing is available about the technology as it is still new.


Monday, 19 September 2016

After trying at home for the client, server I told sir it is not working we have to see some other option.
The other options which was available in documentation is building nghttp through cygwin.

Notes for building on Windows (Mingw/Cygwin)

Under Mingw environment, you can only compile the library, it's libnghttp2-X.dll and libnghttp2.a.
If you want to compile the applications(h2loadnghttpnghttpxnghttpd), you need to use the Cygwin environment.
Under Cygwin environment, to compile the applications you need to compile and install the libev first.
Secondly, you need to undefine the macro __STRICT_ANSI__, if you not, the functions fdopenfilenoand strptime will not available.

Friday, 16 September 2016

I succeeded with building nghttp through MSVC on windows. But we didnt get what we wanted. we needed to get the applications i.e nghttp client, server and proxy programs which were no available after building it.

So we searched through internet what are the available options that we have to do for getting those applications.

Thursday, 15 September 2016

Now after installing all dependencies, which weer required in building nghttp/2. main point came for building it on windows.
the steps were given on the website

Building from git
$ autoreconf -i
$ automake
$ autoconf
$ ./configure
$ make
Notes for building on Windows (MSVC)
  1. Install cmake for windows
  1. Open "Visual C++ ... Native Build Tool Command Prompt", and inside nghttp2 directly, run cmake.
  1. Then run cmake --build to build library.
  1. nghttp2.dll, nghttp2.lib, nghttp2.exp are placed under lib directory.

Building from git is easy, but please be sure that at least autoconf 2.68 is used:
To compile the source code, gcc >= 4.8.3 or clang >= 3.4 is required.
Note
To enable mruby support in nghttpx, run git submodule update --init before running configure script, and use --with-mruby configure option.
Note
Mac OS X users may need the --disable-threads configure option to disable multi-threading in nghttpd, nghttpx and h2load to prevent them from crashing. A patch is welcome to make multi threading work on Mac OS X platform.
Note
To compile the associated applications (nghttp, nghttpd, nghttpx and h2load), you must use the --enable-app configure option and ensure that the specified requirements above are met. Normally, configure script checks required dependencies to build these applications, and enable --enable-app automatically, so you don't have to use it explicitly. But if you found that applications were not built, then using --enable-app may find that cause, such as the missing dependency.
The easiest way to build native Windows nghttp2 dll is use cmake. The free version of Visual C++ Build Tools works fine.
Note that the above steps most likely produce nghttp2 library only. No bundled applications are compiled.

Wednesday, 14 September 2016

The following package is required to build the libnghttp2 library:
  • pkg-config >= 0.20
To build and run the unit test programs, the following package is required:
  • cunit >= 2.1
To build the documentation, you need to install:
If you need libnghttp2 (C library) only, then the above packages are all you need. Use --enable-lib-only to ensure that only libnghttp2 is built. This avoids potential build error related to building bundled applications.
To build and run the application programs (nghttpnghttpdnghttpx and h2load) in the srcdirectory, the following packages are required:
  • OpenSSL >= 1.0.1
  • libev >= 4.11
  • zlib >= 1.2.3
ALPN support requires OpenSSL >= 1.0.2 (released 22 January 2015). LibreSSL >= 2.2.0 can be used instead of OpenSSL, but OpenSSL has more features than LibreSSL at the time of this writing.
To enable the SPDY protocol in the application program nghttpx and h2load, the following package is required:
  • spdylay >= 1.3.2
To enable -a option (getting linked assets from the downloaded resource) in nghttp, the following package is required:
  • libxml2 >= 2.7.7
The HPACK tools require the following package:
  • jansson >= 2.5
To build sources under the examples directory, libevent is required:
  • libevent-openssl >= 2.0.8
To mitigate heap fragmentation in long running server programs (nghttpd and nghttpx), jemalloc is recommended:
  • jemalloc
libnghttp2_asio C++ library requires the following packages:
  • libboost-dev >= 1.54.0
  • libboost-thread-dev >= 1.54.0
The Python bindings require the following packages:
  • cython >= 0.19
  • python >= 2.7
  • python-setuptools

Tuesday, 13 September 2016

So today it was a new technology that I just read about.
HTTP/2
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was developed from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the Hypertext Transfer Protocol working group (httpbis, where bis means "second") of the Internet Engineering Task Force.HTTP/2 is the first new version of HTTP since HTTP 1.1, which was standardized in RFC 2068 in 1997. The Working Group presented HTTP/2 to IESG for consideration as a Proposed Standard in December 2014, and IESG approved it to publish as Proposed Standard on February 17, 2015.The HTTP/2 specification was published as RFC 7540 in May 2015.
The standardization effort was supported by Chrome, Opera, Firefox, Internet Explorer 11, Safari, Amazon Silk, and Edge browsers.[9] Most major browsers added HTTP/2 support by the end of 2015.
The technology whaich was to be used is based upon this protocol. nghttp/2
nghttp2 is an implementation of HTTP/2 and its header compression algorithm HPACK in C.
The framing layer of HTTP/2 is implemented as a form of reusable C library. On top of that, we have implemented HTTP/2 client, server and proxy. We have also developed load test and benchmarking tool for HTTP/2 and SPDY.
We have participated in httpbis working group since HTTP/2 draft-04, which is the first implementation draft. Since then we have updated nghttp2 library constantly to latest specification and nghttp2 is now one of the most mature HTTP/2 implementations.
All C APIs are fully documented.
HTTP/2 utilizes header compression method called HPACK. We offer HPACK encoder and decoder are available as public API.
nghttp2 library itself is a bit low-level. The experimental high level C++ API is also available.

Monday, 12 September 2016

after placement

So after getting placed, I returned back to the company and got back to work. Today I removed almost all errors but the memory issue did not resolve. I disabled some files which were not needed in the build and also in the project that we are doing.

but all in vain, it did not solve the issue. So sir asked to drop the project and told me from tomorrow we will do something new and keep this project at halt and see what we can do.


Friday, 9 September 2016

Thursday, 8 September 2016

Wednesday, 7 September 2016

Tuesday, 6 September 2016

Monday, 5 September 2016

Friday, 2 September 2016

Thursday, 1 September 2016

Today I put the source code for Lua into the middlewares of the project. Now this whole code is to be built and flashed onto the board. And man it has lots and lots of errors. 
Some symbol errors, some function errors, and many other. and the bigger one the memory issue. The code was big by some some bytes than the memory of the board. 

So now the task starts of removing those errors. and i can assure it will go like this for some days.