0

i tried to install turbodbc in my ubuntu 18.04 using :

pip install turbodbc

inside the virtual environment. But its showing this error.

pip install turbodbc

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. Collecting turbodbc Downloading https://files.pythonhosted.org/packages/fd/7e/32673b7eb635354ad1d65b7d0935346554a33f949ccbc3cb8f70c3ea6912/turbodbc-3.1.1.tar.gz (77kB) |████████████████████████████████| 81kB 650kB/s Requirement already satisfied: pybind11>=2.2.0 in /home/user/.virtualenvs/chatbot/lib/python2.7/site-packages (from turbodbc) (2.2.4) Requirement already satisfied: six in /home/user/.virtualenvs/chatbot/lib/python2.7/site-packages (from turbodbc) (1.12.0) Building wheels for collected packages: turbodbc Building wheel for turbodbc (setup.py) ... error ERROR: Complete output from command /home/user/.virtualenvs/chatbot/bin/python2.7 -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-Hg7XhF/turbodbc/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-bqCHgK --python-tag cp27: ERROR: running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/cursor.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/api_constants.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/constructors.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/exceptions.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/connect.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/init.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/connection.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/data_types.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/options.py -> build/lib.linux-x86_64-2.7/turbodbc running egg_info writing requirements to turbodbc.egg-info/requires.txt writing turbodbc.egg-info/PKG-INFO writing top-level names to turbodbc.egg-info/top_level.txt writing dependency_links to turbodbc.egg-info/dependency_links.txt reading manifest file 'turbodbc.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'turbodbc.egg-info/SOURCES.txt' running build_ext building 'libturbodbc' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/src creating build/temp.linux-x86_64-2.7/src/cpp_odbc creating build/temp.linux-x86_64-2.7/src/cpp_odbc/level2 creating build/temp.linux-x86_64-2.7/src/cpp_odbc/level3 creating build/temp.linux-x86_64-2.7/src/cpp_odbc/level1 creating build/temp.linux-x86_64-2.7/src/turbodbc creating build/temp.linux-x86_64-2.7/src/turbodbc/result_sets creating build/temp.linux-x86_64-2.7/src/turbodbc/parameter_sets creating build/temp.linux-x86_64-2.7/src/turbodbc/field_translators creating build/temp.linux-x86_64-2.7/src/turbodbc/descriptions x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/statement.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/statement.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/connection.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/connection.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/column_description.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/column_description.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/make_environment.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/make_environment.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/cpp_odbc.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/cpp_odbc.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/error.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/error.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/multi_value_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/multi_value_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/environment.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/environment.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/string_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/string_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/input_string_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/input_string_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/u16string_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/u16string_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/level2.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/level2.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/level1_connector.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/level1_connector.o --std=c++11 src/cpp_odbc/level2/level1_connector.cpp:17:10: fatal error: boost/locale.hpp: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1


ERROR: Failed building wheel for turbodbc Running setup.py clean for turbodbc Failed to build turbodbc Installing collected packages: turbodbc Running setup.py install for turbodbc ... error ERROR: Complete output from command /home/user/.virtualenvs/chatbot/bin/python2.7 -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-Hg7XhF/turbodbc/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-C72JEF/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/.virtualenvs/chatbot/include/site/python2.7/turbodbc: ERROR: running install running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/cursor.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/api_constants.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/constructors.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/exceptions.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/connect.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/init.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/connection.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/data_types.py -> build/lib.linux-x86_64-2.7/turbodbc copying turbodbc/options.py -> build/lib.linux-x86_64-2.7/turbodbc running egg_info writing requirements to turbodbc.egg-info/requires.txt writing turbodbc.egg-info/PKG-INFO writing top-level names to turbodbc.egg-info/top_level.txt writing dependency_links to turbodbc.egg-info/dependency_links.txt reading manifest file 'turbodbc.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'turbodbc.egg-info/SOURCES.txt' running build_ext building 'libturbodbc' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/src creating build/temp.linux-x86_64-2.7/src/cpp_odbc creating build/temp.linux-x86_64-2.7/src/cpp_odbc/level2 creating build/temp.linux-x86_64-2.7/src/cpp_odbc/level3 creating build/temp.linux-x86_64-2.7/src/cpp_odbc/level1 creating build/temp.linux-x86_64-2.7/src/turbodbc creating build/temp.linux-x86_64-2.7/src/turbodbc/result_sets creating build/temp.linux-x86_64-2.7/src/turbodbc/parameter_sets creating build/temp.linux-x86_64-2.7/src/turbodbc/field_translators creating build/temp.linux-x86_64-2.7/src/turbodbc/descriptions x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/statement.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/statement.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/connection.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/connection.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/column_description.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/column_description.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/make_environment.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/make_environment.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/cpp_odbc.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/cpp_odbc.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/error.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/error.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/multi_value_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/multi_value_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/environment.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/environment.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/string_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/string_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/input_string_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/input_string_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/u16string_buffer.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/u16string_buffer.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/level2.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/level2.o --std=c++11 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Iinclude/ -I/home/user/.virtualenvs/chatbot/include/site/python2.7 -I/usr/include/python2.7 -c src/cpp_odbc/level2/level1_connector.cpp -o build/temp.linux-x86_64-2.7/src/cpp_odbc/level2/level1_connector.o --std=c++11 src/cpp_odbc/level2/level1_connector.cpp:17:10: fatal error: boost/locale.hpp: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- ERROR: Command "/home/user/.virtualenvs/chatbot/bin/python2.7 -u -c 'import setuptools, tokenize;file='"'"'/tmp/pip-install-Hg7XhF/turbodbc/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-C72JEF/install-record.txt --single-version-externally-managed --compile --install-headers /home/user/.virtualenvs/chatbot/include/site/python2.7/turbodbc" failed with error code 1 in /tmp/pip-install-Hg7XhF/turbodbc/

How can I get rid of this error. Any help will be appreciated.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.