Thinking Out Loud

November 2, 2006

It’s a gradebook! No, it’s a pocket! No, it’s a project!

Filed under: User interface

The Flashcard project is unabandoned, sort of ;)

What is that thing, which contains one or more decks, and also holds user information so that the user can resume learning at a later time?

Words I Don’t Like
workset: Not a real word.
pocket: It simply seems silly to tell the user to create a pocket.
pouch: Ditto.
rubber band: The metaphor of the user wrapping a rubber band around one or more deck of cards may be too hard to pull off.
sleeve : A real-life sleeve is for a single card if you want to see both sides, not a whole set
gradebook: The history of all cards would be in one file, but I still prefer having a deck or a group of decks as a template for the user history of that deck or group of decks. It also connotes a teacher hovering over the student when in fact Card Liberty is so far envisioned as a self-study tool
game: Having the user create a game does have the advantage of conveying that the user needs to "save game" in order to continue playing the card deck at a later time. I would like it to convey more though, and I don’t see how it conveys containership of decks.
unit: I think decks of similar cards were called a unit in some context in my elementary school experience if I recall correctly. I am not sure my experience is universal, though, and this word has too many other meanings though.
group: Lean toward it but often, in fact usually  the user will need to create a "group of one" deck. It’s a possibility only if I can hide that "group of one" verbiage from the user.

Current Favorite Word to Use
project

Regardless of what word I use to convey a file that has both deck and user information, it will be a challenge to have the user open a deck and get a project instead, then make sure he gets the project next session and not the deck!

May 10, 2006

Fast download site for Ma.gnolia Condenser

Filed under: Greasemonkey, Firefox

Since userscripts.org has been painfully slow lately, I created a new permanent site at freewebs to download Ma.gnolia Condenser. Once userscripts.org is back up, I will update the userscripts.org directory to reflect the new location.

Download Ma.gnolia Condenser

 

 

Ma.gnolia Condenser unreachable?

Filed under: Greasemonkey, Firefox

Wow. userscripts.org has been virtually inaccessible all day. Very frustrating since I had sent the link out to some people. I am in the process of setting up a new site where you can download ma.gnolia condenser. Hopefully by tomorrow it should be set up.

May 3, 2006

Privacy icon in Less Detail mode?

Filed under: Greasemonkey, Firefox

The next feature I would like to add to the Ma.gnolia Condenser would add the privacy action icon (a lock) visible even in Less Detail mode. More exercise for XPath syntax, which I like. I started off making a mental checklist:

  • Check to see the Less Detail version of the page is displayed
  • Check to see if the script is running on a page of the signed in user
  • Use the Greasemonkey function GM_xmlhttpRequest to grab the More Detail version of the page so I will know which links are private
  • Get the "shortname" of the link so I can compute the href and the element ID for the privacy options link
  • Create the necessary DIV, A, IMG elements to show a lock image

Then it occurs to me there seems to be a simpler, faster, and easier to maintain way to do the same thing.

  • Check to see the Less Detail version of the page is displayed
  • If so, redirect to the More Detail version of the page, then hide the description and extra action icons using CSS (show the Privacy icon only)
  • Change the More Detail link so that it unhides the same on a click
  • If the More Detail version of the page is displayed, change the link so that it hides the same on a click

If I write the script the second way, the real Less Detail never appears, only a greased version of the More Detail page. It almost seems unethical!  I am still considering any possible downside to doing it the easier way.

April 27, 2006

Ma.gnolia Condenser

Filed under: Greasemonkey, Firefox

If you use the Greasemonkey extension for Firefox, and are a ma.gnolia user, I wrote a small user script called Ma.gnolia Condenser that might be worth a spin.

The main features so far:

  • More ma.gnolia bookmarks fit on a screen
  • Lock icon turns red for private bookmarks

October 11, 2005

Organization

Filed under: wxWidgets, Tools

Two milestones were met today, things that had to be done even though they weren’t written on my 50+ item to-do list for this project.

First, I organized my code finally. The compiled executables land in the folders wd_msw and vc_msw for wxDev-C++ and Visual C++ 2005 Express beta respectively.


+---doc
+---images
+---include
+---src
+---tests
+---vc_msw
| \---residue
+---wd_msw
| \---obj
\---wxg

My new folder structure supports using the same sources for both wxDev-C++ and Microsoft VC++ 2005 Express. Both compilers and environments use the same source and include folders, despite their vastly different project file format.

Secondly, I finally got my source code to compile on the Microsoft VC++ 2005 Express beta product. The usual suggestion is to copy an existing sample and change the configuration from the GUI. I did in fact use an exising sample as a starting point, but I was having very little luck getting it to compile, plus I was trying to match the paths to my shiny new code organization folder structure, something VC++ Express was loathe to permit. The only thing that worked was opening up that sample vcproj in a text editor and cutting through the project file (flashcard.vcproj) like a madman. The build options are vastly easier to edit in a text editor than in VC++ Express itself.

I blew away all the Configurations except for Release|Win32, and likewise for FileConfigurations. This will undoubtably limit some functionality, it is much easier to edit a 150 line file than to deal with a jillion different build options. I intend to develop in wx-Devcpp and do the final releases in VC++ Express. I compiled wxWidgets 2.6.2 in release mode so I have to do the same for my application.

After removing the sample files from the project and adding the real ones, VC++ Express listed the source files outside of the Source Files list and VC++ compiler was complaining it couldn’t find the header files. I carefully closed VC++ Express and reopened the vcproj file in the text editor and sure enough, the File elements were not inside the Filter element named “Source Files.” So I promptly copied and pasted the text to fix that problem, and suddenly VC++ Express compiled my program into a shiny new executable.

Microsoft says the ProjectGUID property is used by .NET apps, which I don’t care about currently, so I didn’t take care to make it unique.

I found nothing of value in the sample’s solution (.sln) file. This gets created automatically, so it is not needed.

Bottom line is that the mingw compiler (currently required by wxDev-C++) produces a 6 meg executable and the Microsoft one produces a 2 meg executable. For this reason it was worth the effort.

This is what my Visual C++ Express project file looks like:


<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="flashcard"
ProjectGUID="{9111E5D3-29DD-4A71-98AA-A820A318CA99}"
RootNamespace="flashcard"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory="."
IntermediateDirectory=".\residue"
ConfigurationType="1"
InheritedPropertySheets="UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="WIN32,__WXMSW__,_WINDOWS,NOPCH"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\residue/flashcard.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/EHsc "
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="$(WXWIN)\include,$(WXWIN)\lib\vc_lib\msw,.,$(WXWIN)\samples,..\include"
PreprocessorDefinitions="WIN32;__WXMSW__;_WINDOWS;NOPCH"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
PrecompiledHeaderFile=".\residue/flashcard.pch"
AssemblerListingLocation=".\residue/"
ObjectFile=".\residue/"
ProgramDataBaseFileName=".\residue\flashcard.pdb"
WarningLevel="4"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="__WXMSW__,_WINDOWS,NOPCH"
Culture="1033"
AdditionalIncludeDirectories="$(WXWIN)\include,$(WXWIN)\lib\vc_lib\msw,.,$(WXWIN)\samples"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="wxmsw26_core.lib wxmsw26_adv.lib wxmsw26_xrc.lib wxmsw26_html.lib wxbase26.lib wxbase26_xml.lib wxexpat.lib wxpng.lib wxjpeg.lib wxtiff.lib wxzlib.lib wxregex.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib odbc32.lib"
OutputFile=".\CardGriLa.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="$(WXWIN)\lib\vc_lib"
ProgramDatabaseFile=".\residue/cardgrila.pdb"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\residue/cardgrila.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
>
<File
RelativePath="..\src\flashcard-res.cpp"
>
</File>
<File
RelativePath="..\src\frmLearn.cpp"
>
</File>
<File
RelativePath="..\src\main.cpp"
>
</File>
<File
RelativePath="..\src\ryanssplit.cpp"
>
</File>
<File
RelativePath="..\src\tcard.cpp"
>
</File>
<File
RelativePath="..\src\tcardlist.cpp"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

October 10, 2005

What’s in your lib?

Filed under: wxWidgets, Tools


for %f in (C:\WX262\lib\vc_lib\*.lib) do echo "%f" contains the following object files >>xyztest.txt & lib %f /list /verbose /nologo >>xyztest.txt & echo.>>xyztest.txt

This command creates the following contents for xyztest.txt on my system. Posted for my own reference.


"C:\WX262\lib\vc_lib\wxbase26.lib" contains the following object files
.\vc_msw\base\appbase.obj
.\vc_msw\base\archive.obj
.\vc_msw\base\clntdata.obj
.\vc_msw\base\cmdline.obj
.\vc_msw\base\config.obj
.\vc_msw\base\datetime.obj
.\vc_msw\base\datstrm.obj
.\vc_msw\base\dircmn.obj
.\vc_msw\base\dynarray.obj
.\vc_msw\base\dynlib.obj
.\vc_msw\base\dynload.obj
.\vc_msw\base\encconv.obj
.\vc_msw\base\event.obj
.\vc_msw\base\extended.obj
.\vc_msw\base\ffile.obj
.\vc_msw\base\file.obj
.\vc_msw\base\fileconf.obj
.\vc_msw\base\filefn.obj
.\vc_msw\base\filename.obj
.\vc_msw\base\filesys.obj
.\vc_msw\base\fmapbase.obj
.\vc_msw\base\fs_mem.obj
.\vc_msw\base\fs_zip.obj
.\vc_msw\base\hash.obj
.\vc_msw\base\hashmap.obj
.\vc_msw\base\init.obj
.\vc_msw\base\intl.obj
.\vc_msw\base\ipcbase.obj
.\vc_msw\base\list.obj
.\vc_msw\base\log.obj
.\vc_msw\base\longlong.obj
.\vc_msw\base\memory.obj
.\vc_msw\base\mimecmn.obj
.\vc_msw\base\module.obj
.\vc_msw\base\msgout.obj
.\vc_msw\base\mstream.obj
.\vc_msw\base\object.obj
.\vc_msw\base\process.obj
.\vc_msw\base\regex.obj
.\vc_msw\base\sstream.obj
.\vc_msw\base\stdpbase.obj
.\vc_msw\base\stopwatch.obj
.\vc_msw\base\strconv.obj
.\vc_msw\base\stream.obj
.\vc_msw\base\string.obj
.\vc_msw\base\sysopt.obj
.\vc_msw\base\textbuf.obj
.\vc_msw\base\textfile.obj
.\vc_msw\base\tokenzr.obj
.\vc_msw\base\txtstrm.obj
.\vc_msw\base\uri.obj
.\vc_msw\base\utilscmn.obj
.\vc_msw\base\variant.obj
.\vc_msw\base\wfstream.obj
.\vc_msw\base\wxchar.obj
.\vc_msw\base\xti.obj
.\vc_msw\base\xtistrm.obj
.\vc_msw\base\zipstrm.obj
.\vc_msw\base\zstream.obj
.\vc_msw\base\basemsw.obj
.\vc_msw\base\crashrpt.obj
.\vc_msw\base\dde.obj
.\vc_msw\base\debughlp.obj
.\vc_msw\base\dir.obj
.\vc_msw\base\dlmsw.obj
.\vc_msw\base\dummy.obj
.\vc_msw\base\main.obj
.\vc_msw\base\mimetype.obj
.\vc_msw\base\mslu.obj
.\vc_msw\base\regconf.obj
.\vc_msw\base\registry.obj
.\vc_msw\base\snglinst.obj
.\vc_msw\base\stackwalk.obj
.\vc_msw\base\stdpaths.obj
.\vc_msw\base\thread.obj
.\vc_msw\base\utils.obj
.\vc_msw\base\utilsexc.obj
.\vc_msw\base\volume.obj

"C:\WX262\lib\vc_lib\wxbase26_net.lib" contains the following object files
.\vc_msw\net\fs_inet.obj
.\vc_msw\net\ftp.obj
.\vc_msw\net\http.obj
.\vc_msw\net\protocol.obj
.\vc_msw\net\sckaddr.obj
.\vc_msw\net\sckfile.obj
.\vc_msw\net\sckipc.obj
.\vc_msw\net\sckstrm.obj
.\vc_msw\net\socket.obj
.\vc_msw\net\url.obj
.\vc_msw\net\dummy.obj
.\vc_msw\net\gsocket.obj
.\vc_msw\net\urlmsw.obj

"C:\WX262\lib\vc_lib\wxbase26_odbc.lib" contains the following object files
.\vc_msw\odbc\db.obj
.\vc_msw\odbc\dbtable.obj
.\vc_msw\odbc\dummy.obj

"C:\WX262\lib\vc_lib\wxbase26_xml.lib" contains the following object files
.\vc_msw\xml\xtixml.obj
.\vc_msw\xml\dummy.obj
.\vc_msw\xml\xml.obj

"C:\WX262\lib\vc_lib\wxexpat.lib" contains the following object files
.\vc_msw\wxexpat\xmlparse.obj
.\vc_msw\wxexpat\xmlrole.obj
.\vc_msw\wxexpat\xmltok.obj

"C:\WX262\lib\vc_lib\wxjpeg.lib" contains the following object files
.\vc_msw\wxjpeg\jcapimin.obj
.\vc_msw\wxjpeg\jcapistd.obj
.\vc_msw\wxjpeg\jccoefct.obj
.\vc_msw\wxjpeg\jccolor.obj
.\vc_msw\wxjpeg\jcdctmgr.obj
.\vc_msw\wxjpeg\jchuff.obj
.\vc_msw\wxjpeg\jcinit.obj
.\vc_msw\wxjpeg\jcmainct.obj
.\vc_msw\wxjpeg\jcmarker.obj
.\vc_msw\wxjpeg\jcmaster.obj
.\vc_msw\wxjpeg\jcomapi.obj
.\vc_msw\wxjpeg\jcparam.obj
.\vc_msw\wxjpeg\jcphuff.obj
.\vc_msw\wxjpeg\jcprepct.obj
.\vc_msw\wxjpeg\jcsample.obj
.\vc_msw\wxjpeg\jctrans.obj
.\vc_msw\wxjpeg\jdapimin.obj
.\vc_msw\wxjpeg\jdapistd.obj
.\vc_msw\wxjpeg\jdatadst.obj
.\vc_msw\wxjpeg\jdatasrc.obj
.\vc_msw\wxjpeg\jdcoefct.obj
.\vc_msw\wxjpeg\jdcolor.obj
.\vc_msw\wxjpeg\jddctmgr.obj
.\vc_msw\wxjpeg\jdhuff.obj
.\vc_msw\wxjpeg\jdinput.obj
.\vc_msw\wxjpeg\jdmainct.obj
.\vc_msw\wxjpeg\jdmarker.obj
.\vc_msw\wxjpeg\jdmaster.obj
.\vc_msw\wxjpeg\jdmerge.obj
.\vc_msw\wxjpeg\jdphuff.obj
.\vc_msw\wxjpeg\jdpostct.obj
.\vc_msw\wxjpeg\jdsample.obj
.\vc_msw\wxjpeg\jdtrans.obj
.\vc_msw\wxjpeg\jerror.obj
.\vc_msw\wxjpeg\jfdctflt.obj
.\vc_msw\wxjpeg\jfdctfst.obj
.\vc_msw\wxjpeg\jfdctint.obj
.\vc_msw\wxjpeg\jidctflt.obj
.\vc_msw\wxjpeg\jidctfst.obj
.\vc_msw\wxjpeg\jidctint.obj
.\vc_msw\wxjpeg\jidctred.obj
.\vc_msw\wxjpeg\jmemmgr.obj
.\vc_msw\wxjpeg\jmemnobs.obj
.\vc_msw\wxjpeg\jquant1.obj
.\vc_msw\wxjpeg\jquant2.obj
.\vc_msw\wxjpeg\jutils.obj

"C:\WX262\lib\vc_lib\wxmsw26_adv.lib" contains the following object files
.\vc_msw\adv\taskbarcmn.obj
.\vc_msw\adv\datectrl.obj
.\vc_msw\adv\dummy.obj
.\vc_msw\adv\joystick.obj
.\vc_msw\adv\sound.obj
.\vc_msw\adv\taskbar.obj
.\vc_msw\adv\calctrl.obj
.\vc_msw\adv\datectlg.obj
.\vc_msw\adv\grid.obj
.\vc_msw\adv\gridctrl.obj
.\vc_msw\adv\gridsel.obj
.\vc_msw\adv\helpext.obj
.\vc_msw\adv\laywin.obj
.\vc_msw\adv\propdlg.obj
.\vc_msw\adv\sashwin.obj
.\vc_msw\adv\splash.obj
.\vc_msw\adv\tipdlg.obj
.\vc_msw\adv\wizard.obj

"C:\WX262\lib\vc_lib\wxmsw26_core.lib" contains the following object files
.\vc_msw\core\accesscmn.obj
.\vc_msw\core\appcmn.obj
.\vc_msw\core\artprov.obj
.\vc_msw\core\artstd.obj
.\vc_msw\core\bmpbase.obj
.\vc_msw\core\bookctrl.obj
.\vc_msw\core\choiccmn.obj
.\vc_msw\core\clipcmn.obj
.\vc_msw\core\cmdproc.obj
.\vc_msw\core\cmndata.obj
.\vc_msw\core\containr.obj
.\vc_msw\core\cshelp.obj
.\vc_msw\core\ctrlcmn.obj
.\vc_msw\core\ctrlsub.obj
.\vc_msw\core\datacmn.obj
.\vc_msw\core\dcbase.obj
.\vc_msw\core\dlgcmn.obj
.\vc_msw\core\dndcmn.obj
.\vc_msw\core\dobjcmn.obj
.\vc_msw\core\docmdi.obj
.\vc_msw\core\docview.obj
.\vc_msw\core\dpycmn.obj
.\vc_msw\core\dseldlg.obj
.\vc_msw\core\effects.obj
.\vc_msw\core\event.obj
.\vc_msw\core\fddlgcmn.obj
.\vc_msw\core\fldlgcmn.obj
.\vc_msw\core\fontcmn.obj
.\vc_msw\core\fontmap.obj
.\vc_msw\core\framecmn.obj
.\vc_msw\core\fs_mem.obj
.\vc_msw\core\gaugecmn.obj
.\vc_msw\core\gbsizer.obj
.\vc_msw\core\gdicmn.obj
.\vc_msw\core\geometry.obj
.\vc_msw\core\gifdecod.obj
.\vc_msw\core\helpbase.obj
.\vc_msw\core\iconbndl.obj
.\vc_msw\core\imagall.obj
.\vc_msw\core\imagbmp.obj
.\vc_msw\core\image.obj
.\vc_msw\core\imagfill.obj
.\vc_msw\core\imaggif.obj
.\vc_msw\core\imagiff.obj
.\vc_msw\core\imagjpeg.obj
.\vc_msw\core\imagpcx.obj
.\vc_msw\core\imagpng.obj
.\vc_msw\core\imagpnm.obj
.\vc_msw\core\imagtiff.obj
.\vc_msw\core\imagxpm.obj
.\vc_msw\core\layout.obj
.\vc_msw\core\lboxcmn.obj
.\vc_msw\core\matrix.obj
.\vc_msw\core\menucmn.obj
.\vc_msw\core\msgout.obj
.\vc_msw\core\nbkbase.obj
.\vc_msw\core\paper.obj
.\vc_msw\core\popupcmn.obj
.\vc_msw\core\prntbase.obj
.\vc_msw\core\quantize.obj
.\vc_msw\core\radiocmn.obj
.\vc_msw\core\rendcmn.obj
.\vc_msw\core\rgncmn.obj
.\vc_msw\core\settcmn.obj
.\vc_msw\core\sizer.obj
.\vc_msw\core\statbar.obj
.\vc_msw\core\stockitem.obj
.\vc_msw\core\tbarbase.obj
.\vc_msw\core\textcmn.obj
.\vc_msw\core\timercmn.obj
.\vc_msw\core\toplvcmn.obj
.\vc_msw\core\treebase.obj
.\vc_msw\core\utilscmn.obj
.\vc_msw\core\valgen.obj
.\vc_msw\core\validate.obj
.\vc_msw\core\valtext.obj
.\vc_msw\core\wincmn.obj
.\vc_msw\core\xpmdecod.obj
.\vc_msw\core\accel.obj
.\vc_msw\core\access.obj
.\vc_msw\core\app.obj
.\vc_msw\core\automtn.obj
.\vc_msw\core\bitmap.obj
.\vc_msw\core\bmpbuttn.obj
.\vc_msw\core\brush.obj
.\vc_msw\core\button.obj
.\vc_msw\core\caret.obj
.\vc_msw\core\checkbox.obj
.\vc_msw\core\checklst.obj
.\vc_msw\core\choice.obj
.\vc_msw\core\clipbrd.obj
.\vc_msw\core\colordlg.obj
.\vc_msw\core\colour.obj
.\vc_msw\core\combobox.obj
.\vc_msw\core\control.obj
.\vc_msw\core\cursor.obj
.\vc_msw\core\data.obj
.\vc_msw\core\dataobj.obj
.\vc_msw\core\dc.obj
.\vc_msw\core\dcclient.obj
.\vc_msw\core\dcmemory.obj
.\vc_msw\core\dcprint.obj
.\vc_msw\core\dcscreen.obj
.\vc_msw\core\dialog.obj
.\vc_msw\core\dialup.obj
.\vc_msw\core\dib.obj
.\vc_msw\core\dirdlg.obj
.\vc_msw\core\display.obj
.\vc_msw\core\dragimag.obj
.\vc_msw\core\dropsrc.obj
.\vc_msw\core\droptgt.obj
.\vc_msw\core\dummy.obj
.\vc_msw\core\enhmeta.obj
.\vc_msw\core\evtloop.obj
.\vc_msw\core\fdrepdlg.obj
.\vc_msw\core\filedlg.obj
.\vc_msw\core\font.obj
.\vc_msw\core\fontdlg.obj
.\vc_msw\core\fontenum.obj
.\vc_msw\core\fontutil.obj
.\vc_msw\core\frame.obj
.\vc_msw\core\gauge95.obj
.\vc_msw\core\gdiimage.obj
.\vc_msw\core\gdiobj.obj
.\vc_msw\core\gsockmsw.obj
.\vc_msw\core\helpchm.obj
.\vc_msw\core\helpwin.obj
.\vc_msw\core\icon.obj
.\vc_msw\core\imaglist.obj
.\vc_msw\core\iniconf.obj
.\vc_msw\core\listbox.obj
.\vc_msw\core\listctrl.obj
.\vc_msw\core\main.obj
.\vc_msw\core\mdi.obj
.\vc_msw\core\menu.obj
.\vc_msw\core\menuitem.obj
.\vc_msw\core\metafile.obj
.\vc_msw\core\minifram.obj
.\vc_msw\core\msgdlg.obj
.\vc_msw\core\mslu.obj
.\vc_msw\core\nativdlg.obj
.\vc_msw\core\notebook.obj
.\vc_msw\core\oleutils.obj
.\vc_msw\core\ownerdrw.obj
.\vc_msw\core\palette.obj
.\vc_msw\core\pen.obj
.\vc_msw\core\popupwin.obj
.\vc_msw\core\printdlg.obj
.\vc_msw\core\printwin.obj
.\vc_msw\core\radiobox.obj
.\vc_msw\core\radiobut.obj
.\vc_msw\core\region.obj
.\vc_msw\core\renderer.obj
.\vc_msw\core\scrolbar.obj
.\vc_msw\core\settings.obj
.\vc_msw\core\slider95.obj
.\vc_msw\core\spinbutt.obj
.\vc_msw\core\spinctrl.obj
.\vc_msw\core\statbmp.obj
.\vc_msw\core\statbox.obj
.\vc_msw\core\statbr95.obj
.\vc_msw\core\statline.obj
.\vc_msw\core\stattext.obj
.\vc_msw\core\tabctrl.obj
.\vc_msw\core\tbar95.obj
.\vc_msw\core\textctrl.obj
.\vc_msw\core\tglbtn.obj
.\vc_msw\core\timer.obj
.\vc_msw\core\tooltip.obj
.\vc_msw\core\toplevel.obj
.\vc_msw\core\treectrl.obj
.\vc_msw\core\utilsgui.obj
.\vc_msw\core\uuid.obj
.\vc_msw\core\uxtheme.obj
.\vc_msw\core\volume.obj
.\vc_msw\core\window.obj
.\vc_msw\core\busyinfo.obj
.\vc_msw\core\choicbkg.obj
.\vc_msw\core\choicdgg.obj
.\vc_msw\core\dcpsg.obj
.\vc_msw\core\dirctrlg.obj
.\vc_msw\core\dragimgg.obj
.\vc_msw\core\listbkg.obj
.\vc_msw\core\logg.obj
.\vc_msw\core\numdlgg.obj
.\vc_msw\core\panelg.obj
.\vc_msw\core\printps.obj
.\vc_msw\core\prntdlgg.obj
.\vc_msw\core\progdlgg.obj
.\vc_msw\core\renderg.obj
.\vc_msw\core\scrlwing.obj
.\vc_msw\core\selstore.obj
.\vc_msw\core\spinctlg.obj
.\vc_msw\core\splitter.obj
.\vc_msw\core\statusbr.obj
.\vc_msw\core\textdlgg.obj
.\vc_msw\core\tipwin.obj
.\vc_msw\core\treectlg.obj
.\vc_msw\core\vlbox.obj
.\vc_msw\core\vscroll.obj

"C:\WX262\lib\vc_lib\wxmsw26_dbgrid.lib" contains the following object files
.\vc_msw\dbgrid\dbgrid.obj
.\vc_msw\dbgrid\dummy.obj

"C:\WX262\lib\vc_lib\wxmsw26_gl.lib" contains the following object files
.\vc_msw\gl\dummy.obj
.\vc_msw\gl\glcanvas.obj

"C:\WX262\lib\vc_lib\wxmsw26_html.lib" contains the following object files
.\vc_msw\html\dummy.obj
.\vc_msw\html\helpbest.obj
.\vc_msw\html\htmllbox.obj
.\vc_msw\html\helpctrl.obj
.\vc_msw\html\helpdata.obj
.\vc_msw\html\helpfrm.obj
.\vc_msw\html\htmlcell.obj
.\vc_msw\html\htmlfilt.obj
.\vc_msw\html\htmlpars.obj
.\vc_msw\html\htmltag.obj
.\vc_msw\html\htmlwin.obj
.\vc_msw\html\htmprint.obj
.\vc_msw\html\m_dflist.obj
.\vc_msw\html\m_fonts.obj
.\vc_msw\html\m_hline.obj
.\vc_msw\html\m_image.obj
.\vc_msw\html\m_layout.obj
.\vc_msw\html\m_links.obj
.\vc_msw\html\m_list.obj
.\vc_msw\html\m_pre.obj
.\vc_msw\html\m_style.obj
.\vc_msw\html\m_tables.obj
.\vc_msw\html\winpars.obj

"C:\WX262\lib\vc_lib\wxmsw26_media.lib" contains the following object files
.\vc_msw\media\mediactrlcmn.obj
.\vc_msw\media\activex.obj
.\vc_msw\media\dummy.obj
.\vc_msw\media\mediactrl.obj

"C:\WX262\lib\vc_lib\wxmsw26_qa.lib" contains the following object files
.\vc_msw\qa\debugrpt.obj
.\vc_msw\qa\dummy.obj
.\vc_msw\qa\dbgrptg.obj

"C:\WX262\lib\vc_lib\wxmsw26_xrc.lib" contains the following object files
.\vc_msw\xrc\dummy.obj
.\vc_msw\xrc\xh_bmp.obj
.\vc_msw\xrc\xh_bmpbt.obj
.\vc_msw\xrc\xh_bttn.obj
.\vc_msw\xrc\xh_cald.obj
.\vc_msw\xrc\xh_chckb.obj
.\vc_msw\xrc\xh_chckl.obj
.\vc_msw\xrc\xh_choic.obj
.\vc_msw\xrc\xh_choicbk.obj
.\vc_msw\xrc\xh_combo.obj
.\vc_msw\xrc\xh_datectrl.obj
.\vc_msw\xrc\xh_dlg.obj
.\vc_msw\xrc\xh_frame.obj
.\vc_msw\xrc\xh_gauge.obj
.\vc_msw\xrc\xh_gdctl.obj
.\vc_msw\xrc\xh_html.obj
.\vc_msw\xrc\xh_listb.obj
.\vc_msw\xrc\xh_listbk.obj
.\vc_msw\xrc\xh_listc.obj
.\vc_msw\xrc\xh_mdi.obj
.\vc_msw\xrc\xh_menu.obj
.\vc_msw\xrc\xh_notbk.obj
.\vc_msw\xrc\xh_panel.obj
.\vc_msw\xrc\xh_radbt.obj
.\vc_msw\xrc\xh_radbx.obj
.\vc_msw\xrc\xh_scrol.obj
.\vc_msw\xrc\xh_scwin.obj
.\vc_msw\xrc\xh_sizer.obj
.\vc_msw\xrc\xh_slidr.obj
.\vc_msw\xrc\xh_spin.obj
.\vc_msw\xrc\xh_split.obj
.\vc_msw\xrc\xh_statbar.obj
.\vc_msw\xrc\xh_stbmp.obj
.\vc_msw\xrc\xh_stbox.obj
.\vc_msw\xrc\xh_stlin.obj
.\vc_msw\xrc\xh_sttxt.obj
.\vc_msw\xrc\xh_text.obj
.\vc_msw\xrc\xh_tglbtn.obj
.\vc_msw\xrc\xh_toolb.obj
.\vc_msw\xrc\xh_tree.obj
.\vc_msw\xrc\xh_unkwn.obj
.\vc_msw\xrc\xh_wizrd.obj
.\vc_msw\xrc\xmlres.obj
.\vc_msw\xrc\xmlrsall.obj

"C:\WX262\lib\vc_lib\wxpng.lib" contains the following object files
.\vc_msw\wxpng\png.obj
.\vc_msw\wxpng\pngerror.obj
.\vc_msw\wxpng\pnggccrd.obj
.\vc_msw\wxpng\pngget.obj
.\vc_msw\wxpng\pngmem.obj
.\vc_msw\wxpng\pngpread.obj
.\vc_msw\wxpng\pngread.obj
.\vc_msw\wxpng\pngrio.obj
.\vc_msw\wxpng\pngrtran.obj
.\vc_msw\wxpng\pngrutil.obj
.\vc_msw\wxpng\pngset.obj
.\vc_msw\wxpng\pngtrans.obj
.\vc_msw\wxpng\pngvcrd.obj
.\vc_msw\wxpng\pngwio.obj
.\vc_msw\wxpng\pngwrite.obj
.\vc_msw\wxpng\pngwtran.obj
.\vc_msw\wxpng\pngwutil.obj

"C:\WX262\lib\vc_lib\wxregex.lib" contains the following object files
.\vc_msw\wxregex\regcomp.obj
.\vc_msw\wxregex\regerror.obj
.\vc_msw\wxregex\regexec.obj
.\vc_msw\wxregex\regfree.obj

"C:\WX262\lib\vc_lib\wxtiff.lib" contains the following object files
.\vc_msw\wxtiff\tif_aux.obj
.\vc_msw\wxtiff\tif_close.obj
.\vc_msw\wxtiff\tif_codec.obj
.\vc_msw\wxtiff\tif_color.obj
.\vc_msw\wxtiff\tif_compress.obj
.\vc_msw\wxtiff\tif_dir.obj
.\vc_msw\wxtiff\tif_dirinfo.obj
.\vc_msw\wxtiff\tif_dirread.obj
.\vc_msw\wxtiff\tif_dirwrite.obj
.\vc_msw\wxtiff\tif_dumpmode.obj
.\vc_msw\wxtiff\tif_error.obj
.\vc_msw\wxtiff\tif_extension.obj
.\vc_msw\wxtiff\tif_fax3.obj
.\vc_msw\wxtiff\tif_fax3sm.obj
.\vc_msw\wxtiff\tif_flush.obj
.\vc_msw\wxtiff\tif_getimage.obj
.\vc_msw\wxtiff\tif_jpeg.obj
.\vc_msw\wxtiff\tif_luv.obj
.\vc_msw\wxtiff\tif_lzw.obj
.\vc_msw\wxtiff\tif_next.obj
.\vc_msw\wxtiff\tif_open.obj
.\vc_msw\wxtiff\tif_packbits.obj
.\vc_msw\wxtiff\tif_pixarlog.obj
.\vc_msw\wxtiff\tif_predict.obj
.\vc_msw\wxtiff\tif_print.obj
.\vc_msw\wxtiff\tif_read.obj
.\vc_msw\wxtiff\tif_strip.obj
.\vc_msw\wxtiff\tif_swab.obj
.\vc_msw\wxtiff\tif_thunder.obj
.\vc_msw\wxtiff\tif_tile.obj
.\vc_msw\wxtiff\tif_version.obj
.\vc_msw\wxtiff\tif_warning.obj
.\vc_msw\wxtiff\tif_win32.obj
.\vc_msw\wxtiff\tif_write.obj
.\vc_msw\wxtiff\tif_zip.obj

"C:\WX262\lib\vc_lib\wxzlib.lib" contains the following object files
.\vc_msw\wxzlib\adler32.obj
.\vc_msw\wxzlib\compress.obj
.\vc_msw\wxzlib\crc32.obj
.\vc_msw\wxzlib\deflate.obj
.\vc_msw\wxzlib\gzio.obj
.\vc_msw\wxzlib\infback.obj
.\vc_msw\wxzlib\inffast.obj
.\vc_msw\wxzlib\inflate.obj
.\vc_msw\wxzlib\inftrees.obj
.\vc_msw\wxzlib\trees.obj
.\vc_msw\wxzlib\uncompr.obj
.\vc_msw\wxzlib\zutil.obj

October 6, 2005

Granule

Filed under: Alternatives

This post has been updated. See bottom of post. 

Granule is another Leitner flashcard system I found, this time for Linux. Looks slick, based on the screenshots and extensive documentation. It even documents its own XML file format.

UPDATED November 1, 2007: Watch out, Granule has been ported to Windows!  I look forward to trying it. 

 

October 2, 2005

CueCard

Filed under: wxWidgets, Alternatives

CueCard is a freeware flashcard program with source code available. Since it was written using the wxWidgets (formerly wxWindows) application framework, which is what I am using, I downloaded the source and executable for a closer look.

Instead of Leitner sorting of cards presented, it has its own way of taking missed answers into account. The design is very clean, it doesn't require looking at any help file at all. It influenced me to take care of the user interface in my flashcard game. So far the source code hasn't influenced me much, but I want to take a look at his Unicode support because that’s important.

The one I am writing wants to be a commercial project, although with a hobbyist time frame unfortunately. I will try to always keep "light" versions as freeware. I am not planning a free release of the complete source code of either version. I don’t expect it to be a blockbuster app, just enough to keep me from chasing nickels on Blogger. (The Google ads on this page are not mine, they help keep the blogsome.com service free.)

Smart quotes

Filed under: Blogsome

This post has been updated (finally). See last paragraph.

Dave said, "This is a test of killing off those sickening ’smart quotes’ which I don’t need." Blogsome and Wordpress apparently default to converting all quotes to so called smart quotes. One problem is Verdana (and potentially other web fonts) doesn’t really have decent smart quotes, they look like a superscript version of \\ and //, which in turn makes it look like the page was generated by a backwater perl script. The only workaround I have found is to use &34; every time I need a double quote and &39; every time I need an apostrophe. I don’t have time for this horse hit. I looked at the Blogsome plugins page but there’s nothing activated that would cause this, also I looked at css but I couldn’t get it to work.

UPDATE Nov 1, 2006: This is no longer an "issue" (entered normally) when using the WYSI-Wordpress plugin, which I am. There is also a WP Unformatted plugin available that addresses the smartquotes issue specifically.






















Get free blog up and running in minutes with Blogsome | Theme designs available here