Wednesday, August 04, 2021

Set custom debugger for python

You can set PYTHONBREAKPOINT to set behaviour of breakpoint function. For example ipdb.set_trace. More Info

Thursday, July 22, 2021

Computational Complexity

Even that the speed of a program is fast enough production it may not be fasy enough for experimentation. Because, you may need to many trials before settling the final configuration.

Friday, July 09, 2021

Blogger Phone App

Even that web interfaces are universal, still dedicated phone app from blogger makes it easy to post from phone.


Wednesday, July 07, 2021

x.99

We see x.99 prices everywhere. It is hacking human perception. Everybody does it does not mean that it is fair. I got an idea to develop a chrome extension that shows prices with x.99 by adding 1 cent on it.

Saturday, June 19, 2021

C vs C++

Supposedly compatible to languages create problems in some cases. Recently I have faced cmath and stdlib do not work with each other. The compiler creates all sorts of strange errors.

Tuesday, June 01, 2021

Atan Sozler

Paslayan demir is tutmaz
Katlari diken, gulmeyi sever
Demleye demleye gel, olur
Balik yiyen bastan asagi kokar
Her et kusbasi yenmez
Yorgunsan yere ayagini uzat
Kupun darsa, sirke satma
Sakla zamani, kiymetli her ani

Friday, May 21, 2021

Git recover lost rebase

1. git reflog First identify the lost commit 2. git diff master commithash --name-only Check the differences in the files 3. git checkout commithash filepath Pick the one that you need

Sunday, May 09, 2021

Get Json of Django Object

I found unnecessarily difficult to get json from django model object. Here is my simple solution to get that done.
def get_json_object(obj, fields): return {f:obj.__dict__[f] for f in fields}

Friday, May 07, 2021

Thursday, April 08, 2021

No Real Style Transfer

Neural Networks are used to produce style transfer. But discrete structures are more difficult to generate. Here is my example. Does it resemble any picture to you?

Monday, February 15, 2021

Django + NGINX + USWGI

I was using "app" in the config, that was the reason why it did not work. Now converting to "application" it works. module=mysite.wsgi:application

Sunday, January 31, 2021

Being Human

If you go to 20 generations before you are mixture of 2**20 ~ 1 million people.

Sunday, December 13, 2020

CPPNs

Most of the time learning already known things is not a good idea in machine learning. Cppns are nice exceptions. Treat raster image as data and map coordinates to pixel values. The result is interesting, vector approximation of raster image. Better yet, multi layer function have potential to be more compact than pure vector lines.

Saturday, December 12, 2020

Testing 3rd party api

Keeping the trials in a test suite for 3rd party api ensures consistency in later stages. a good suggedtion from book Clean Code

Thursday, December 10, 2020

DRY Principle

I like the DRY (Do not repeat yourself) principle. In my words, do not copy-paste your code; use functions, modules, etc. to avoid that. This will reduce the point of maintenance. Wikipedia

Wednesday, November 25, 2020

Text to Speech in Browser

It would be a nice welcome, however I couldn't bypass user interaction requirement.
var msg = new SpeechSynthesisUtterance('Hi, Welcome'); window.speechSynthesis.speak(msg);

Monday, October 26, 2020

Do we really need Free Moving Windows ?

After using window managers many years I began to realize that most of the time we need grid manager. Moving windows freely serves only to create a layout which some of them would be visible. This could more effectively achieved by grid managers. https://www.w3schools.com/css/css_grid.asp

Sunday, October 11, 2020

Running Android on Kindle Paperwhite

I believe it is possible to run android on Kindle without rooting. The idea is using an emulator and a proxy service for Kindle's experimental browser.

Wednesday, September 30, 2020

Sunday, September 06, 2020

A little more freedom to kindle

I have recently stuck on being able to read android app based content on kindle. Kindle does not allow apps. Luckily app was allowing copy paste. I have used experimental browser and created a html page to display may clipboard. This allowed me to sync between my phone and kindle. I used "pre" tag for displaying text completely.

Yuzde Yuz

Yersiz derece yerlilik

Thursday, August 06, 2020

Git Trick

https://stackoverflow.com/questions/9456550/how-to-find-the-n-largest-files-in-a-git-repository

Thursday, May 21, 2020

Saturday, October 06, 2018

Python Counter

# collections.Counter lets you find the most common # elements in an iterable: >>> import collections >>> c = collections.Counter('helloworld') >>> c Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1}) >>> c.most_common(3) [('l', 3), ('o', 2), ('e', 1)] === https://realpython.com/

Saturday, September 29, 2018

Python 3.7 debugging

Python 3.7 has internal function breakpoint(). It goes into pdb if it hits that function. https://www.python.org/dev/peps/pep-0553/

I just forgot to transpose

julia> x*x ERROR: MethodError: no method matching *(::Array{Int64,1}, ::Array{Int64,1}) Closest candidates are: *(::Any, ::Any, ::Any, ::Any...) at operators.jl:502 *(::LinearAlgebra.Adjoint{#s549,#s548} where #s548<:Union{DenseArray{T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64},2}, ReinterpretArray{T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64},2,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64},2,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64},2,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}where N where T, DenseArray}} where #s549, ::Union{DenseArray{S,1}, ReinterpretArray{S,1,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, ReshapedArray{S,1,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray}, SubArray{S,1,A,I,L} where L where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, AbstractCartesianIndex},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{ReinterpretArray{T,N,S,A} where S where A<:Union{SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, SubArray{T,N,A,I,true} where I<:Tuple{AbstractUnitRange,Vararg{Any,N} where N} where A<:DenseArray where N where T, DenseArray} where N where T, DenseArray}}) where {T<:Union{Complex{Float32}, Complex{Float64}, Float32, Float64}, S} at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\LinearAlgebra\src\matmul.jl:97 *(::LinearAlgebra.Adjoint{#s549,#s548} where #s548<:LinearAlgebra.AbstractTriangular where #s549, ::AbstractArray{T,1} where T) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\LinearAlgebra\src\triangular.jl:1805 ...Stacktrace: [1] top-level scope at none:0 julia> x*x'3×3 Array{Int64,2}: 1 2 3 2 4 6 3 6 9

Sunday, April 15, 2018

Purdue Online Writing Lab https://owl.english.purdue.edu/owl/

Thursday, February 09, 2017

Metadata kept in Windows cache, refused to mount

I think this is related to hibernation. I have found the solution sudo ntfsfix /dev/sda(#)

Thursday, February 02, 2017

Symmetric Dirichlet in d dimensions

function res=dirchrnd(alpha,d)
res = zeros(d,1);
for i=1:d
res(i)=gamrnd(alpha,1);
end
res=res/sum(res);
end

Thursday, September 15, 2016

Juno Atom Julia v0.5

I received this error after updating Atom packages of Julia
"unknown package Juno required by Atom"

I attempt to solve using
Pkg.clone("https://github.com/JunoLab/Juno.jl.git")
Pkg.update()
using Atom

However, in next step Gallium gave an error.
I removed package Gallium and added again.

Then with existing installation of Atom, Julia works after precompilation finishes.

Tuesday, August 30, 2016

Using Global Namespace functions

If you would like to use the global function while defining function with same name use this way :

Vector Vector::exp()
{
Vector& r = buffer.get();
for (int i = 0; i r.data[i] = ::exp(data[i]);
return buffer.next();
}

Friday, December 18, 2015

Twitter Rate Limits

Twitter allows to capture 3200 tweets in the timeline.
A java program bypasses this limit using search system
https://github.com/Jefferson-Henrique/GetOldTweets

Tuesday, November 03, 2015

Selecting Specific Elements in the matrix

Sometimes I would like to select elements in the Matlab matrix with their coordinate. However, if I used two arrays to get elements in Matlab it returns the rows and columns containing those elements. To get exact elements, I used following method where indx and indy is index coordinates:

A(sub2ind(size(A),indx,indy))

Tuesday, September 01, 2015

Named rows and columns

R has built-in support for naming rows and columns for matrices. Matlab has this functionality via dataset class

http://www.mathworks.com/matlabcentral/answers/83204-add-row-column-names-to-a-matrix

One can use double(X) to convert dataset back to matrix.

Wednesday, February 19, 2014

Creating thread with their id's

for(i=0;i < numthereads;i++)
workers.push_back(thread(&ThreadPool::thread_loop,this,i));

Thursday, January 23, 2014

Friday, January 17, 2014

Two small console debug tools

#define step() toc=tic;tic=GetTickCount();printf("Elapsed: %d\n",tic-toc);
#define pause() system("pause");

Monday, November 04, 2013

Matlab Single Value Default Function

function default(varargin)
   param = [varargin{:} ';'];
   ind = find(param=='=');
   stmt = 'if ~exist(''%s'',''var'');%s;end';
   str = sprintf(stmt,param(1:(ind(1)-1)),[varargin{:}]);
   evalin('caller', str);
end


Example use

default x=2

Tuesday, October 22, 2013

Wednesday, August 28, 2013

Good observation

"Just as machine learning algorithms can overfit by tuning a classifier’s parameters to the
accidental properties of a training set, a research community can overfit by refining algorithms that
have already done well on the existing data sets"



Lewis, D. D.; Yang, Y.; Rose, T.; and Li, F. RCV1: A New Benchmark Collection for Text Categorization Research. Journal of Machine Learning Research, 5:361-397, 2004. http://www.jmlr.org/papers/volume5/lewis04a/lewis04a.pdf

Monday, July 22, 2013

Matlab Keyboard function

keyboard function is useful for debugging purposes. It stops execution of m file and allows user to watch and manipulate variables.

Wednesday, July 10, 2013

Matlab Jit Acceleration


Monday, July 01, 2013

Moving file to folder in HG versioning system

Just copy files into desired directory. Go into that directory and right click. Go to hg->guess renames. Rest is straightforward.

http://kiln.stackexchange.com/questions/1943/moving-a-file-in-a-repository

Semi Turing Test

A loosely definition for semi-Turing test is whether a human is capable to understand an output from human and output from computer aided human. For example If I am using spell checker , how someone can understand that I am doing so. It requires much more effort to distinguish.

Wednesday, April 03, 2013

Matlab Long Simulation Interactive Debug , Set Debug flag using GUI , Pause execution to debug

Create a button function:


function util_DebugGuiButtons()
global debugFlag;
uicontrol('Position',[30 10 35 40],'String','||','Callback',@wait);
uicontrol('Position',[70 10 35 40],'String','>>','Callback',@dontwait);
function wait(hObject,eventdata)
debugFlag = 1;
end

function dontwait(hObject,eventdata)
debugFlag = 0;
dbcont;
end
end



Define in top of document:
global debugFlag


Put this inside your loop :


    if (debugFlag)
        dbstop in file.m at line
end



Continue Button is not working as desired now. It just clears the breakpoints but does not issue dbcont command properly. I will try to figure out later.

Sunday, March 17, 2013

Comments on variables

Matlab displays comments of functions when you tend to use it. It would be good if it can show the comment of variables while holding mouse on top of variable name. This way can provide a tool to remember what each variable if for without using long descriptive variable names.

Monday, March 11, 2013

Wednesday, March 06, 2013

mouse and pencil

While being a student my life is accomodated with two items   mouse and pencil.So why we are not combining them . Put a wireless mouse pen to one side and put a pencil to other side. A gyro sensor can figure out if mouse is active.

Tuesday, March 05, 2013

Robot Dish Washer

It is difficult to create robot that cleans our arbitrary dirty dishes. However  , if we put some digital information on dishes (special designed for this machine) such as RFID , than robot can easily understand the shape , coordinates and features of the dish. In this way it will be easy to optimize the placement of the dishes based on current dirty dishes information.
I imagine we can create machine that has two part , first part is regular dish washer and second part is open area for dirty dishes and attached robot hands at top. It will increase the size of the machine , but it may worth , especially for big restaurants.

Friday, February 15, 2013

Monday, January 21, 2013

Wednesday, January 02, 2013

Display Array in NetBeans

Netbeans uses GDB:

http://stackoverflow.com/questions/1651682/how-to-watch-a-c-dynamic-array-using-gdb

Friday, December 21, 2012

Lazy Functions

I imagine compiler supported lazy functions that memorizes last value of return , then never computes it again until an input variable changes , maybe keeps states of input vars. This may help to reduce computation , when reads are more frequent than writes .  A flag could be set if there is any write to specified vars

Saturday, November 24, 2012

R normalize data into 0-1 Interval


function normalize(data)
{
  maxvalues = apply(data,2,max)
  minvalues = apply(data,2,min)
  sweep(data,2,minvalues,"-")
  sweep(data,2,maxvalues-minvalues,"/")
}

Monday, November 05, 2012

R hold plot

There is no hold function R instead lines or points are used for that purpose :


plot(method1,type="l", main="Accuracy vs Number of Training samples",
      xlab="Number of samples", ylab="Accuracy",
      xlim=c(0, 30), ylim=c(0, 1))
lines(method2,col="blue")

Friday, November 02, 2012

Tanenbaum's Phrase

I liked the phrase "Researcher-push than demand-pull" in Tanenbaum's OS book.

Thursday, November 01, 2012

Wednesday, October 24, 2012

Possible Extensions for State of the Art Machine Learning Methods

-Relax the assumptions
-Put in a hierarchy
-Semi,hybrid version
-Active,online version
-Better performance
-Relation with other methods
-More efficient
-A more general version
-Application on more realistic problem or different domain

Monday, October 22, 2012

Evalution metrics using Javascript

function getEvaluationMetrics(tp,fp,tn,fn){ 
precision=(tp/(tp+fp)); 
recall=(tp/(tp+fn)); 
f1=2*(precision*recall/(precision+recall)); 
var m= new Array(3); m[0]=precision; m[1]=recall; m[2]=f1; 
return m; 
}

Monday, October 15, 2012

Paradox

nothing is exactly true -> Altough we observe many things that is not perfect , this hypothesis could not be true for any hypothesis set.

Thursday, October 11, 2012

R/Matlab Anonymous functions

R for variable X:
means <- function(x)  rnorm(1,x)

Matlab
means = @(x) x+randn(1)

Stationary distribution , probability flow analogy

In page rank we are multiplying Transpose Adjacency matrix with current page rank vector. If the result is stationary distribution it means it will converge and all values will stay same. We can think this as incoming probability to a node is equal to outgoing probability.


For detailed balance condition T(x'->x)P(x') = T(x->x')P(x) if the graph is undirected
So total flow of x' times fraction of flow to x T(x'->x) is equal to total flow of x times the fraction of flow from x to x' is equal means incoming and outgoing probability flow in the full duplex edge.

It is possible that, this concept is already originating from real physical phenomena such as fluid flow or air flow.

Friday, October 05, 2012

Bayesian F1

Decision theory considers  the posterior probability to decide which class to chose , or weight using a cost function. However in this setting its objective is the accuracy. Most often we are more interested in more balanced measures such as F1 due to skewed classes. How would be F1 maximizer Bayesian decision mechanism if the distribution is exactly known ? I guess this is already implemented in somewhere , however I didn't face it yet.

Thursday, October 04, 2012

Latex 2 column figure



\begin{figure*}[ht]
\vskip 0.2in
\begin{center}
\centerline{\includegraphics[width=2\columnwidth]{NAME}}
\caption{NAME}
\end{center}
\vskip -0.2in
\end{figure*}

Turkce tekerlemeler 13

baba bu bambu mu, baba bu mu bambu