Showing posts with label common issue. Show all posts
Showing posts with label common issue. Show all posts

Better Python Standard Library Autocompletion for Notepad++

Posted: Thursday, 7 July 2016

Download: http://static.extramaster.net/python.xml.zip (476kb download - 3,367kb extracted)
Note that there's 13,563 definitions included, so any application that attempts to parse XML structure will have a bad time.

Before:


After:




Using the Notepad++ "python.xml" generator at: https://sourceforge.net/projects/npp-python/, in conjunction with a script that imports all Python modules: http://stackoverflow.com/questions/1206832/importing-the-entire-python-standard-library, on a computer with a fresh Python install, nabs a "python.xml" file with definitions and autocomplete entries for all Python Standard Library modules.


Download: http://static.extramaster.net/python.xml.zip
Or if github gists are your thing: https://gist.github.com/extramaster/9d0b7eba99a9708eb3f71ae95bcd42b5

The "python.xml" file should be placed in "C:\Program Files (x86)\Notepad++\plugins\APIs" or "C:\Program Files\Notepad++\plugins\APIs", overwriting the pre-installed copy.

In case you want to revert back to the pre-installed "python.xml" file, here's a copy: http://static.extramaster.net/python_original.xml.zip

Here's a list of all of the Python Standard Libraries used in the creation of the autocomplete file:
import _bsddb
import _ctypes
import _ctypes_test
import _elementtree
import _hashlib
import _msi
import _multiprocessing
import _socket
import _sqlite3
import _ssl
import _testcapi
import _tkinter
import bz2
import pyexpat
import select
import unicodedata
import winsound
import BaseHTTPServer
import Bastion
import CGIHTTPServer
import ConfigParser
import Cookie
import DocXMLRPCServer
import HTMLParser
import MimeWriter
import Queue
import SimpleHTTPServer
import SimpleXMLRPCServer
import SocketServer
import StringIO
import UserDict
import UserList
import UserString
import __future__
import _abcoll
import _osx_support
import _pyio
import _strptime
import _threading_local
import _weakrefset
import abc
import aifc
import antigravity
import anydbm
import argparse
import ast
import asynchat
import asyncore
import atexit
import audiodev
import base64
import bdb
import binhex
import bisect
import bsddb
import cProfile
import calendar
import cgi
import cgitb
import chunk
import cmd
import code
import codecs
import codeop
import collections
import colorsys
import commands
import compileall
import compiler
import contextlib
import cookielib
import copy
import copy_reg
import csv
import ctypes
import dbhash
import decimal
import difflib
import dircache
import dis
import distutils
import doctest
import dumbdbm
import dummy_thread
import dummy_threading
import email
import encodings
import filecmp
import fileinput
import fnmatch
import formatter
import fpformat
import fractions
import ftplib
import functools
import genericpath
import getopt
import getpass
import gettext
import glob
import gzip
import hashlib
import heapq
import hmac
import hotshot
import htmlentitydefs
import htmllib
import httplib
import idlelib
import ihooks
import imaplib
import imghdr
import importlib
import imputil
import inspect
import io
import json
import keyword
import lib2to3
import linecache
import locale
import logging
import macpath
import macurl2path
import mailbox
import mailcap
import markupbase
import md5
import mhlib
import mimetools
import mimetypes
import mimify
import modulefinder
import msilib
import multifile
import multiprocessing
import mutex
import netrc
import new
import nntplib
import ntpath
import nturl2path
import numbers
import opcode
import optparse
import os
import os2emxpath
import pdb
import pickle
import pickletools
import pipes
import pkgutil
import platform
import plistlib
import popen2
import poplib
import posixfile
import posixpath
import pprint
import profile
import pstats
import py_compile
import pyclbr
import pydoc
import pydoc_data
import quopri
import random
import re
import repr
import rexec
import rfc822
import rlcompleter
import robotparser
import runpy
import sched
import sets
import sgmllib
import sha
import shelve
import shlex
import shutil
import site
import smtpd
import smtplib
import sndhdr
import socket
import sqlite3
import sre
import sre_compile
import sre_constants
import sre_parse
import ssl
import stat
import statvfs
import string
import stringold
import stringprep
import struct
import subprocess
import sunau
import sunaudio
import symbol
import symtable
import sysconfig
import tabnanny
import tarfile
import telnetlib
import tempfile
import test
import textwrap
import this
import threading
import timeit
import toaiff
import token
import tokenize
import trace
import traceback
import types
import unittest
import urllib
import urllib2
import urlparse
import user
import uu
import uuid
import warnings
import wave
import weakref
import webbrowser
import whichdb
import wsgiref
import xdrlib
import xml
import xmllib
import xmlrpclib
import zipfile
import Canvas
import Dialog
import FileDialog
import FixTk
import ScrolledText
import SimpleDialog
import Tix
import Tkconstants
import Tkdnd
import Tkinter
import tkColorChooser
import tkCommonDialog
import tkFileDialog
import tkFont
import tkMessageBox
import tkSimpleDialog
import ttk
import turtle

Zbar 64bit for Python 2.7

Posted: Saturday, 25 June 2016

http://static.extramaster.net/zbar-0.10.win-amd64-py2.7.msi (build of: https://github.com/NaturalHistoryMuseum/ZBarWin64)

If your pip install of ZBar goes something along the lines of

Collecting zbar
  Using cached zbar-0.10.tar.bz2
Building wheels for collected packages: zbar
  Running setup.py bdist_wheel for zbar ... error
  Complete output from command "c:\program files (x86)\python27\python.exe" -u -c "import setuptools, tokenize;__file__='c:\\users\\andytr~1\\appdata\\local\\temp\\pip-build-dtzlas\\zbar\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d c:\users\andytr~1\appdata\local\temp\tmpq_wfxtpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_ext
  building 'zbar' extension
  creating build
  creating build\temp.win-amd64-2.7
  creating build\temp.win-amd64-2.7\Release
  C:\Users\Andy Tran\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-Ic:\program files (x86)\python27\include" "-Ic:\program files (x86)\python27\PC" /Tczbarmodule.c /Fobuild\temp.win-amd64-2.7\Release\zbarmodule.obj
  zbarmodule.c
  zbarmodule.c(65) : error C2143: syntax error : missing ';' before 'type'
  zbarmodule.c(66) : error C2065: 'major' : undeclared identifier
  zbarmodule.c(66) : error C2065: 'minor' : undeclared identifier
  zbarmodule.c(68) : error C2065: 'major' : undeclared identifier
  zbarmodule.c(68) : error C2065: 'minor' : undeclared identifier
  zbarmodule.c(133) : error C2275: 'zbar_error_t' : illegal use of this type as an expression
          c:\program files (x86)\python27\include\zbar.h(156) : see declaration of 'zbar_error_t'
  zbarmodule.c(133) : error C2146: syntax error : missing ';' before identifier 'ei'
  zbarmodule.c(133) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(134) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(134) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(134) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(135) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(135) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(136) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(146) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\program files (x86)\python27\include\object.h(108) : see declaration of 'PyObject'
  zbarmodule.c(146) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(147) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(151) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(151) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(151) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(152) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(152) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(152) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(153) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(153) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(153) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(154) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(154) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(154) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(155) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(155) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(155) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(156) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(156) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(156) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(157) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(157) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(157) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(158) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(158) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(158) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(159) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(159) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(159) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(160) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(160) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(160) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(162) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(162) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(162) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(163) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(164) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(164) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(164) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
  zbarmodule.c(164) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(164) : error C2065: 'ei' : undeclared identifier
  zbarmodule.c(167) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\program files (x86)\python27\include\object.h(108) : see declaration of 'PyObject'
  zbarmodule.c(167) : error C2065: 'dict' : undeclared identifier
  zbarmodule.c(167) : error C2065: 'mod' : undeclared identifier
  zbarmodule.c(167) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(167) : warning C4024: 'PyModule_GetDict' : different types for formal and actual parameter 1
  zbarmodule.c(169) : error C2065: 'dict' : undeclared identifier
  zbarmodule.c(169) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(169) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(171) : error C2065: 'dict' : undeclared identifier
  zbarmodule.c(171) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(171) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(183) : error C2275: 'PyObject' : illegal use of this type as an expression
          c:\program files (x86)\python27\include\object.h(108) : see declaration of 'PyObject'
  zbarmodule.c(183) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(185) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(185) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(185) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(186) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(186) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(186) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(187) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(187) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(187) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(188) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(188) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(188) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(189) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(189) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(189) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(190) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(190) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(190) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(191) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(191) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(191) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(192) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(192) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(192) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(193) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(193) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(193) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(194) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(194) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(194) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(195) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(195) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(195) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(196) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(196) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(196) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  zbarmodule.c(197) : error C2065: 'tp_dict' : undeclared identifier
  zbarmodule.c(197) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
  zbarmodule.c(197) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
  error: command 'C:\\Users\\Andy Tran\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

  ----------------------------------------
  Failed building wheel for zbar
  Running setup.py clean for zbar
Failed to build zbar
Installing collected packages: zbar
  Running setup.py install for zbar ... error
    Complete output from command "c:\program files (x86)\python27\python.exe" -u -c "import setuptools, tokenize;__file__='c:\\users\\andytr~1\\appdata\\local\\temp\\pip-build-dtzlas\\zbar\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\andytr~1\appdata\local\temp\pip-6cbwmc-record\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_ext
    building 'zbar' extension
    creating build
    creating build\temp.win-amd64-2.7
    creating build\temp.win-amd64-2.7\Release
    C:\Users\Andy Tran\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-Ic:\program files (x86)\python27\include" "-Ic:\program files (x86)\python27\PC" /Tczbarmodule.c /Fobuild\temp.win-amd64-2.7\Release\zbarmodule.obj
    zbarmodule.c
    zbarmodule.c(65) : error C2143: syntax error : missing ';' before 'type'
    zbarmodule.c(66) : error C2065: 'major' : undeclared identifier
    zbarmodule.c(66) : error C2065: 'minor' : undeclared identifier
    zbarmodule.c(68) : error C2065: 'major' : undeclared identifier
    zbarmodule.c(68) : error C2065: 'minor' : undeclared identifier
    zbarmodule.c(133) : error C2275: 'zbar_error_t' : illegal use of this type as an expression
            c:\program files (x86)\python27\include\zbar.h(156) : see declaration of 'zbar_error_t'
    zbarmodule.c(133) : error C2146: syntax error : missing ';' before identifier 'ei'
    zbarmodule.c(133) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(134) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(134) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(134) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(135) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(135) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(136) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(146) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\program files (x86)\python27\include\object.h(108) : see declaration of 'PyObject'
    zbarmodule.c(146) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(147) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(151) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(151) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(151) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(152) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(152) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(152) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(153) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(153) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(153) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(154) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(154) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(154) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(155) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(155) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(155) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(156) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(156) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(156) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(157) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(157) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(157) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(158) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(158) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(158) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(159) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(159) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(159) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(160) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(160) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(160) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(162) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(162) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(162) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(163) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(164) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(164) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(164) : warning C4024: 'PyModule_AddObject' : different types for formal and actual parameter 1
    zbarmodule.c(164) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(164) : error C2065: 'ei' : undeclared identifier
    zbarmodule.c(167) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\program files (x86)\python27\include\object.h(108) : see declaration of 'PyObject'
    zbarmodule.c(167) : error C2065: 'dict' : undeclared identifier
    zbarmodule.c(167) : error C2065: 'mod' : undeclared identifier
    zbarmodule.c(167) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(167) : warning C4024: 'PyModule_GetDict' : different types for formal and actual parameter 1
    zbarmodule.c(169) : error C2065: 'dict' : undeclared identifier
    zbarmodule.c(169) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(169) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(171) : error C2065: 'dict' : undeclared identifier
    zbarmodule.c(171) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(171) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(183) : error C2275: 'PyObject' : illegal use of this type as an expression
            c:\program files (x86)\python27\include\object.h(108) : see declaration of 'PyObject'
    zbarmodule.c(183) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(185) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(185) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(185) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(186) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(186) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(186) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(187) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(187) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(187) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(188) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(188) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(188) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(189) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(189) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(189) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(190) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(190) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(190) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(191) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(191) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(191) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(192) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(192) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(192) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(193) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(193) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(193) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(194) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(194) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(194) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(195) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(195) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(195) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(196) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(196) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(196) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    zbarmodule.c(197) : error C2065: 'tp_dict' : undeclared identifier
    zbarmodule.c(197) : warning C4047: 'function' : 'PyObject *' differs in levels of indirection from 'int'
    zbarmodule.c(197) : warning C4024: 'zbarEnumItem_New' : different types for formal and actual parameter 1
    error: command 'C:\\Users\\Andy Tran\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

    ----------------------------------------
Command ""c:\program files (x86)\python27\python.exe" -u -c "import setuptools, tokenize;__file__='c:\\users\\andytr~1\\appdata\\local\\temp\\pip-build-dtzlas\\zbar\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\andytr~1\appdata\local\temp\pip-6cbwmc-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:\users\andytr~1\appdata\local\temp\pip-build-dtzlas\zbar\

And if building "ZBarWin64" got you nowhere:

>python setup.py build
running build
running build_ext
building 'zbar' extension
creating build
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tczbarmodule.c /Fobuild\temp.win-amd64-2.7\Release\zbarmodule.obj
zbarmodule.c
zbarmodule.c(121): warning C4244: '=': conversion from 'Py_ssize_t' to 'int', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcenum.c /Fobuild\temp.win-amd64-2.7\Release\enum.obj
enum.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcexception.c /Fobuild\temp.win-amd64-2.7\Release\exception.obj
exception.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcsymbol.c /Fobuild\temp.win-amd64-2.7\Release\symbol.obj
symbol.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcsymbolset.c /Fobuild\temp.win-amd64-2.7\Release\symbolset.obj
symbolset.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcsymboliter.c /Fobuild\temp.win-amd64-2.7\Release\symboliter.obj
symboliter.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcimage.c /Fobuild\temp.win-amd64-2.7\Release\image.obj
image.c
image.c(254): warning C4244: 'initializing': conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data
image.c(329): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcprocessor.c /Fobuild\temp.win-amd64-2.7\Release\processor.obj
processor.c
processor.c(249): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcimagescanner.c /Fobuild\temp.win-amd64-2.7\Release\imagescanner.obj
imagescanner.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcdecoder.c /Fobuild\temp.win-amd64-2.7\Release\decoder.obj
decoder.c
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG "-IC:\Program Files (x86)\Python27\include" "-IC:\Program Files (x86)\Python27\PC" /Tcscanner.c /Fobuild\temp.win-amd64-2.7\Release\scanner.obj
scanner.c
creating build\lib.win-amd64-2.7
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO "/LIBPATH:C:\Program Files (x86)\Python27\libs" "/LIBPATH:C:\Program Files (x86)\Python27\PCbuild\amd64" zbar.lib /EXPORT:initzbar build\temp.win-amd64-2.7\Release\zbarmodule.obj build\temp.win-amd64-2.7\Release\enum.obj build\temp.win-amd64-2.7\Release\exception.obj build\temp.win-amd64-2.7\Release\symbol.obj build\temp.win-amd64-2.7\Release\symbolset.obj build\temp.win-amd64-2.7\Release\symboliter.obj build\temp.win-amd64-2.7\Release\image.obj build\temp.win-amd64-2.7\Release\processor.obj build\temp.win-amd64-2.7\Release\imagescanner.obj build\temp.win-amd64-2.7\Release\decoder.obj build\temp.win-amd64-2.7\Release\scanner.obj /OUT:build\lib.win-amd64-2.7\zbar.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\zbar.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\zbar.pyd.manifest
LINK : fatal error LNK1181: cannot open input file 'zbar.lib'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64\\link.exe' failed with exit status 1181

Then you can build this awesome fork instead: https://github.com/NaturalHistoryMuseum/ZBarWin64

Or you can get a pre-built Windows installer here: http://static.extramaster.net/zbar-0.10.win-amd64-py2.7.msi


Raspberry Pi - Raspbian Apt Mirrors

Posted: Friday, 20 November 2015

Jump to the list of sources/mirrors (in apt sources.list format)

Raspberry Pi's entire website down?






Can't access the Raspberry Pi mirror redirector?


Well, here's a bunch of sources that you can add to /etc/apt/sources.list to get yourself back on your feet - in case of another shutdown of the Raspberry Pi foundation's websites.

Last updated: November 2015. List based on a cache of: http://www.raspbian.org/RaspbianRepository

Jump to the list of sources/mirrors (in apt sources.list format)


Regions & Countries:
  • Europe
    • United Kingdom
    • France
    • Ireland
    • Germany
    • Italy
    • The Netherlands
    • Belgium
    • Switzerland
    • Sweden
    • Portugal
    • Slovenia
    • Austria
    • Hungary
    • Denmark
    • Slovakia
    • Czech Republic
    • Russia
    • Poland
    • Moldova
    • Latvia
    • Lithuania
  • North America
    • United States
    • Canada
  • South America
    • Brazil
    • Colombia
    • Ecuador
  • Oceania
    • Australia
    • New Caledonia
    • Vanuatu
  • Asia
    • Singapore
    • China
    • South Korea
    • Japan
    • Indonesia
    • Israel
    • India
    • Taiwan
    • Bangladesh
    • Philippenes
  • Africa
    • South Africa


It is recommended that you only choose the mirrors that are hosted in the country/region closest to you.

Also, have a copy of the mirror list, but instead of it being the latest debian release, point it to an older version.
i.e.
Have both "deb http://mirror.aarnet.edu.au/pub/raspbian/raspbian jessie main contrib non-free rpi"
and "deb http://mirror.aarnet.edu.au/pub/raspbian/raspbian wheezy main contrib non-free rpi"
in the same file.

Don't forget to "apt-get update" after you have modified "/etc/apt/sources.list"!


Caps/Scroll/Num Lock Toggler for Windows

Skip to download section

If you have a keyboard that does not have built-in Scroll Lock/Num Lock capabilities (such as the Microsoft Wireless Arc Keyboard - pictured below),

Then here’s a program that will toggle Scroll Lock/Caps Lock and Num Lock via software.

Download

http://static.extramaster.net/KeyboardLockTool.exe (413KB)

MD5: A7D6EF9C0A528C28198CEE4C907A8671
SHA-256: F90F46A618D70C1436DD9ABA38EA9F68B2CCCC354274E63FAF3B82B1344C8DA7

VirusTotal Scan:
https://www.virustotal.com/en/file/f90f46a618d70c1436dd9aba38ea9f68b2cccc354274e63faf3b82b1344c8da7/analysis/1447947391/
Works with Windows 10. A wired keyboard with Num lock/Scroll lock/Caps lock LEDs light up, indicating that this program is not hardware-dependent.

Demo

Tags:
windows force scroll lock
microsoft wireless keyboard scroll lock
microsoft arc keyboard scroll lock
trigger scroll lock without keyboard
trigger scroll lock

LG Android QuickMemo+ Location

Posted: Tuesday, 22 September 2015

So, here's the full path to where LG's QuickMemo app stores the "memos" in the Android file system:

/data/data/com.lge.qmemoplus/databases/qmemoplus.db



For a bit of context, I "backed up" my LG QuickMemos from the "storage/emulated/0/Android/data/com.lge.qmemoplus" folder (friendly reminder to backup your LG phone with the official LG Bridge app), and started to delete some fairly important notes - or at least, notes that were important - since I had full faith in the back-up safekeeping any residue important information (so much so, in fact, that I cleared my clip tray, and emptied out the inbuilt QuickMemo trash).

Well, it turned out that the folder at "storage/emulated/0/Android/data/com.lge.qmemoplus" only contains the following: "Audios, Drawings, Images and Videos" - not the memos itself. And so, with a little bit of digging around the root directory, the actual path of the QuickMemo memo database was found.

Note that you may need root to access this folder (where rooting a LG phone is trivial).

Edit (October 2016)

Root is required to easily access the database file at the specified path.

So either chmod as root (to open the quickmemo database files for use without later root),

or,
su
cp /data/data/com.lge.qmemoplus/databases/qmemoplus.db /storage/emulated/0

An alternative method could be through recovering the LG (G4) Quickmemo+ file from a real backup, although it appears that the backup encrypts, or otherwise hides the database file.



How to fix Microsoft Mobile Mouse Wheel Scrolling problems

Posted: Saturday, 27 June 2015

Table of Contents

Pre-solution

What didn't work

Dealing with the scrolling issues with the Microsoft Mobile 3500 Mouse turned out to be fairly simple, but


  • After plenty of messy registry hacks
    • (changing HCKU\Control Panel\Desktop\WheelScrollLinesHCKU\Control Panel\Mouse keys didn't work)
  • After plenty of time spent messing around with Control Panel
    • The basic "tutorials" only show you how to change the amount of lines scrolled at a time, but does not deal with the problem regarding the mouse scroll wheel sensitivity
  • After restarting/logging off a few times (logging off is apparently supposed to apply the registry changes that you've made)
  • And even after re-plugging the nano-transceiver device,


Nothing seemed to work to fix the delayed/slow scrolling with the Microsoft Mouse...

Fixing Proxy/Loading Issues with the Windows 8 App Store

Posted: Monday, 6 April 2015

This is the Windows Store app. Or, at least it would be if it worked. For now, it's just a splash screen...

Well, if would still be a splash screen if it wasn't for the fact that after a long wait, an error message appears.

The one I got first was:

We weren't able to connect to the Store. This might have happened because of a server problem or the network connection might have timed out. Please wait a few minutes and try again. (0x80072ee2)

The next attempt in opening the store app resulted in another error:

We weren't able to connect to the Store. This might have happened because of a server problem or the network connection might have timed out. Please wait a few minutes and try again. (0x80190190)

Note how, in both cases, the error code was different...

So if you're currently encountering an error message with the same error codes, then you're in luck, since there is a fix! If the error code and problem is similar (but not exactly the same) then in any case just have a read through and see if your problem gets fixed.


CHM file isn't working on Windows

Posted: Monday, 1 December 2014

If you've ever dealt with CHM files, then you would already know that those letters are short for "Compiled HTML", which are typically used as a resource to HELP or guide users through a particular set of problems.

Resolving a non-functional redirect in Flask

Posted: Thursday, 2 October 2014

So I recently encountered an interesting issue in Flask, and one that's quite simple to solve, looking at it now.

But Google Chrome returned a "Failed to load response data" message, when preforming a 301 redirect in Flask...

Tutorial: Compile Python to EXE

Posted: Monday, 15 September 2014

Click here to skip to the decompiling py2exe section
Click here to skip to the compiling Python to EXE section
Questions? Comment Section Link Here

Introduction

So we all know Python. Its a fun extension to the C language (Read: a language built on top of C). But one question, is, why can't we compile Python into an exe file, just like with C?

Now Python is an interesting language, in that it is both compiled and interpreted. In fact, there are many different implementations of the language. We have PyPy, on one hand, which does both, IronPython, which is basically a .NET compiler for Python, but the main focus is on CPython - Or what we all know as "Python". CPython is the "main reference implementation" of Python, and is the "Python" that is downloaded at https://www.python.org/.

It's weird to think that "Python" is not just Python, but makes sense considering the fact that Python is open source. A similar comparison between PyPy/IronPython and CPython can be made with JavaScript (js), where js is implemented not as "JavaScript", but as V8, spidermonkey, rhino and much more. We've come a long way from the monopoly that Microsoft has from their own programming languages, C#, VB.net and VBScript.

Google App Engine UTF-8/Ascii Codec Issue

So... Recently, I encountered an error using Google's App Engine SDK for Python.

Value of type '1-dimensional array of Byte' cannot be converted to 'Byte'. / Decoding a base64 string to bytes in VB.net

Posted: Tuesday, 5 August 2014

With VB.net, typically trivial errors are easy to overlook, which complicates the process of software development.

As the title of this post suggests, "Value of type '1-dimensional array of Byte' cannot be converted to 'Byte'." can be caused when you're attempting to use a function that returns a quote unquote "Byte"

This error is quite irritating because, when searched on StackOverflow, it has already been answered!

VB Value of type String cannot be converted to 1 dimensional array of Byte

With decoding base64 to bytes in VB.net, you can use the following function:

Convert.FromBase64String(_string_input_)

... where the error becomes evident

The solution to the "Value of type '1-dimensional array of Byte' cannot be converted to 'Byte'." error is quite simple.
Just remember to dim the variable of where you are trying to push the resulting bytes to as a byte array type, aka
Dim variable As Byte()
This works as when you're defining the Byte type, you're only really defining a single byte, not an array of bytes. Think of it as defining a string as a character, where the array of bytes (
As Byte()
) is the equivalent to an array of characters (hence, being represented else-wise as a string)

Remove Blogger's redirection notice when using Cloudflare

Posted: Wednesday, 7 May 2014

What could be more irritating about the fact that you receive a rather threatening and suspicious message from Blogger stating that your legacy Blogger url can no longer automatically redirect to your new domain?
Going through checks and such to attempt to resolve the issue, you end up pretty much at a dead end. Until you realise that Cloudflare is messing up with Blogger's domain detection system.
But what about Cloudflare? Cloudflare proxies data over to your visitor, and does so indiscriminately, in such that Blogger's fraud domain/moved blog detection system cannot distinguish a difference between the Blogger page pointed by Cloudflare or an entirely different domain.
But fixing this issue, and hence removing Blogger's redirection notice: "This blog is not hosted by Blogger and has not been checked for spam, viruses and other forms of malware." is simple.
Step 1:

Manage your DNS for the domain in question from Cloudflare

Step 2:

Scroll down to the subdomain that contains the CNAME entry of your blogger page

Step 3:

Click on the cloud icon as shown on the above image, to disable the features of Cloudflare blocking Blogger from detecting your domain properly

Step 4:

Save the changes, by clicking on "I'm done entering my DNS records".


And that's it! In next to no-time, Blogger will acknowledge these changes and you'll be redirected automatically...

Shutdown Timer

Posted: Saturday, 22 March 2014


Application to shutdown your Windows XP, Vista, 7, 8, 8.1 computer after a predefined amount of time. So that you can allow your computer to upload files, leave and have it shutdown automatically.
It's better then using CMD to blindly time a shutdown time.
There's no ads, virus, malicious software, and the program is both lightweight and portable, being a simple program.
So here it is:
Download:
http://static.extramaster.net/ShutdownTimer.exe

MD5: 60AA856E6BB18E15FC4DF667881AC76B
SHA-256: B221ABD9537BBD79CE31C79F38F48E3163BE0462E3D9FBB4E9C32A20E1D47E82

VirusTotal Scan:
https://www.virustotal.com/en/file/b221abd9537bbd79ce31c79f38f48e3163be0462e3d9fbb4e9c32a20e1d47e82/analysis/1395407755/

Convert image to BMP

Posted: Wednesday, 19 March 2014

Recently, I got sick and tired of having to go through the process of downloading programs full of bloat and "full version" ad messages, along with other things - just to have a simple program that converts image files into BMPs.
But I also didn't just want any regular program, I didn't want to see a fully featured, super cooked "additional features" program, I wanted simple a drag and drop program that gets the job done on thousands of images.
So instead of downloading freeware programs loaded with toolbars, adware and all the other junk, and instead of loading the images one-by-one into Microsoft Paint and converting them all manually, I created a simple program that you can just drag, drop and have a bitmap image from common image formats.
I don't claim to have created a program that can convert millions of image formats to bitmap, just common formats: .jpg, .png and .gif* all seem to work fine.
There's no ads, virus, malicious software, and the program is both lightweight and portable, being a simple program.
So here it is:
Download:
http://static.extramaster.net/imagetobmp.html (2018 edit: looks like what was once detected as a perfectly clean file is now suddenly detected as a false positive malware, aw well, I should've open sourced the software on day-one, but then it would compile to the same binary and still be considered malware)

MD5: 9EEE1A103D38B1085F0CFB0B74317B6A
SHA-256: 1B5B3D233393D76493B1C0519CEF92492C3C0F0279D9755619A348A5F7B0FD2A

VirusTotal Scan:
https://www.virustotal.com/en/file/1b5b3d233393d76493b1c0519cef92492c3c0f0279d9755619a348a5f7b0fd2a/analysis/1395217684/
Note:
This .net program requires .net v4 or higher.
The program is not malicious and does not contain any toolbars, adware, or malware. It's only 33,280 bytes (~33kb if you're uncertain of the notation), so it's extremely lightweight and easy to download. And it gets the job done.
I do not keep track of anything that happens to that program (it does not auto-update, no data gets sent to any website, etc.), so as a simple disclaimer, I am not responsible for what "image to bitmap" does to your dog, cat, goldfish or horse. Or everything else asides from that...
This program overrides bitmaps that share the same appended name (file name+appended file extension) by default, which shouldn't be a big deal since the file extension is being appended, however if it does become an issue, just uncheck "Override File?"
* With animated .gif files, you only get the first frame as a bitmap, with normal .gif files, you get what you'd expect as a bitmap.

YouTube Downloader

Posted: Wednesday, 29 January 2014

The juicy bit

There's nothing much to say about this tools asides from the fact that it's located here:
http://www.extramaster.net/tools/youtubeDownloader/

Brief

But it's just a simple and clutter free alternative to all the ad-filled online youtube downloader tools out there..
Just enter a YouTube link, submit, and click on your favourite video format. and it's downloaded!

An easier way

If you're using a browser with a bookmark bar, drag the following link into it and launch the bookmark in a YouTube video page.
YT Download

Regarding 1080p

Youtube changed the way they deliver videos for 1080p videos and up, which is a shame if you need to download high quality public domain videos, but hey, there's always vimeo for that!

Problem Reporting

Report any issues at @extramaster, and include the youtube url in question.

deMobilify

Recently, I got sick of having to deal with mobile webpages when I bookmarked a link on my phone to read on a desktop computer.
The interface works well on mobile where you've got low screen estate, but on a desktop computer, mobile websites are absolute torture!!
Fortunately, sites like vimeo and youtube automatically deal with the smartphone vs desktop issue and redirect you to your correct destination, but how about Wikipedia?
Sites that refuse to give in and automatically redirect you to your desired non-mobile website are annoying.
and this Google Chrome extension seeks to solve that.
It works passively in the background; no data is transmitted when using this extension and you have pretty much nothing to lose when installing it.
And allows you to make full use of the desktop versions of websites, and not plain old crappy mobile websites..

A4 Lined/Ruled Paper Generator

Posted: Monday, 14 October 2013

Most online lined/ruled paper generators tend to include copyright messages, or even large and ugly watermarks.
Well, here's a simple lined/ruled paper generator that you can customize and generate an A4-sized image which contains lines and grids to your hearts content.

How to speed up Ubuntu 13.04 on VMware

Posted: Sunday, 15 September 2013

If you've ever used Ubuntu with VMware and have been consistently frustrated by the amount of lag that comes with each and every incremental distribution (as a result of additional features added into Ubuntu, such as the eye-candy UI, Unity), then fear not, here's a few simple way to solve the issue of lag regarding virtualized usage of Ubuntu:

Location of agent.exe

Posted: Saturday, 14 September 2013

If you're just using your computer and you run into a bit of lag whilst changing a song or while you're just browsing the internet, and open up task manager to investigate the issue, just to see a program called "agent.exe" hog some cpu.
Then the best way to solve this issue is to either uninstall DragonNaturally Speaking, or by taking the recommended route of blocking it within your Firewall...
The program can be found at these paths:
C:\ProgramData\FLEXnet\Connect\11\agent.exe
C:\Program Files\FLEXnet\Connect\11\agent.exe
C:\Program Files\Common Files\InstallShield\UpdateService\agent.exe
C:\Program Files (x86)\Common Files\InstallShield\UpdateService\agent.exe
Block those files from accessing the internet from your Firewall and you're all set... No more lag!