| 2013 |
| March 20 |
How I ported pigz from Unix to Windows
in: programming
|
| 19 |
Pigz windows port
in: software
|
| 2012 |
| December 31 |
Thoughts on Go after writing 3 websites
in: go, programming
|
| 25 |
SumatraPDF 2.2 released
in: sumatra, releasenotes
|
| 16 |
Design and implementation of translation system for desktop software
in: programming, sumatra
|
| November 26 |
Speeding up Go (and C++) with custom allocators
in: go, programming
|
| October 22 |
Hiding duplicate content from your site via robots.txt
|
| September 16 |
How I sped up Go by 20% (or is Go really slower than Java?)
in: go, programming
|
| May 4 |
Websites with free ePub and mobi ebooks
in: sumatra
|
| 3 |
SumatraPDF 2.1 released
in: sumatra, releasenotes
|
| April 15 |
Buying a certificate for signing windows applications
in: programming
|
| 2 |
SumatraPDF 2.0 released
in: sumatra, releasenotes
|
| 2011 |
| December 9 |
A list of chm readers/viewers for Windows
in: software, windows
|
| November 30 |
Showing html from memory in embedded web control on windows
in: note, win32, programming
|
| 24 |
SumatraPDF 1.9 released
in: sumatra, releasenotes
|
| October 13 |
How to fix cygwin ssl certificate
in: note, ssh, cygwin
|
| September 22 |
Introducing Volante - a database for C# (.NET)
in: software, volante, .net, c#
|
| 18 |
SumatraPDF 1.8 released
in: sumatra, releasenotes
|
| July 17 |
SumatraPDF 1.7 released
in: sumatra, releasenotes
|
| June 30 |
How to make software crash less
in: programming
|
| 1 |
Experience porting 4k lines of C code to go
in: go, programming
|
| May 30 |
SumatraPDF 1.6 released
in: sumatra, releasenotes
|
| 14 |
Easy vs. probable or how to make money with software
in: programming, business
|
| 7 |
90% of success is showing up - a proof
|
| April 23 |
SumatraPDF 1.5 released
in: sumatra, releasenotes
|
| March 12 |
SumatraPDF 1.4 released
in: sumatra, releasenotes
|
| 10 |
XML is really, really slow
in: programming
|
| February 24 |
Bandwidth price research notes
in: note
|
| 8 |
My social marketing failure
in: software, business, sumatra
|
| 7 |
SumatraPDF 1.3 released
in: sumatra, releasenotes
|
| 6 |
Writing a custom installer for Windows software
in: sumatra, programming
|
| 2010 |
| December 19 |
Executable compressors comparisons: upx 3.07w vs. mpress 2.17
in: note, sumatra, programming
|
| 11 |
Pie menus
in: note, idea, ui
|
| 5 |
Which technology for writing desktop software?
in: programing
|
| 3 |
SumatraPDF 1.2 released
in: sumatra
|
| November 24 |
Using averages - a common performance measurement mistake
in: programming
|
| 5 |
8 habits for becoming a better programmer
in: programming
|
| October 26 |
Simple duplicate post detection for your blog, forum or commenting software
in: programming
|
| 24 |
Value your time
in: productivity
|
| 3 |
Startup management lessons from "The Social Network"
in: business
|
| 2 |
Marketing lessons from WebP launch
in: business
|
| September 26 |
Find free stock photos with Fotofi
in: software, fotofi
|
| 16 |
Drobo and warranty extortion
|
| 9 |
Beware spurious charges when buying from Parallels (Digital River)
|
| August 22 |
Why you shouldn't write Mac programs in QT
|
| 17 |
Hipmunk - a new site for finding flights
|
| 13 |
SEO is harder than you think
|
| 11 |
A rant on iTunes TV experience
|
| July 25 |
Comparing program versions (in C# and Python)
in: programming, c#, python
|
| 24 |
Searching for available DBA name in San Francisco
in: business
|
| 23 |
Introduction to PartCover - a short manual
in: .net
|
| 23 |
Converting PartCover results to html
in: .net
|
| 7 |
Tools that find bugs in c and c++ code via static code analysis
in: programming, c, c++
|
| June 13 |
Go vs. Python for a simple web server
in: python, go
|
| 11 |
How does chromoting works
|
| 9 |
Software licensing scheme
in: business, note
|
| 6 |
OpenVPN gui weirdness on 64-bit Windows 7
in: software
|
| May 20 |
SumatraPDF 1.1 release
in: sumatra
|
| 11 |
Bash programming basics
in: reference, unix, note
|
| 5 |
How to accept online payments
in: business
|
| 4 |
Idea for code review tool
in: idea, note
|
| 3 |
Summary of talk on continuous deployment
|
| 2 |
uISV stories
in: business
|
| 1 |
How to think
in: productivity, psychology
|
| April 29 |
apt, dpkg, rpm basics
in: unix, note
|
| 29 |
jQuery basics
in: javascript, jquery, note
|
| 24 |
Things I've learned this week
|
| 20 |
Productivity ideas
in: productivity
|
| 19 |
e-books economics
|
| 18 |
BitTorrent-based, large file distribution for HTTP
in: idea, bittorrent
|
| 18 |
Thumbs up for markItUp
in: javascript, web devel
|
| March 7 |
Talk about happiness
in: note
|
| 3 |
Block domains for improved productivity
in: note
|
| January 21 |
VisualAck 0.3.3 released
in: software, mac, VisualAck
|
| 19 |
VisualAck 0.3.2 released
in: software, mac, VisualAck
|
| 12 |
Google storage 8 times cheaper than Amazon's S3?
|
| 4 |
You have to implement to understand
|
| 2 |
Best captcha is exotic captcha
|
| 2009 |
| November 24 |
Drobo Dashboard and mysterious mac slowdowns
in: mac
|
| 20 |
15minutes 1.1 for windows
in: software
|
| 18 |
SumatraPDF 1.0 released
in: sumatra
|
| 3 |
Web server in C#
in: .net
|
| 1 |
15minutes for mac updated
in: software
|
| October 21 |
Unicode problem with firstof in appengine/Django
in: appengine
|
| September 18 |
We need Visual Ack
in: software
|
| July 20 |
Sumatra 0.9.4 release
in: sumatra
|
| June 22 |
15minutes for mac now available
in: mac, software
|
| 13 |
Shared http caching
in: idea
|
| 4 |
Network drives, .net, security and virtualbox
in: .net, c#
|
| April 22 |
Automatic Java to C# conversion - experience using Java Language Conversion Assistant
in: java, c#, .net, tenderbase
|
| 14 |
Setting unicode rtf text in rich edit control
in: win32, programming
|
| 11 |
Accessing Mac file shares from Windows 7
in: mac, windows
|
| 8 |
15minutes - a simple productivity tool
in: software
|
| March 27 |
Valgrind on mac
in: mac, programming
|
| 27 |
Unladden-swallow - making Python faster
in: python
|
| 27 |
IPTraf clone for windows
in: idea, note
|
| 15 |
Cocoa source code and tutorials
in: cocoa, objective c, mac, src
|
| 14 |
Interesting win32 source code
in: src, programming, win32
|
| 14 |
Forcing basic http authentication for HttpWebRequest (in .NET/C#)
in: .net, c#
|
| 13 |
setting up s3 logging
in: aws
|
| 11 |
scdiff update (Windows git/subversion/cvs gui diff previewer)
in: software
|
| 8 |
Parsing s3 log files in python
in: aws, python
|
| 7 |
Compacting s3 aws logs
in: aws, python
|
| 5 |
How content-based addressing can help web performance
|
| February 26 |
HTTP info
in: http, reference
|
| 26 |
Essential software
in: software
|
| 25 |
HTTP sniffer
in: idea, note
|
| 24 |
Customizing Visual Studio
in: visual studio, note
|
| 24 |
ssh tips
in: ssh, unix, svn, reference
|
| 24 |
Where do bugs come from?
in: programming
|
| 22 |
Summary of David Ditzel talk on binary translation
in: talk, summary
|
| 21 |
Ideas for software
in: idea
|
| 21 |
Resources related to implementing programming languages
in: prog lang, programming
|
| 21 |
Experience with using Rietveld for code reviews
in: programming
|
| 20 |
Exporting data from EverNote
|
| 19 |
Manager for ec2, s3 and SimpleDB, on mac
in: idea
|
| 19 |
Those who adapt, survive
|
| 18 |
App Engine as generic web host
in: appengine
|
| 18 |
Profiling tools for C/C++ on windows, mac and linux
in: debugging, profiling, programming
|
| 18 |
Music backup service idea
in: idea, note
|
| 18 |
Fonts on windows
|
| 18 |
NSCopying, NSMutableCopying or NSCoding
in: objective c
|
| 18 |
Server monitoring idea
in: idea
|
| 17 |
Previewing changes before commiting on mac (svn or git)
in: git, svn, mac
|
| 2008 |
| December 13 |
Mac program scheduling (like crontab)
in: mac
|
| October 2 |
SumatraPDF 0.9.3 released
in: sumatra
|
| August 24 |
SumatraPDF 0.9.1 released
in: sumatra
|
| 11 |
SumatraPDF 0.9 released
in: sumatra
|
| 11 |
Results of tweaking compiler flags before 0.9 release:
in: sumatra, optimization, programming
|
| July 27 |
realloc() on Windows vs. Linux
in: programming, optimization
|
| 14 |
habit forming
in: psychology
|
| 6 |
Announcing fofou - forum software for Google App Engine
in: appengine
|
| 5 |
Google App Engine tip
in: appengine
|
| May 28 |
SumatraPDF 0.8.1
in: sumatra
|
| 19 |
Extreme (size) optimization in C and C++
in: programming, optimization
|
| April 17 |
_NT_SYMBOL_PATH considered harmful
in: windbg, debugging
|
| 16 |
Remapping Page Up and Page Down on Mac to move a cursor
in: mac
|
| 15 |
Software worth buying - SftpDrive and ExpanDrive
in: software
|
| 12 |
Pet peeves of mine - files
in: ui design
|
| 8 |
Google App Engine - the first Internet operating system
in: appengine
|
| 7 |
gflags - a debugging story
in: programming, debugging, win32
|
| 4 |
variadic macros in msvc
in: programming, c++, msvc
|
| 4 |
Variadic Macros (C++)
in: visual studio, c++
|
| March 28 |
Python static code checkers
in: python
|
| 27 |
making unix user a sudoer
in: unix
|
| 27 |
gcc
in: c++, gcc, programming
|
| 26 |
Interface Builder reference
in: cocoa, xcode
|
| 26 |
IBOutlet, IBAction
in: cocoa
|
| 26 |
DNS debugging
in: unix, networking
|
| 25 |
Exercise
in: health
|
| 25 |
Diet
in: health
|
| 24 |
A way to simulate various network conditions
in: mac, networking
|
| 20 |
Reverse DNS lookup
in: unix, networking
|
| 19 |
backtrace_symbols() and -rdynamic in gcc
in: programming, mac, gcc
|
| 18 |
How to think
in: productivity, psychology
|
| 18 |
intermittent variable reward
in: psychology
|
| 15 |
Objective-C patterns
in: objective c, cocoa
|
| 15 |
Setting goals
in: productivity, psychology
|
| 15 |
Deliberate practice
in: productivity
|
| 15 |
Notes form Standford compilers course
in: prog lang, compilers, programming
|
| 15 |
DHL in San Francisco
in: san francisco
|
| 14 |
International bank recommendations
|
| 13 |
objdump -g
in: unix
|
| 13 |
valgrind basics
in: unix, debugging, programming
|
| 13 |
enabling coredumps
in: unix, debugging
|
| 13 |
screen basics
in: unix
|
| 13 |
fixing cygwin dll load problem
in: unix, cygwin
|
| 13 |
apache: enabling mod_rewrite
in: unix
|
| 13 |
Faster metabolism
in: health
|
| 13 |
svn - setting executable property
in: svn
|
| 13 |
Windbg reference.
in: debugging, windbg, win32
|
| 13 |
Mac software installed:
in: mac
|
| 13 |
Emacs tips.
in: emacs
|
| 13 |
gdb quick reference
in: debugging, gdb
|
| 13 |
Design process at Apple
in: ui design
|
| February 2 |
picoLisp - Arc before Arc
|
| January 10 |
Too much oo
|
| 9 |
Rebol vs. Shoes
|
| 6 |
Logging in WinDBG
in: debugging, windbg
|
| 3 |
Sumatra 0.8 released
in: sumatra
|
| 2007 |
| July 29 |
Sumatra PDF 0.7 released
in: sumatra
|
| 29 |
Merge tools showdown
|
| June 24 |
Sane #include hierarchy for C and C++
in: programming, c, c++
|
| April 29 |
SumatraPDF 0.6 released
in: sumatra
|
| 29 |
A debugging story
in: debugging, windbg
|
| 13 |
Few things I've learned when writing Sumatra PDF
in: sumatra
|
| 11 |
2 great books and one not so great
|
| March 4 |
SumatraPDF 0.5 released
in: sumatra
|
| February 19 |
SumatraPDF 0.4 released
in: sumatra
|
| 15 |
memset() considered harmful
in: programming
|
| 2006 |
| December 7 |
Programmers are silver bullets (or: after all this years, C still kicks Python ass)
|
| November 26 |
Sumatra PDF 0.3 released
in: sumatra
|
| 22 |
Talk on designing good APIs
in: programming
|
| September 21 |
Navigating source code in large programs
|
| 6 |
Gdb basics
in: gdb, unix, programming
|
| 2 |
On how I improved Sumatra performance by ~60%
in: sumatra, optimization, programming, profiling
|
| August 22 |
Deeply nested if statements
|
| 20 |
What I love about Google open-source project hosting
|
| 17 |
A simple catchpa scheme
|
| 16 |
Paradox of bad comments
|
| 15 |
Order of #include headers in C/C++
in: programming
|
| 14 |
Performance optimization story
in: programming, optimization
|
| 12 |
Where do bugs come from and how to avoid them
|
| 7 |
The missing msvcr80.dll story
in: programming, msvc
|
| 6 |
php_mysql.dll not loading in PHP 5.1.4 and Apache 2.2
|
| 6 |
Sumatra PDF 0.2 released
in: sumatra
|
| June 6 |
Short tutorial on svn propset for svn:externals property
in: svn
|
| 3 |
Sumatra PDF is born
in: sumatra
|
| April 10 |
Python id3 library
in: python
|
| March 30 |
tar basics
in: unix
|
| 17 |
Designing web forums software
|
| 11 |
Document your software
|
| 11 |
Digg and the craft of catchy headlines
|
| 2 |
What makes a CD bootable
|
| February 11 |
C portability notes
in: c, programming
|
| January 29 |
Embedding binary resources on Windows
in: win32, c, programming
|
| 25 |
Make C code safe for C++
in: c, c++, programming
|
| 14 |
Basics of mysql
in: sql, mysql
|
| 14 |
Pawn: yet another embedable language
in: programming
|
| 13 |
Basics of writing DOS .bat batch files
in: reference
|
| 13 |
Compile-time asserts in C
in: c, programming
|
| 13 |
Debugging adventure
in: programming
|
| 6 |
Get file size under windows
in: win32, c, programming
|
| 2 |
Subversion basics
in: svn
|
| 1 |
Check if file exists on Windows
in: win32, c, programming
|
| 2005 |
| December 31 |
High-resolution timer for timing code fragments
in: win32, c, programming
|
| 31 |
Getting user-specific application data directory for .NET WinForms apps
in: .net, c#, win32, winforms
|
| 30 |
Accurate timers on Windows
in: win32, programming
|
| 30 |
Local DNS modifications on Windows (/etc/hosts equivalent)
in: windows
|
| 30 |
Pickling (serialization) in Python
in: python, serialization
|
| 27 |
Another lesson in entrepreneurship
in: business
|
| 27 |
Serialization in C#
in: c#, .net
|
| November 2 |
UI design tip: icons are not enough
in: ui design
|
| October 27 |
A book to read, talks to listen to
|
| 26 |
Code-name Monad and the value of different perspective
|
| 25 |
Petzold on Visual Studio and mind corruption
|
| 24 |
Unsolved source control problems
|
| 24 |
Rich client is here
|
| 16 |
Interesting Dave Winer interview
|
| 12 |
Open-source and windows
|
| July 29 |
Longhorn/Vista fonts
|
| 25 |
VirtualEarth vs. Google Maps - not hitting the high note
|
| 10 |
Deep indentation vs. flat
|
| May 9 |
musikCube - nice mp3 player
|
| 5 |
Backpack observations
|
| 4 |
How to delete a file you get from urllib.urlretrieve()
in: python
|
| February 9 |
Subversion with SSH on Windows tip
|
| January 2 |
Google saga - episode 205
|
| 2 |
Google - what kind of a giant they are?
|
| 1 |
43 depressing things
|
| 2004 |
| December 31 |
Google - comments on comments
|
| 30 |
Bad Google - the fallout
|
| 30 |
2005 prediction - the rise of anonymous p2p
|
| 30 |
Counterpost to a counterpost
|
| 29 |
Google - we take it all, give nothing back
|
| 26 |
GPL 3 - anti-patent virus?
|
| 25 |
Font Vera Sans Mono - recommended for programmers
|
| 25 |
Google - ultimate hypocrite
|
| 13 |
Recovering data from formatted drives
|
| October 22 |
University of Washington on-line videos
|
| 8 |
Alan Cox on writing better software
|
| 2 |
scdiff 0.3 released
|
| August 31 |
DocSynch - multi-editor plugin for collaborative text editing
|
| 30 |
A collaborative text editor for Windows
|
| July 22 |
Don't use 0 instead of NULL
|
| 14 |
Review of "Hot text - web writing that works"
in: book, review
|
| June 30 |
Microsoft leading the way with open bug database
|
| 13 |
wTail release
|
| 12 |
Productivity tips
in: productivity
|
| 10 |
A tip from "Getting things done"
|
| 4 |
.NET Framework bootstrapper
in: .net
|
| 3 |
scdiff - show diffs of local changes in CVS or Subversion repository in a GUI
|
| 2 |
Blogs should always provide "previous posts" button
|
| 2 |
Patterns in interaction design (web and gui design pattern)
in: ui design
|
| 2 |
Web writing that works
in: writing
|
| May 29 |
Startup: A Silicon Valley Adventure - book review
in: book, review
|
| 2003 |
| December 23 |
What people want?
|
| 18 |
Myths Open Source Developers Tell Ourselves
|
| 7 |
Making money with shareware software
in: business
|
| 5 |
The story of Photoshop
|
| 2 |
Royalties in game buisness
in: business
|
| November 19 |
C programming tips from Rob Pike
in: c, programming
|
| 14 |
Skype as an example of changing nature of social interactions
in: software
|
| 12 |
Watch TV on the internet
|
| 11 |
How to make money developing Mac apps
in: business
|
| October 20 |
Marketing and shareware articles
in: business
|
| 13 |
A shameless rip-off, or what did you expect?
|
| September 10 |
Critical reading skills
|
| 7 |
Not as happy as you thought you will be
|
| August 27 |
Shirky on Wikis
|
| 20 |
Popular fallacies
|
| 15 |
Better selling through a web-site
in: business
|
| July 24 |
Lucene for searching source code
|
| 22 |
Century dictionary on-line
|
| 16 |
Usability Heuristics for Rich Internet Applications
|
| 15 |
Memex - "sue me please" device
|
| 14 |
As we may think
|
| 9 |
How much can you make writing computer books
|
| 3 |
O'Reilly on software
|
| 1 |
cmd.exe replacement for Windows
in: software
|
| June 30 |
Programmers don't steal enough
|
| 27 |
Software can always be better
|
| 25 |
Good software, bad buying experience
|
| 24 |
Why consistency is important in software design
|
| 23 |
My future is so bright that I'll need to wear sunglasses
|
| 20 |
Another ArsDigita story
|
| 12 |
Writing to sell
in: business, writing
|
| 11 |
On difference between amateur and professional shareware
in: business
|
| 4 |
Given enough eyeballs make all bugs shallow
|
| May 31 |
Is software industry a place to be - Greenspun perspective
|
| 10 |
Carmack on creativity
|
| 5 |
Perl to Python compiler
in: python
|
| April 26 |
Do you read the old papers?
|
| 21 |
Are Microsoft products any good?
|
| 2 |
Abut Face - second edition
in: book
|
| 1 |
Disabling WFP (Windows File Protection)
|
| March 31 |
Asking the right question about language design
|
| 23 |
Don't change URIs
|
| 22 |
Outsourcing
|
| 14 |
An old ad for a job at Microsoft
|
| 2 |
Remote desktop - from Windows to Mac OS X
|
| February 21 |
An almost accurate quote
|
| 16 |
Inspiring marketing article
in: business
|
| 16 |
Creative commons presentation
|
| 9 |
Python idoms
in: python
|
| January 31 |
SICP lectures available on-line
|
| 31 |
Old ArsDigita content
|
| 30 |
Christopher Alexander's talk
|
| 19 |
Source Insight 3.5
|
| 17 |
Successful telecommuting
|
| 12 |
Publicity 101
|
| 9 |
Lying with a straight face
|
| 5 |
Catch me if you can
|
| 4 |
Your life
|
| 2002 |
| December 19 |
The ghost of ArsDigita
|
| 18 |
Selling Microsoft
|
| 17 |
High Tech start up
|
| 16 |
Recruitment is like dating
|
| 14 |
Blown to bits
|
| November 17 |
Good programming practices
|
| 11 |
LL1 Videos
|
| 9 |
LL2 webcast
|
| 6 |
How to refuse features
|
| 5 |
How to sell software
|
| October 27 |
Open-source lesson from a stripper
|
| 19 |
Joel, man of his word
|
| 12 |
Profitable open-source business
|
| 10 |
Live
|
| 9 |
Slate knows why Amiga failed
|
| 6 |
High-level not so good
|
| 5 |
Platform Leadership
|
| September 27 |
Show me the code
|
| 17 |
Those are the good times
|
| 17 |
You'll have a job
|
| 16 |
Great business without innovation
|
| 15 |
Three-way merge
|
| 12 |
High tech martyr
|
| 11 |
A lesson in marketing needed
|
| 9 |
You won't make money blogging
|
| 8 |
The history of bookfinder
|
| 4 |
The stupidest thing a software company can do
|
| 4 |
Interview with MicroStrategy CEO
|
| 2 |
Blog your resume
|
| 2 |
Quote from "Net Words"
|
| 2 |
WinAmp 3
|
| August 27 |
The future is here, it's just not evenly distributed
|
| 27 |
Information business as a relationship
|
| 23 |
Daemon tools for mounting iso images
in: software
|
| 21 |
On writing well
in: writing
|
| 17 |
What I need: ssh/sftp file system driver for Windows
|
| 11 |
The value of programming
|
| 11 |
How to be a leader in your field
|
| 4 |
Stuff costs more than you think
|
| 4 |
Life of Hellen Keller
|
| 3 |
C Interfaces and Implementations
in: book, programming
|
| 1 |
Wozniak's speech
|
| July 26 |
Principle of good design: discoverability
in: ui design
|
| 23 |
Open Source is Philanthropy
|
| 19 |
Bugs and eyeballs
|
| 17 |
You and your research
|
| 17 |
Laws of marketing #22 (resources)
|
| 16 |
Laws of marketing #21 (acceleration)
|
| 16 |
Laws of marketing #20 (hype)
|
| 14 |
Laws of marketing #19 (failure)
|
| 14 |
Laws of marketing #18 (success)
|
| 13 |
Laws of marketing #17 (unpredictability)
|
| 13 |
Laws of marketing #16 (singularity)
|
| 12 |
Laws of marketing #15 (candor)
|
| 12 |
Fine interview with Marcelo Tosatti
|
| 12 |
Laws of marketing #14 (attributes)
|
| 11 |
Laws of marketing #13 (sacrifice)
|
| 11 |
Laws of marketing #12 (line extension)
|
| 11 |
Laws of marketing #11 (perspective)
|
| 10 |
Laws of marketing #10 (division)
|
| 10 |
Laws of marketing #9 (opposite)
|
| 7 |
Laws of marketing #8 (duality)
|
| 7 |
Laws of marketing #7 (ladder)
|
| 7 |
Laws of marketing #6 (exclusivity)
|
| 6 |
Laws of marketing #5 (focus)
|
| 6 |
Laws of marketing #4 (perception)
|
| 5 |
Laws of marketing #3 (mind)
|
| 4 |
Laws of marketing #2 (category)
|
| 2 |
Laws of marketing #1 (leadership)
|
| 1 |
Redefining Professionalism for Software Engineers
|
| June 21 |
SMART Goals
in: productivity
|
| 20 |
Our job, as writers
|
| 19 |
If you program in Python, use pychecker
in: python, programming
|
| 17 |
The most important thing in life is to be free to do things
|
| 17 |
"Opening Xbox"
in: book
|
| 16 |
On "The 22 Laws Of Marketing"
in: book
|
| 16 |
"Renegades of the empire"
in: book
|